SQL中删除数据DROP、TRUNCATE和DELETE的区别

一,DROP TABLE tablename
删除内容和定义,释放空间。就是把整个表删除掉,表里的数据以及表结构一起删掉。

二,TRUNCATE TABLE tablename
删除内容、释放空间但不删除定义。
就是把表里所有数据删除,删除后,如果再新增数据,id自增字段又是从“标识种子值”开始,比如从0或者1开始自增。

三,DELETE TABLE tablename
删除内容不删除定义,不释放空间。
DELETETRUNCATE相比,最明显的就是,DELETE删除了数据,再新增数据时,id会按照之前已有的数据自增,会造成
标识列不连续。.

TRUNCATEDELETE速度快,且使用的系统和事务日志资源少。如果有ROLLBACK命令,DELETE将被撤销,而TRUNCATE则不会被撤销。

所以,如果要删除整个表,只有DROP可选
如果把整个表里的数据清空,推荐TRUNCATE
如果只是删除表里的有些数据,只有DELETE可选