概要: このチュートリアルでは、SQL DROP TABLE ステートメントを使用して、データベースから1つ以上のテーブルを削除する方法を学習します。
SQL DROP TABLE ステートメントの概要
データベースが進化するにつれて、データベースから不要になったテーブルや冗長なテーブルを削除する必要があります。テーブルを削除するには、DROP TABLE
ステートメントを使用します。
DROP TABLE
ステートメントの構文を以下に示します。
DROP TABLE [IF EXISTS] table_name;
Code language: SQL (Structured Query Language) (sql)

既存のテーブルを削除するには、DROP TABLE
句の後にテーブル名を指定します。削除しようとしているテーブルが存在しない場合、データベースシステムはエラーを発行します。
存在しないテーブルを削除するエラーを防ぐために、オプション句 IF EXISTS
を使用します。IF EXISTS
オプションを使用すると、存在しないテーブルを削除しても、データベースシステムはエラーをスローしません。一部のデータベースシステムは、代わりに警告または通知をスローします。
すべてのデータベースシステムが IF EXISTS
オプションをサポートしているわけではないことに注意してください。IF EXISTS
オプションをサポートしているのは、MySQL、PostgreSQL、および SQL Server 2016 です。
DROP TABLE
ステートメントは、テーブルのデータと構造の両方を完全に削除します。一部のデータベースシステムでは、テーブルをデータベースから削除する前に、テーブルが空である必要があります。これは、使用中のテーブルを誤って削除するのを防ぐのに役立ちます。
テーブル内のすべてのデータを削除するには、DELETE
または TRUNCATE TABLE
ステートメントを使用できます。
別のテーブルの 外部キー制約 によって参照されているテーブルを削除するには、テーブルを削除する前に、外部キー制約を無効にするか削除する必要があります。
SQL DROP TABLE の例
DROP TABLE
ステートメントを練習するために、新しいテーブルを作成 しましょう。
次のステートメントは、従業員の緊急連絡先を格納する emergency_contacts
という名前の新しいテーブルを作成します。
CREATE TABLE emergency_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
);
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、emergency_contacts
テーブルを削除します。
DROP TABLE emergency_contacts;
Code language: SQL (Structured Query Language) (sql)
SQL DROP TABLE – 複数のテーブルの削除
DROP TABLE
ステートメントを使用すると、複数のテーブルを同時に削除できます。これを行うには、DROP TABLE
句の後に、カンマ区切りのテーブルのリストを次のように指定する必要があります。
DROP TABLE table_name1,table_name2,...;
Code language: SQL (Structured Query Language) (sql)
データベースシステムは、すべてのテーブルを1つずつ削除します。
まとめ
- SQL DROP TABLE ステートメントを使用して、データベースから1つ以上のテーブルを削除します。