当前位置:伍佰目录 » 站长资讯 » 教育考试 » 教育资讯 » 文章详细

drop和delete的区别

来源:网络转载 浏览:136次 时间:2022-12-17

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



DELETE和DROP的主要区别


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


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


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


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


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


delete


出没场合: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、不能清空父表


伍佰目录声明:本站部分文章来源于网络,版权属于原作者所有。如有转载或引用文章/图片涉及版权问题,请联系我们处理.我们将在第一时间删除! 联系邮箱:tsk@qq.com

快速链接

最新收录

最新点入