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