购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 删除数据

如果需要从数据表中删除数据记录,则需要使用DELETE语句,DELETE语句同样允许通过WHERE子句指定删除条件。DELETE语句基本语法格式如下。

4.4.1 删除部分记录行

同样,DELETE语句指定了WHERE子句,那么MySQL就会删除满足WHERE子句指定条件的记录行。

下面演示删除“tb_student”表部分数据记录行,SQL语句示例如下。

(1)在删除操作之前,可以使用SELETE语句查看当前数据。

(2)删除“tb_student”表中“sname”为“李九”的数据记录。

提示信息表示1条记录被影响。

(3)使用SELETE语句查看执行结果。

由结果可以看到“tb_student”表中“sname”为“李九”的数据记录被删除了。由此可以看到,满足WHERE子句指定条件的记录行会被删除。

4.4.2 删除所有记录行

同样,DELETE语句如果省略WHERE子句,MySQL将删除数据表的所有数据。SQL语句示例如下。

(1)删除“tb_student”表中所有的数据记录。

提示信息表示6条记录被影响。

(2)使用SELETE语句查看执行结果。

查询结果为空,说明删除表中的所有数据记录成功,现在“tb_student”表中已经没有任何数据记录。

如果想要删除表中的所有记录,除了使用DELETE语句,还可以使用“TRUNCATE TABLE”语句,语法格式如下。

下面演示使用“TRUNCATE TABLE”语句删除“tb_student”表中的所有记录,SQL语句示例如下。

(1)在执行删除操作前,先插入(INSERT)一些模拟数据。

提示信息表示4条记录插入成功。

(2)使用SELECT语句查看删除之前的数据。

(3)使用TRUNCATE TABLE语句删除“tb_student”表的所有记录。

提示信息表示0行记录受到影响。为什么是0行,难道数据记录没有被删除?

(4)使用SELECT语句查看执行结果。

查询结果为空,说明删除表中的所有数据记录成功,现在“tb_student”表中已经没有任何数据记录。

原来,使用“TRUNCATE TABLE”语句删除数据表中的所有记录是直接删除原来的表,并重新创建一个表,所以刚刚提示0条记录受影响。由于“TRUNCATE TABLE”语句是直接删除表而不是删除记录,因此执行速度比DELETE块。但是使用“TRUNCATE TABLE”语句删除数据是不支持事务回滚的(关于事务请看第4.6节)。 M6ailwSurwFDxm8i3z+YqXwLYbJ8LpsjqWOBwDqhSno5ki+YHUZq7lBRRKxST8W6

点击中间区域
呼出菜单
上一章
目录
下一章
×