当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL DELETE用法及代码示例


MySQL 的DELETE 语句用于删除表中的现有记录。

警告

您需要表的 DELETE 权限才能从中删除记录。

用法

DELETE FROM table_name
WHERE condition;

例子

请考虑下表了解学生是否持有驾驶执照:

student_id

full_name

年龄

has_license

1

天空镇

17

0

2

本·戴维斯

19

1

3

特拉维斯·苹果

18

0

4

亚瑟·大卫

16

0

5

本杰明镇

17

1

可以使用此处的代码创建上述示例表。

删除单个记录

删除 'Ben Davis' 的记录,因为他现已离开学校:

DELETE FROM drivers_license
WHERE student_id = 2;



Query OK, 1 row affected (0.01 sec)

我们可以看到'Ben Davis'现已从drivers_license表中删除:

SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          1 | Sky Towner    |   18 |           0 |
|          3 | Travis Apple  |   18 |           0 |
|          4 | Arthur David  |   16 |           0 |
|          5 | Benjamin Town |   17 |           1 |
+------------+---------------+------+-------------+
警告

每当您在表格上执行DELETE 时都要小心。如果我们忘记添加WHERE子句,表中的所有记录都将被删除。

DELETE FROM drivers_license;
SELECT *
FROM drivers_license;



Empty set (0.01 sec)

删除多条记录

请考虑下表了解学生是否持有驾驶执照:

student_id

full_name

年龄

has_license

1

天空镇

17

0

2

本·戴维斯

19

1

3

特拉维斯·苹果

18

0

4

亚瑟·大卫

16

0

5

本杰明镇

17

1

要删除 student_id 123 学生的记录:

DELETE FROM drivers_license
WHERE student_id IN (1, 2, 3);
SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          4 | Arthur David  |   16 |           0 |
|          5 | Benjamin Town |   17 |           1 |
+------------+---------------+------+-------------+
注意

在使用 DELETE 语句之前,请使用相同的条件执行 SELECT 语句,以查看到底要删除什么。此外,每当您对数据执行任何大型操作时,请务必先对其进行备份!

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | DELETE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。