在 SQL 中,`DELETE` 子句用于从数据库表中删除行。
示例
DELETE FROM Customers
WHERE customer_id = 4;
这里,SQL 命令将删除 `Customers` 表中 `customer_id` 为 **4** 的行。
DELETE 语法
SQL `DELETE` 命令的语法是
DELETE FROM table_name
[WHERE condition];
这里,
- `table_name` 是要从中删除行的表的名称
- `condition` 指定应删除哪些行
- `[]` 表示 `WHERE` 子句是可选的。
删除表中的单行
我们可以使用 `DELETE` 命令删除表中的单行。例如,
DELETE FROM Customers
WHERE customer_id = 5;
这里,SQL 命令将删除 `Customers` 表中 `customer_id` 为 **5** 的行。

删除表中的所有行
`WHERE` 子句确定要删除哪些行。但是,如果我们省略 `WHERE` 子句,我们可以一次删除所有行。例如,
DELETE FROM Customers;
这里,SQL 命令从 `Customers` 表中删除所有行。
注意:使用 `DELETE` 时要小心。如果数据库没有备份,记录可能会永久丢失。
SQL 中的 Truncate Table
`TRUNCATE TABLE` 子句是另一种一次删除表中所有行的方法。例如,
TRUNCATE TABLE Customers;
这里,SQL 命令从 `Customers` 表中删除所有行。
注意:由于此命令基于 SQLite,因此我们的 SQL 在线编辑器不支持此命令。
SQL DELETE 与 TRUNCATE
SQL DELETE | SQL TRUNCATE |
---|---|
SQL `DELETE` 支持 `WHERE` 子句。 | SQL `TRUNCATE` 不支持 `WHERE` 子句。 |
SQL `DELETE` 可以从表中删除单行、多行或所有行/记录。 | SQL `TRUNCATE` 只能从表中删除所有记录。 |