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条件;