當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。