MySQL中除了DELETE语句可以删除数据外,在MySQL中还可以利用TRUNCATE清空指定数据表中的所有数据 。执行语句是
TRUNCATE [table] 表名需要注意的是,TRUNCATE操作虽然与DELETE非常相似,但是两者在本质上有一定的区别,具体如下 。
实现方式不同:truncate本质上先执行删除(DROP)数据表的操作,然后在根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作 。而DELETE语句则是逐条的删除数据表中保存的记录 。
执行效率不同:在针对大型数据表(如千万级的数据记录)时,TRUNCATE清空数据的实现方式决定了它比DELETE语句删除数据的方式执行效率更高 。
对AUTO_INCREMENT的字段影响不同:TRUNCATE清空数据后,再次向表中添加数据,自动增长字段会从默认的初始值开始,而使用DELETE语句删除表中的数据时,则不影响自动增长值 。
删除数据的范围不同:TRUNCATE语句只能清空表中所有记录,而DELETE语句可通过WHERE指定删除满足条件的部分记录 。
返回值含义不同:TRUNCATE操作的返回值一般是无意义的,而DELETE语句则会返回符合条件被删除的记录数 。
所属SQL语言的不同组成部分:DELETE语句数据DML数据操作语句,而TRUNCATE通常被认为是DDL数据定义部分 。
拓展:
数据定义语言(Data Definition Language,DDL),用于定义和管理对象,例如数据库、数据表以及视图,例如:CREATE、DROP、ALTER等语句 。
数据操作语言(Data Manipulation Language,DML),用于操作数据库对象所包含的数据,例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句 。
数据查询语言(Data Query Language,DQL),例如:SELECT语句 。
数据控制语言(Data Control Language,DCL),用于控制对数据库对象操作的权限,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句 。
【MySQL中清空表的两种方式】
推荐阅读
- 茶中自有颜如玉 茶中自有黄金屋
- 如何查看MySQL 服务状态
- 四大名医扁鹊 中国最早的名医是扁鹊还是华佗
- 前端开发中的一些js规范
- 老茶是时光流逝中的静默
- 茶室中常用的禅语
- 心中有茶 时时花开
- 茶中的自由
- 夜晚中的茶香
- 中国当今太极第一人是谁
