DROP和DELETE的区别

DELETE命令的简单介绍

DELETE是一种数据操作语言(DDL)命令,可以使用DELETE命令来从表中删除部分或全部记录。可以和WHERE子句一起使用,用于删除满足添加的某些记录;如果未指定WHERE条件,则将删除所有记录。

注:

使用DELETE命令无法删除整个表或域、约束。

DELETE命令的语法如下:

1

DELETE

FROM

relation_name

where

条件;

如果使用外键链接两个表并从引用的表中删除元组,则还将自动删除引用表中的数据以保持引用完整性。

DROP命令的简单介绍

DROP是一种数据定义语言(DDL)命令,可以从数据库中删除一个或多个表,它将删除表的所有相关数据,索引,触发器,约束和权限规范

DROP命令的语法如下:

DROP

SCHEMA

schema_name

RESTRICT

;

DROP

Table

table_name

CASCADE

;

DROP命令有两个名为CASCADE和RESTRICT的行为选项。当CASCADE用于DROP模式时,它会删除所有相关元素,如模式,域和约束中的所有表。

当我们使用CASCADE从架构中删除表时,它会删除所有约束,视图以及引用正在删除的关系的元素。

注:

无法删除任何外键约束引用的表。

DELETE和DROP的主要区别

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

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

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

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

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

DROP和DELETE的区别