在本文中,我们将了解 DROP 和 Truncate 命令以及它们的区别。

什么是 DROP 命令?

DROP 是数据定义语言的命令,它从数据库表中删除或删除定义索引、数据、约束和触发器。
在结构化查询语言中,此语句从关系数据库管理系统 (RDBMS) 中删除元素。
DROP 命令比 SQL 中的 TRUNCATE 命令快。但是,它的执行时间很慢,因为它有很多复杂性。
我们还可以在 ALTER TABLE 语句中使用 DROP 关键字来从表中删除一列或多列。
删除数据库的语法如下:

DROP DATABASE database_name;

在这种语法中,必须指定要从系统中删除的数据库的名称。

注意:删除数据库时要小心,因为 DROP 命令会删除该数据库中包含的所有表、索引和视图。

删除表的语法如下:

DROP TABLE Table_Name;

在这种语法中,必须指定要从数据库中删除的表的名称。

在一个语句中删除多个表的语法如下:

DROP TABLE Table_Name1, Table_Name2, ......, Table_NameN;

在这种语法中,可以使用逗号指定多个索引。

删除索引的语法如下:

DROP INDEX INDEX_Name;

在这种语法中,必须在 INDEX 关键字之后指定索引的名称。与 SQL 中的 DELETE 命令不同,数据库用户在使用 DROP 命令后无法回滚表中的数据。
DROP 命令从存储中释放表空间,因为它从系统中永久删除表及其内容。

什么是 TRUNCATE 命令?

TRUNCATE 也是数据定义语言的另一个命令,此命令从表中永久删除所有值。此命令无法删除特定记录,因为它没有与 WHERE 子句一起使用。

SQL 中 TRUNCATE 命令的语法:

TRUNCATE TABLE Table_Name;

在上面的语法中,必须指定要从表中删除其所有记录的表的名称。

SQL DROP 和 Truncate 的区别

下表显示了结构化查询语言中 DROP 和 TRUNCATE 命令的区别:

DROP Truncate
SQL 中的 DROP 命令删除表定义及其数据。 SQL 中的 TRUNCATE 命令删除表中的所有数据。
此查询从内存中释放表空间。 TRUNCATE 查询不会从存储中释放表空间。
表的视图不能用 DROP 命令中。 表的视图能用 Truncate 命令。
完整性约束将在 DROP 命令中自动从表中删除。 此命令中的完整性约束不会被删除。
在 DROP 查询中,不使用已删除的空间。 删除的空间被使用但少于 DELETE 语句。
DROP 查询快速删除数据,但有很多复杂性。 SQL 中的 TRUNCATE 查询比 DROP 查询快。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:SQL DROP 和 Truncate 的区别
本文链接:https://www.vsdiffer.com/vs/drop-vs-truncate-in-sql.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。