SQL Drop Table


本教學介紹如何使用SQL DROP TABLE語句刪除資料庫中的一個或多個表。

1. SQL DROP TABLE語句簡介

隨著資料庫在應用過程不斷的資料增加,有時需要從資料庫中刪除過時的冗餘表或不用的表。 要刪除表,可使用DROP TABLE語句。

以下是DROP TABLE語句的語法。

DROP TABLE [IF EXISTS] table_name;

要刪除現有表,可在DROP TABLE子句後指定表的名稱。 如果要刪除的表不存在,則資料庫系統會發出錯誤。

為了防止刪除不存在的表的錯誤,使用可選子句IF EXISTS。 如果使用IF EXISTS選項,如果刪除一個不存在的表,資料庫系統將不會丟擲任何錯誤。 某些資料庫系統會發出警告或通知。

注意,有些資料庫系統不支援IF EXISTS選項。 支援IF EXISTS選項的是MySQLPostgreSQL和SQL Server 2016。

DROP TABLE語句永久刪除表的資料和結構,某些資料庫系統要求表中的記錄必須為空時才能從資料庫中刪除。 這有助於防止意外刪除仍在使用的表。

要刪除表中的所有資料,可以使用DELETETRUNCATE TABLE語句。
要刪除由另一個表的外來鍵約束參照的表,必須在刪除表之前禁用或刪除外部約束。

2. SQL DROP 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;

3. SQL DROP TABLE - 刪除多個表

DROP TABLE語句允許同時刪除多個表。 為此,需要在DROP TABLE子句之後指定逗號分隔表名稱的列表,如下所示:

DROP TABLE table_name1,table_name2,...;

然後,資料庫系統逐個刪除指定的所有表。

在本教學中,我們已經學習了如何使用SQL DROP TABLE語句刪除資料庫中的一個或多個表。