MySQL 的 DELETE 语句用于从表中删除记录。以下是 DELETE 语句的详细说明和案例。

语法

DELETE FROM table_name
WHERE condition;
  • table_name:要删除记录的表名。

  • condition:指定删除哪些记录的条件。如果省略 WHERE 子句,将删除表中的所有记录。

注意事项

  1. 删除操作不可逆,执行前需谨慎。

  2. 如果表有外键约束,删除操作可能会失败或级联删除相关记录。

  3. 使用 WHERE 子句可以精确控制删除的记录。

案例

假设有一个名为 employees 的表,结构如下:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

表中数据如下:

+----+----------+------------+--------+
| id | name     | department | salary |
+----+----------+------------+--------+
| 1  | Alice    | HR         | 5000   |
| 2  | Bob      | IT         | 6000   |
| 3  | Charlie  | HR         | 5500   |
| 4  | David    | IT         | 7000   |
+----+----------+------------+--------+

案例 1:删除特定记录

删除 id 为 3 的员工记录:

DELETE FROM employees
WHERE id = 3;

执行后,employees 表数据如下:

+----+--------+------------+--------+
| id | name   | department | salary |
+----+--------+------------+--------+
| 1  | Alice  | HR         | 5000   |
| 2  | Bob    | IT         | 6000   |
| 4  | David  | IT         | 7000   |
+----+--------+------------+--------+

案例 2:删除符合条件的所有记录

删除 departmentHR 的所有员工记录:

DELETE FROM employees
WHERE department = 'HR';

执行后,employees 表数据如下:

+----+--------+------------+--------+
| id | name   | department | salary |
+----+--------+------------+--------+
| 2  | Bob    | IT         | 6000   |
| 4  | David  | IT         | 7000   |
+----+--------+------------+--------+

案例 3:删除所有记录

删除 employees 表中的所有记录:

DELETE FROM employees;

执行后,employees 表将为空。

总结

  • DELETE 语句用于删除表中的记录。

  • 使用 WHERE 子句可以精确控制删除的记录。

  • 删除操作不可逆,需谨慎执行。

本篇文章内容来源于:MySQL DELETE 语句详细说明以及案例