创新路
我们一直在努力

MySQL学习笔记(64)

MySQL 提供了 DELETE 和 TRUNCATE 关键字来删除表中的数据。TRUNCATE 关键字用于完全清空一个表。


例、新建表 tb_student_course,插入数据并查询,使用 TRUNCATE 语句清空 tb_student_course 表中的记录;

image.png

image.png


TRUNCATE 和 DELETE 的区别:

从逻辑上说,TRUNCATE 语句与 DELETE 语句作用相同,但是在某些情况下,两者在使用上有所区别。

DELETE 是逐行一条一条删除记录的;TRUNCATE 则是直接删除原来的表,再重新创建一个一模一样的新表,而不是逐行删除表中的数据,执行数据比 DELETE 快。因此需要删除表中全部的数据行时,尽量使用 TRUNCATE 语句, 可以缩短执行时间。

DELETE 删除数据后,配合事件回滚可以找回数据;TRUNCATE 不支持事务的回滚,数据删除后无法找回。

DELETE 删除数据后,系统不会重新设置自增字段的计数器;TRUNCATE 清空表记录后,系统会重新设置自增字段的计数器。

DELETE 的使用范围更广,因为它可以通过 WHERE 子句指定条件来删除部分数据;而 TRUNCATE 不支持 WHERE 子句,只能删除整体。

DELETE 会返回删除数据的行数,但是 TRUNCATE 只会返回 0,没有任何意义。


总结:

当表不再需要使用时,用 DROP;

当仍要保留表但无需保留表单数据时,用 TRUNCATE;

当要删除部分记录时,用 DELETE。

未经允许不得转载:天府数据港官方信息博客 » MySQL学习笔记(64)

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机