在本文中,我们将研究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;
查询示例:
DROP TABLE Student;
此查询将删除整个数据库。
DROP DATABASE School;
TRUNCATE
sql truncate命令用于删除表中的所有记录/行,而不影响数据库的模式和结构。TRUNCATE命令是一个数据定义语言(DDL)命令。此命令不能用于删除数据库中的一行,因为TRUNCATE命令不能使用WHERE子句。
截断命令语法:
TRUNCATE TABLE Table_Name;
查询示例: 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; |