跳到主要内容

SQL DELETE和TRUNCATE

提示

1.DELETE语法与用法:SQL的DELETE命令用于删除表中的行,可以指定条件(通过WHERE子句)来删除特定行或省略WHERE子句删除所有行。

2.TRUNCATE命令:SQL的TRUNCATE TABLE命令也用于删除表中所有行,但不能指定条件,且与DELETE相比,TRUNCATE通常更快且不可回滚。

3.DELETE与TRUNCATE的区别DELETE允许精确控制要删除的记录,支持WHERE子句,而TRUNCATE只能删除表中所有记录,不支持条件删除,且操作通常不可回滚。

在 SQL 中,DELETE 子句用于从数据库表中删除行。

示例

WHERE customer_id = 4;

这里,如果 Customers 表中的 customer_id4,则 SQL 命令将删除一行。

DELETE 语法

SQL DELETE 命令的语法是:

DELETE FROM table_name
[WHERE condition];

这里,

  • table_name 是要从中删除行的表的名称
  • condition 指定应删除哪些行
  • [] 表示 WHERE 子句是可选的。

在表中删除单个行

我们可以使用 DELETE 命令在表中删除单个行。例如,

WHERE customer_id = 5;

这里,如果 Customers 表中的 customer_id5,则 SQL 命令将删除一行。

如何在 SQL 中删除一行

删除表中的所有行

WHERE 子句确定要删除哪些行。然而,如果我们省略 WHERE 子句,我们可以一次性删除所有行。例如,

这里,SQL 命令从 Customers 表中删除所有行。

注意: 使用 DELETE 时要小心。如果数据库未备份,记录可能会永久丢失。

SQL 中的 Truncate 表

TRUNCATE TABLE 子句是另一种一次性删除表中所有行的方法。例如,

TRUNCATE TABLE Customers;

这里,SQL 命令从 Customers 表中删除所有行。

注意: 由于基于 SQLite,此命令不受我们的 SQL 在线编辑器支持。

SQL DELETE 与 TRUNCATE 的区别

SQL DELETESQL TRUNCATE
SQL DELETE 支持 WHERE 子句。SQL TRUNCATE 不支持 WHERE 子句。
SQL DELETE 可以从表中删除单个、多个或所有行/记录。SQL TRUNCATE 只能删除表中的所有记录。