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 表中選擇記錄,你將獲得一個空結果集。