SQL DELETE 語句

在本教程中,你將學習如何使用 SQL 從資料庫表中刪除記錄。

從表中刪除資料

正如你使用 INSERT 語句將記錄插入表中一樣,你也可以使用 DELETE 語句從表中刪除記錄。

語法

DELETE 語句用於從表中刪除一行或多行。

DELETE FROM table_name WHERE condition;

警告:DELETE 語句中用 WHERE 子句指定一個或多個記錄應予刪除。但它是可選的,但是如果省略或忘記該 WHERE 子句,則將從表中永久刪除所有記錄。

讓我們從我們在 cerate table 章節中建立的 persons 表中刪除一些記錄。

假設我們的 persons 表目前有以下記錄:

+----+--------------------+------------+-------------+
| id | name               | birth_date | phone       |
+----+--------------------+------------+-------------+
|  1 | Peter Wilson       | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson     | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth  | 1996-10-17 | 0695-346721 |
|  4 | George Bailey      | 1993-03-05 | 0897-034214 |
|  5 | Norman Bates       | 1999-08-25 | 0522-556721 |
+----+--------------------+------------+-------------+

根據條件刪除記錄

以下語句將刪除 persons 表中 id 大於 3 的行。

DELETE FROM persons WHERE id > 3;

執行查詢後,people 表將如下所示:

+----+--------------------+------------+-------------+
| id | name               | birth_date | phone       |
+----+--------------------+------------+-------------+
|  1 | Peter Wilson       | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson     | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth  | 1996-10-17 | 0695-346721 |
+----+--------------------+------------+-------------+

注意: 請參閱 SQL WHERE 子句 教程,瞭解如何根據多個條件形成複雜查詢,同時刪除表中的記錄。

刪除所有資料

類似,如上所述,如果你沒有在 DELETE 語句中指定 WHERE 子句,那麼表中的所有行都將被刪除。但是,不會刪除目標表本身,這意味著表結構,屬性和索引將保持不變。

以下語句將刪除 persons 表中的所有記錄 :

DELETE FROM persons;

現在,如果你嘗試從 persons 表中選擇記錄,你將獲得一個空結果集。