SQL中的DELETE和DROP之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 5 可能 2024
Anonim
SQL: Delete Vs Truncate Vs Drop
视频: SQL: Delete Vs Truncate Vs Drop

内容


DELETE和DROP是用于删除数据库元素的命令。 DELETE命令是数据操作语言命令,而DROP是数据定义语言命令。区分DELETE和DROP命令的重点是 删除 用于从表中删除元组,并且 下降 用于从数据库中删除整个架构,表,域或约束。让我们借助下面的比较表来讨论SQL中的DELETE和DROP命令之间的更多区别。

内容:删除与删除

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础删除下降
基本的删除从表中删除部分或全部元组。DROP可以从数据库中删除整个架构,表,域或约束。
语言DELETE是一种数据处理语言命令。DROP是一种数据定义语言命令。
条款WHERE子句可以与DELETE命令一起使用。没有子句与DROP命令一起使用。
回滚可以回退由DELETE执行的操作。无法回退由DROP执行的操作。
空间即使使用DELETE删除表的所有元组,该表在内存中所占用的空间也不会释放。使用DROP删除的表将从内存中释放表空间。

DELETE的定义

删除是一个 数据处理语言 (DDL)命令。要删除时使用DELETE命令 一些 要么 所有元组 从关系。如果 哪里 子句与DELETE命令一起使用,它仅除去那些满足WHERE子句条件的元组。


如果DELETE语句中缺少WHERE子句,则默认情况下将从关系中删除所有元组,尽管包含那些元组的关系仍存在于架构中。您不能使用DELETE命令删除整个关系或域或约束。

DELETE命令的语法如下:

从relation_name中删除WHERE条件;

如果您使用 外键 并从引用表中删除一个元组,然后从引用表中自动删除该元组,以保持 参照完整性.

为了保持参照完整性,DELETE有两个行为选项, 限制级联。如果另一个表中的引用元组引用了RESTRICT,则拒绝删除该元组。 CASCADE允许删除引用元组,该引用元组引用要删除的元组。

DROP的定义

DROP是一个 数据定义语言 (DDL)命令。 DROP命令删除模式的命名元素,例如 关系, 要么 约束,甚至可以删除整个 图式 使用DROP命令。

DROP命令的语法如下:

DROP SCHEMA schema_name RESTRICT;

DROP表table_name CASCADE;

DROP命令具有两个名为的行为选项 级联限制。当使用CASCADE删除架构时,它将删除所有相关元素,例如架构中的所有关系,域和约束。

当您使用CASCADE从架构中删除关系(表)时,它将删除所有约束,视图以及引用要删除的关系的元素。

如果您使用RESTRICT删除架构,则仅当以下情况下执行DROP命令: 图式 离开了。如果使用RESTRICT删除表,则DROP命令将仅在以下情况下执行: 离开了。


SQL中的DELETE和DROP之间的主要区别

  1. DELETE命令用于从表中删除部分或全部元组。另一方面,DROP命令用于从数据库中删除架构,表,域或约束。
  2. DELETE是数据操作语言命令,而DROP是数据定义语言命令。
  3. DELETE可以与WHERE子句一起使用,但是DROP不能与任何命令一起使用。
  4. 可以回退由DELETE命令执行的操作,但对于DROP命令则不能回滚。
  5. 由于DELETE命令不会删除表,因此不会释放任何空间,而DROP删除整个表会释放存储空间。


结论:

DELETE命令用于删除表中的行,而DROP命令用于删除整个表本身。