设计一个通讯录表contact,该表包含id(标识)、name(姓名)、age(年龄)、phone(手机号码)、address(住址)五个字段,其中id列设置为主键,并完成以下操作: 向contact 表中添加5条记录,将最后一条记录的name设置为“张三”; 查询contact表中姓名为“张三”的联系人; 查询contact表中手机号码以“136”开头的联系人; 查询contact表中姓“张”且年龄大于18岁的联系人; 删除contact表中地址为空的所有联系人,并显示删除记录的数量;
时间: 2024-04-02 15:34:58 浏览: 12
好的,我可以帮你解答这个问题。
首先,创建通讯录表contact,包含id(标识)、name(姓名)、age(年龄)、phone(手机号码)、address(住址)五个字段,其中id列设置为主键:
```sql
CREATE TABLE contact (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
phone VARCHAR(20),
address VARCHAR(100)
);
```
然后,向contact表中添加5条记录,将最后一条记录的name设置为“张三”:
```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', '成都市高新区');
```
接着,查询contact表中姓名为“张三”的联系人:
```sql
SELECT * FROM contact WHERE name = '张三';
```
查询结果如下:
| id | name | age | phone | address |
|----|------|-----|--------------|-----------------|
| 5 | 张三 | 40 | 13944443333 | 成都市高新区 |
然后,查询contact表中手机号码以“136”开头的联系人:
```sql
SELECT * FROM contact WHERE phone LIKE '136%';
```
查询结果如下:
| id | name | age | phone | address |
|----|------|-----|--------------|--------------|
| 1 | 李四 | 20 | 13688889999 | 北京市海淀区 |
接下来,查询contact表中姓“张”且年龄大于18岁的联系人:
```sql
SELECT * FROM contact WHERE name LIKE '张%' AND age > 18;
```
查询结果如下:
| id | name | age | phone | address |
|----|------|-----|--------------|-----------------|
| 5 | 张三 | 40 | 13944443333 | 成都市高新区 |
最后,删除contact表中地址为空的所有联系人,并显示删除记录的数量:
```sql
DELETE FROM contact WHERE address IS NULL OR address = '';
SELECT ROW_COUNT();
```
查询结果显示删除的记录数量为0,因为在前面添加记录时并没有添加地址为空的记录。如果有符合条件的记录,那么删除后会显示删除的记录数量。