所有栏目

drop和delete的区别

作者:学习准备

delete和drop的区别是:drop主要用于删除结构,delete主要用于删除数据。如果我们要删除数据库或数据表,都会使用drop来删除,如【drop database XX】。

1、DELETE是一个数据操作语言命令,而DROP是一个数据定义语言命令。

2、DELETE命令用于从表中删除部分或全部元组。而,DROP命令用于从数据库中删除一个或多个表,可以删除表的所有相关数据,索引,触发器,约束和权限规范。

3、DELETE可以与WHERE子句一起使用,但DROP不能与任何命令一起使用。

4、可以使用DELETE命令执行回滚操作,因为它使用缓冲区;但在使用DROP命令的情况下无法操作回滚,因为它直接处理实际数据

5、由于DELETE命令不删除表,因此不会释放任何空间;而drop命令会删除整个表,从而释放内存空间。

出没场合:delete table tb --虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)

delete table tb where 条件

绝招:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个

然后关于delete的就不详细说明了,大家都懂的

关于truncate的小小总结:

truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

但 truncate 比 delete速度快,且使用的系统和事务日志资源少。

delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back

1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。

2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。

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

4、truncate 不能触发任何Delete触发器。

5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

6、不能清空父表

热点导航
教育资讯 知道问答 公考资讯 司法考试 建筑知识 工作范文 大学排名 报考专业 学习方法 句子美文 秒知回答 作业解答 精选答案 知途问学