在本教程中,您將學習如何使用SQL從數(shù)據庫表中刪除記錄。
就像使用INSERT語句將記錄插入表中一樣,您也可以使用語句從表中刪除記錄DELETE。
DELETE語句用于從表中刪除一個或多個行。
DELETE FROM table_name WHERE condition;
警告:DELETE語句中的WHERE子句指定應刪除的記錄。 但是,它是可選的,但是如果您省略或忘記了WHERE子句,則所有記錄將從表中永久刪除。
讓我們從在創(chuàng)建表一章中創(chuàng)建的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 | +----+--------------------+------------+-------------+
以下語句將從id大于3的人員(persons)表中刪除行。
DELETE FROM persons WHERE id > 3;
執(zhí)行查詢后,人員(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 | +----+--------------------+------------+-------------+
注意:請參考有關SQL WHERE子句的教程,以了解如何在從表中刪除記錄時基于多個條件形成復雜的查詢。
同樣,如上所述,如果您未在WHERE語句中指定子句,則DELETE表中的所有行都將被刪除。但是,目標表本身不會被刪除,這意味著表結構,屬性和索引將保持不變,但是表中的數(shù)據會被清空。
以下語句將刪除人員(persons)表中的所有記錄:
DELETE FROM persons;
現(xiàn)在,如果您嘗試從人員(persons)表中選擇或查詢記錄,則會得到一個空結果集。