DELETE和TRUNCATE之间有什么区别?

2021年3月23日15:17:09 发表评论 867 次浏览

1.删​​除:

删除是一个

DML(数据处理语言)

命令, 当我们指定要从表或关系中删除或删除的行(元组)时使用。 DELETE命令可以包含WHERE子句。如果

其中

子句与DELETE命令一起使用, 然后它仅删除或删除满足条件的那些行(元组), 否则默认情况下它将从表中删除所有元组(行)。

DELETE命令的语法:

DELETE FROM TableName 
WHERE condition;

2.截断:

TRUNCATE是一个

DDL(数据定义语言)

命令, 并用于删除表中的所有行或元组。与DELETE命令不同, TRUNCATE命令不包含WHERE子句。在TRUNCATE命令中, 记录每个已删除数据页的事务日志。与DELETE命令不同, TRUNCATE命令速度很快, 使用TRUNCATE命令后我们无法回滚数据。

TRUNCATE命令的语法:-

TRUNCATE TABLE  TableName;

让我们看看DELETE和TRUNCATE命令之间的区别:

序号 删除 截短
1. DELETE命令用于删除指定的行(一个或多个)。 而此命令用于删除表中的所有行。
2. 这是DML(数据操作语言)命令。 它是DDL(数据定义语言)命令。
3. 在DELETE命令中可能有WHERE子句以过滤记录。 虽然TRUNCATE命令中可能没有WHERE子句。
4. 在DELETE命令中, 在删除元组之前将其锁定。 在此命令中, 数据页在删除表数据之前被锁定。
5. 即使使用DELETE命令, 我们也可以回滚数据。 使用此命令时, 我们无法回滚。
6. DELETE命令比TRUNCATE命令慢。 而TRUNCATE命令比DELETE命令快。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: