sql数据库中的 delete 与drop的区别

简介: sql数据库中的 delete 与drop的区别
+关注继续查看

数据库中的delete 与drop的区别, 从下面的例子开始:


delete :  delete from 表名  where 条件


drop  :  alter table  表名  drop 字段


              drop table  表


有的同学从从上面的例子,可以看出来,  delete  删除的是 数据,drop删除的是  表;


这个没错,  但是, delete  和 drop 还有其他的区别,如下:


delete:


1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。


2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。


3、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。


drop:


1、drop是DDL,会隐式提交,所以,不能回滚,不会触发触发器。


2、drop语句删除表结构及所有数据,并将表所占用的空间全部释放。


3、drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。



所以:


1、在速度上,一般来说,drop> delete。


2、在使用drop时一定要注意,虽然可以恢复,但为了减少麻烦,还是要慎重。


3、如果想删除部分数据用delete,注意带上where子句,回滚段要足够大;如果和事务有关,或者想触发trigger,还是用delete


4、如果想删除表,当然用drop;



目录
相关文章
|
6月前
|
SQL 存储 索引
详细了解SQL中delete,drop,truncate的区别和不同
详细了解SQL中delete,drop,truncate的区别和不同
85 1
|
10月前
|
SQL 缓存 运维
SQL 中delete与truncate的区别
SQL 中delete与truncate的区别
|
SQL 数据库
SQL DELETE 语句
SQL DELETE 语句
69 0
|
SQL 分布式计算 Hadoop
SQL 语法--表特定语句--alter、drop、view | 学习笔记
快速学习 SQL 语法--表特定语句--alter、drop、view
224 0
SQL 语法--表特定语句--alter、drop、view | 学习笔记
|
SQL 存储 数据库
sql数据库中的 delete 与drop的区别
sql数据库中的 delete 与drop的区别
136 0
|
SQL 关系型数据库 MySQL
软件测试mysql面试题:定义SQL Delete语句。
软件测试mysql面试题:定义SQL Delete语句。
69 0
【sql语句基础】——删(delete) /改(update)
【sql语句基础】——删(delete) /改(update)
|
SQL 存储
SQL Server 2016新特性:DROP IF EXISTS
原文:SQL Server 2016新特性:DROP IF EXISTS  在我们写T-SQL要删除某个对象(表、存储过程等)时,一般会习惯先用IF语句判断该对象是否存在,然后DROP,比如: 旧版本: IF OBJECT_ID('dbo.
1251 0
推荐文章
更多