SQL DELETE 语句详细讲解
DELETE
语句在 SQL 中用于从数据库表中删除记录。使用这个语句时需要谨慎,因为它会永久移除数据。
基本语法
DELETE FROM table_name
WHERE condition;
table_name
:要删除记录的表名称。WHERE condition
:指定哪些记录需要删除的条件。如果省略WHERE
子句,将删除表中的所有记录,这通常是不推荐的。
使用方法
- 删除特定记录:使用
WHERE
子句指定要删除的记录。 - 删除多个记录:在
WHERE
子句中指定条件,以匹配多个记录。
代码示例
假设我们有一个名为 "Employees" 的表,包含了员工的信息:
+----+---------+--------+-----------+
| id | name | salary | department |
+----+---------+--------+-----------+
| 1 | Alice | 5000 | HR |
| 2 | Bob | 6000 | IT |
| 3 | Charlie | 5500 | IT |
| 4 | David | 7000 | Finance |
+----+---------+--------+-----------+
示例 1:删除特定记录
删除 ID 为 2 的员工记录:
DELETE FROM Employees
WHERE id = 2;
执行后,表将变为:
+----+---------+--------+-----------+
| id | name | salary | department |
+----+---------+--------+-----------+
| 1 | Alice | 5000 | HR |
| 3 | Charlie | 5500 | IT |
| 4 | David | 7000 | Finance |
+----+---------+--------+-----------+
示例 2:删除多个记录
删除所有 IT 部门的员工记录:
DELETE FROM Employees
WHERE department = 'IT';
执行后,表将变为:
+----+---------+--------+-----------+
| id | name | salary | department |
+----+---------+--------+-----------+
| 1 | Alice | 5000 | HR |
| 4 | David | 7000 | Finance |
+----+---------+--------+-----------+
示例 3:删除所有记录
删除表中的所有记录(不推荐,除非你确实需要这样做):
DELETE FROM Employees;
或者,你可以使用 TRUNCATE TABLE
语句,它没有 WHERE
子句,并且无法被回滚:
```sql
TRUNCATE TABLE Emplo