
4.6 综合案例——记录的插入、更新和删除
本章重点介绍了数据表中数据的插入、更新和删除操作。MySQL中可以灵活地对数据进行插入与更新,MySQL中对数据的操作没有任何提示,因此在更新和删除数据时,一要谨慎小心,查询条件一定要准确,避免造成数据的丢失。本章的综合案例包含对数据表中数据的基本操作,包括记录的插入、更新和删除。
1. 案例目的
创建表books,对数据表进行插入、更新和删除操作,掌握表数据的基本操作。books表结构以及表中的记录如表4.1和表4.2所示。
表4.1 books表结构

表4.2 books表中的记录

2. 案例操作过程
创建数据表books,并按表4.1的结构定义各个字段。

将表4.2中的记录插入books表中,分别使用不同的方法插入记录,执行过程如下。
表创建好之后,使用SELECT语句查看表中的数据,结果如下:

可以看到,当前表中为空,没有任何数据。下面向表中插入记录。
(1)指定所有字段名称插入记录,SQL语句如下。

语句执行成功,插入了一条记录。
(2)不指定字段名称插入记录,SQL语句如下。

语句执行成功,插入了一条记录。
使用SELECT语句查看当前表中的数据:

可以看到,两条语句分别成功插入了两条记录。
(3)同时插入多条记录。
使用INSERT语句将剩下的多条记录插入表中,SQL语句如下:

由结果可以看到,语句执行成功,总共插入了5条记录,使用SELECT语句查看表中所有的记录:

由结果可以看到,所有记录成功插入表中。
将小说类型(novel)的书的价格都增加5。
执行该操作的SQL语句为:
UPDATE books SET price = price + 5 WHERE note = 'novel';
执行前先使用SELECT语句查看当前记录:

使用UPDATE语句执行更新操作:

由结果可以看到,该语句对3条记录进行了更新,使用SELECT语句查看更新结果:

对比可知,price的值都在原来的价格之上增加了5。
将名称为EmmaT的书的价格改为40,并将说明改为drama。
修改语句为:
UPDATE books SET price=40,note= 'drama 'WHERE name= 'EmmaT ';
执行修改前,使用SELECT语句查看当前记录:

下面执行修改操作:
mysql> UPDATE books SET price=40,note='drama' WHERE name='EmmaT'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
结果显示修改了一条记录,使用SELECT语句查看执行结果:

可以看到,price和note字段的值已经改变,修改操作成功。
删除库存为0的记录。
删除库存为0的语句为:
DELETE FROM books WHERE num=0;
删除之前使用SELECT语句查看当前记录:

可以看到,当前有两条记录的num值为0。下面使用DELETE语句删除这两条记录,SQL语句如下:

语句执行成功,查看操作结果:

可以看到,查询结果为空,表中已经没有库存量为0的记录。