本教學介紹如何使用SQL DROP TABLE
語句刪除資料庫中的一個或多個表。
隨著資料庫在應用過程不斷的資料增加,有時需要從資料庫中刪除過時的冗餘表或不用的表。 要刪除表,可使用DROP TABLE
語句。
以下是DROP TABLE
語句的語法。
DROP TABLE [IF EXISTS] table_name;
要刪除現有表,可在DROP TABLE
子句後指定表的名稱。 如果要刪除的表不存在,則資料庫系統會發出錯誤。
為了防止刪除不存在的表的錯誤,使用可選子句IF EXISTS
。 如果使用IF EXISTS
選項,如果刪除一個不存在的表,資料庫系統將不會丟擲任何錯誤。 某些資料庫系統會發出警告或通知。
注意,有些資料庫系統不支援
IF EXISTS
選項。 支援IF EXISTS
選項的是MySQL,PostgreSQL和SQL Server 2016。
DROP TABLE
語句永久刪除表的資料和結構,某些資料庫系統要求表中的記錄必須為空時才能從資料庫中刪除。 這有助於防止意外刪除仍在使用的表。
要刪除表中的所有資料,可以使用DELETE或TRUNCATE TABLE語句。
要刪除由另一個表的外來鍵約束參照的表,必須在刪除表之前禁用或刪除外部約束。
下面建立一個用於練習DROP TABLE
語句的新表。
以下語句建立一個名為demo_contacts
的新表,用於儲存員工的緊急聯絡人。
CREATE TABLE demo_contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
relationship VARCHAR(50) NOT NULL,
employee_id INT NOT NULL
);
以下語句用於刪除demo_contacts
表:
DROP TABLE demo_contacts;
DROP TABLE
語句允許同時刪除多個表。 為此,需要在DROP TABLE
子句之後指定逗號分隔表名稱的列表,如下所示:
DROP TABLE table_name1,table_name2,...;
然後,資料庫系統逐個刪除指定的所有表。
在本教學中,我們已經學習了如何使用SQL DROP TABLE
語句刪除資料庫中的一個或多個表。