MySql的删除操作(delete,drop,truncate)

方文锋  2019-11-27 00:18:04  1421  首页学习MySQL

drop

【删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。把该数据表的文件给删除了。】

mysql> drop table table_name;

【格式:drop table 数据表名称】

truncate

1、删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已。

2、相当于重新创建该表,自增值重置(重新从1开始)。

3、truncate 不能删除行数据,要删就要把表清空。

4、truncate table 在功能上与不带 WHERE 子句的。

mysql> truncate table table_name;

【格式:truncate table 数据表名称

delete

【删除内容不删除定义,不释放空间 , 可以跟随where条件。删除是逐行删除的,效率较truncate低。自增值不会重置。

mysql> delete from table_name

或者

mysql> delete from table_name where condition

格式: delete from 数据表名称

或者

delete from 数据表名称 where 条件



1、truncate是整体删除(速度较快), delete是逐条删除(速度较慢);

2、truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因;

3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。

4、如果只需删除表中的部分记录,只能使用delete语句配合where条件;