关于truncate , delete 和 drop用法的小结

  在使用数据库的时候我们常常会用到truncate,delete删除表数据,而使用drop来删除数据库表的操作,但是常常混淆,分不清楚各操作符的用法,用法相对比较简单,该文只是用来说明三者之间的一些区分说明。

操作符

              

TRUNCATE DELETE DROP

用法

                   

TRUNCATE TABLE TABLE_NAME DELETE FROM TABLE_NAME [WHERE] DROP TABLE TABLE_NAME
说明

删除表内容,但不删除表结构,删除后表主键和约束保持不变,会进行重置,删除速度比delete 速度快,TRUNCATE操作后会释放表空间,不能进行回滚,会自动进行事务提交,需要做好备份,该操作不能用于索引视图。

该操作为删除指定内容,但是并不删除表结构,如果没有指定where条件,与truncate效果是一样的,并且效率要比truncate低很多,删除后索引等并不进行重置,指定内容后删除,并不能自动进行事务的提交,delete删除后可以进行恢复,所以不会释放表空间。相比truncate会增加日志资源量,每次操作都会进行记录。 删除整张表的结构及表空间,会进行事务的自动提交,需要做好备份
  DLL语言(数据库定义语言) DLL语言(数据库定义语言) dml语言(数据库操作语言)

当然这是我们较为常用用法,可能还涉及到触发器等相关内容会有所不同,本人暂未涉及到,暂不多做介绍。

原文地址:https://www.cnblogs.com/Mr-CHENs/p/5718198.html