delete、truncate、drop区别

1.drop删除表数据和表结构,delete和truncate只删除表数据

2.delete逐行记录到redo日志中,可恢复,truncate和drop只记录少量操作语句,不能恢复。

3.delete可触发trigger,truncate不能

4.delete是DML语句,truncate、drop是DDL语句

5.执行速度drop>truncate>delete

6.truncate后,表和索引占用空间恢复到初始大小,delete后,表和索引空间不变,drop后,表和索引占用空间全部释放。

7.应用范围:delete可用户表和试图,truncate只用于表。

8.delete和truncate保留表结构,只删除数据,drop删除表结构,被依赖的约束、触发器、索引,依赖于该表的函数和存储过程被保留,但状态invalid。

原文地址:https://www.cnblogs.com/hh-jj/p/10360029.html

时间: 2024-11-07 07:46:47

delete、truncate、drop区别的相关文章

delete,truncate ,drop区别

use [database_name]go delete from table_nameTest  where FCRTime<(Select CONVERT(varchar(100),DATEADD(DAY,-30,getdate()), 112)) CONVERT() 函数: CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度).data_to_be_converted

关于sql 中delete, truncate,drop的理解与总结

关于文章,本文是在网上查找资料整理而来,方便以后记忆 delete 命令删除的数据可以恢复, truncate 命令删除的数据是不可以恢复的,全删的那种 drop 命令删除的数据不可恢复,连表结构都删的那种 相同点 truncate 和不带 where 子句的 delete, 以及 drop 都会删除表内的数据. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(ind

truncate 、delete与drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: TRUNCATE TABLE:删除内容.释放空间但不删除定义. DELETE TABLE:删除内容不删除定义,不释放空间. DROP TABLE:删除内容和定义,释放空间. 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrai

sql中truncate、delete、drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这

SQL truncate 、delete与drop区别(转)

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这

[转载]SQL truncate、delete与drop区别

一些比较基础性的数据库知识: 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是

Truncate、delete与drop区别

truncate.delete(不带where子句)与drop的异同点: 相同之处: 三者均会删除表内的data. 不同点: <1>.truncate与不带where的delete :只删除数据,而不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger), 索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid. <2>.delete语句为DML(data maintain Language),这

sql之truncate 、delete与drop区别

相同点:truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态.2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效:如果有相应的

Oracle truncate、 delete、 drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这个

SQL truncate 、delete与drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这个