SQL中DELETE、DROP和TRUNCATE的区别
fullstacker 发布于 2021-02-17

在本文中,我们将研究SQL中DELETE、DROP和TRUNCATE命令之间的区别。我们还将看到与每个命令相关的通用语法以及在SQL中实现这些命令的相应查询。


DELETE

SQLDELETE命令用于从表中删除现有记录或行。根据指定的条件,查询可用于从现有表中删除一条或多条记录。DELETE命令是一个数据操作语言(DML)命令。此命令返回执行后删除的记录数。使用此命令,如果不在WHERE子句中指定条件,也可以删除表的所有记录。

删除命令语法以删除所有行:

DELETE FROM Table_Name;
此查询从给定表名中删除所有记录。

使用WHERE子句删除命令语法:

DELETE FROM Table_Name WHERE [Conditions];
注意:我们不需要列出表的字段或列名,因为整个行或元组都被删除了。

查询示例:
此查询删除Student\u Id>100的所有记录或行(Student\u Id是表Student的列或属性)

DELETE FROM Student WHERE Student_Id>100;
此查询从表Student as WHERE子句中删除所有行,并且未指定条件。

DELETE FROM Student;
DROP

sql drop命令用于删除整个表。换句话说,它删除了整个记录以及表的模式和结构及其命名元素。DROP命令是一个数据定义语言(DDL)命令。此外,此命令还可用于删除数据库。数据库或表一旦被删除,就不复存在,无法恢复。

DROP命令语法:

DROP TABLE Table_Name;
查询示例:
此查询将从数据库中删除表Student

DROP TABLE Student;

此查询将删除整个数据库。

 DROP DATABASE School;
TRUNCATE

sql truncate命令用于删除表中的所有记录/行,而不影响数据库的模式和结构。TRUNCATE命令是一个数据定义语言(DDL)命令。此命令不能用于删除数据库中的一行,因为TRUNCATE命令不能使用WHERE子句。

截断命令语法:

 TRUNCATE TABLE Table_Name;
查询示例:
此查询从Student表中删除所有记录。
 TRUNCATE TABLE Student;

删除、删除和截断之间的区别

现在,我们分别比较了DELETE、DROP和TRUNCATE命令的主要特性。

DELETE

DROP

TRUNCATE

1. DML 命令.

1. DDL 命令.

1. DDL 命令.

2. 它用于根据WHERE子句中指定的条件删除行或记录.

2.它用于分别删除整个表及其模式和结构.

2. 它用于删除表的整个记录,而不影响表的架构.

3. 如果WHERE子句没有指定条件,它将删除表中的所有记录

3. 没有WHERE 子句.

3. 没有WHERE 子句.

4. 可回滚.

4. 不能回滚或撤销.

4. 不能回滚或撤销.

5. 它会在删除之前扫描每一行,这会使它更慢、更耗时.

5. 更快省时.

5. 它的执行速度比DELETE快,因为它不会在删除之前扫描每一行,这使得它的时间消耗最少.

6. 语法:DELETE FROM TABLE\u Name WHERE[CONDITIONS];

6. 语法: DROP TABLE Table_Name;

6. 语法: TRUNCATE TABLE            Table_Name;






全栈者
关注 私信
文章
31
关注
0
粉丝
0