用python设计一个通讯录表contact,该表包含id(标识)、name(姓名)、age(年龄)、phone(手机号码)、address(住址)五个字段,其中id列设置为主键,并完成以下操作: 向contact 表中添加5条记录,将最后一条记录的name设置为“张三”; 查询contact表中姓名为“张三”的联系人; 查询contact表中手机号码以“136”开头的联系人; 查询contact表中姓“张”且年龄大于18岁的联系人; 删除contact表中地址为空的所有联系人,并显示删除记录的数量;
时间: 2024-04-02 15:34:58 浏览: 60
采用python程序设计语言,进行分词,再去掉停用词和标点符号等,生成文档的词典,接着根据词典和文档内容生成词项的倒排记录表
好的,我可以帮你用Python设计一个通讯录表contact,并完成这些操作。你需要先安装Python的数据库API,例如pymysql或者sqlite3。
首先,我们需要连接到数据库并创建contact表:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost', # 数据库地址
port=3306, # 端口号
user='root', # 数据库用户名
password='password', # 数据库密码
database='test', # 数据库名称
charset='utf8mb4' # 字符编码
)
# 创建游标对象
cursor = conn.cursor()
# 创建contact表
create_table_sql = """
CREATE TABLE contact (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
phone VARCHAR(20),
address VARCHAR(100)
);
"""
cursor.execute(create_table_sql)
# 提交更改
conn.commit()
```
然后,向contact表中添加5条记录,将最后一条记录的name设置为“张三”:
```python
# 向contact表中添加5条记录
insert_sql = """
INSERT INTO contact (id, name, age, phone, address) VALUES
(1, '李四', 20, '13688889999', '北京市海淀区'),
(2, '王五', 30, '13777778888', '上海市浦东新区'),
(3, '赵六', 25, '13866667777', '广州市天河区'),
(4, '钱七', 18, '13955556666', '深圳市福田区'),
(5, '张三', 40, '13944443333', '成都市高新区');
"""
cursor.execute(insert_sql)
# 提交更改
conn.commit()
```
接着,查询contact表中姓名为“张三”的联系人:
```python
# 查询contact表中姓名为“张三”的联系人
select_sql = "SELECT * FROM contact WHERE name = '张三';"
cursor.execute(select_sql)
# 获取查询结果
result = cursor.fetchone()
print(result)
```
查询结果如下:
```
(5, '张三', 40, '13944443333', '成都市高新区')
```
然后,查询contact表中手机号码以“136”开头的联系人:
```python
# 查询contact表中手机号码以“136”开头的联系人
select_sql = "SELECT * FROM contact WHERE phone LIKE '136%';"
cursor.execute(select_sql)
# 获取查询结果
result = cursor.fetchall()
for r in result:
print(r)
```
查询结果如下:
```
(1, '李四', 20, '13688889999', '北京市海淀区')
```
接下来,查询contact表中姓“张”且年龄大于18岁的联系人:
```python
# 查询contact表中姓“张”且年龄大于18岁的联系人
select_sql = "SELECT * FROM contact WHERE name LIKE '张%' AND age > 18;"
cursor.execute(select_sql)
# 获取查询结果
result = cursor.fetchall()
for r in result:
print(r)
```
查询结果如下:
```
(5, '张三', 40, '13944443333', '成都市高新区')
```
最后,删除contact表中地址为空的所有联系人,并显示删除记录的数量:
```python
# 删除contact表中地址为空的所有联系人
delete_sql = "DELETE FROM contact WHERE address IS NULL OR address = '';"
cursor.execute(delete_sql)
# 获取删除的记录数量
count = cursor.rowcount
print("删除了{}条记录".format(count))
# 提交更改
conn.commit()
```
如果有符合条件的记录,那么将会显示删除的记录数量。
阅读全文