概要: このチュートリアルでは、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つ以上のテーブルを削除します。