mysql 清空表(mysql清空表语句)

MySQL中除了DELETE语句可以删除数据外,在MySQL中还可以利用TRUNCATE清空指定数据表中的所有数据。执行语句是

TRUNCATE 
表名

需要注意的是,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清空表语句)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论