SQL中的DELETE和DROP之间的区别
作者:
Laura McKinney
创建日期:
1 四月 2021
更新日期:
5 可能 2024
内容
DELETE和DROP是用于删除数据库元素的命令。 DELETE命令是数据操作语言命令,而DROP是数据定义语言命令。区分DELETE和DROP命令的重点是 删除 用于从表中删除元组,并且 下降 用于从数据库中删除整个架构,表,域或约束。让我们借助下面的比较表来讨论SQL中的DELETE和DROP命令之间的更多区别。
内容:删除与删除
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 删除 | 下降 |
---|---|---|
基本的 | 删除从表中删除部分或全部元组。 | 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之间的主要区别
- DELETE命令用于从表中删除部分或全部元组。另一方面,DROP命令用于从数据库中删除架构,表,域或约束。
- DELETE是数据操作语言命令,而DROP是数据定义语言命令。
- DELETE可以与WHERE子句一起使用,但是DROP不能与任何命令一起使用。
- 可以回退由DELETE命令执行的操作,但对于DROP命令则不能回滚。
- 由于DELETE命令不会删除表,因此不会释放任何空间,而DROP删除整个表会释放存储空间。
结论:
DELETE命令用于删除表中的行,而DROP命令用于删除整个表本身。