SQLでテーブルのレコードを削除する DELETE

SQLを使うとデータベースのデータ(テーブルのレコード)を操作することができます。

データ操作の主な命令には

  • データの取得
  • データの挿入(追加)
  • データの更新(修正)
  • データの削除

があります。

本ブログでは、以前にテーブルのレコードを挿入(追加)するINSERTステートメントについて紹介しました。

SQLでテーブルにレコードを挿入(追加)する INSERT
を使うとデータベースのデータ(テーブルのレコード)を操作することができます。 データ操作の主な命令には データの取得 ...

また、既にテーブルに登録されているレコードを更新(修正)するUPDATEステートメントについても紹介しました。

SQLでテーブルのレコードを更新(修正)する UPDATE
SQLを使うとデータベースのデータ(テーブルのレコード)を操作することができます。 データ操作の主な命令には データの取得 ...

そこで今回は、上記の基本的なデータ操作命令の中から、テーブルのレコードを削除する方法について紹介します。

使用するサンプルテーブル

本記事ではレコードを更新する際に以下のサンプルテーブルを使用します。

テーブル定義

サンプルとして使用するテーブルは、従業員の情報を管理する「従業員」と名前にします。
「従業員」テーブルには「従業員番号」「氏名」「パスワード」「メールアドレス」の4つの列を作成します。

列名 主キー
従業員番号 int
氏名 varchar(20)
パスワード varchar(20)
メールアドレス varchar(200)

テーブルを作成するCREATE文

テーブルのレコードを削除するINSERT文

テーブルのレコードを削除するDELETE

SQLでテーブルのレコードを削除する際は、DELETEステートメントを使用します。

DELETEステートメントの構文

DELETEステートメントは、以下の構文で使用します。

DELETEステートメントでは、DELETEに続けてFROMを記述します。DELETEとFROMの間には空白文字(スペース、タブ、改行など)を記述します。
DELETE FROMの後にはレコードを削除するテーブルの名前を記述します。
例えば、CUSTOMERというテーブルのレコードを削除するのであれば

となります。
テーブル名を記述した後には、削除するレコードをWHERE句で指定します。
WHERE句には「列名 = 条件」の形式で、削除対象となるレコードを指定します。
例えば、CUSTOMER_ID列の値が「123」のレコードを更新対象とする場合は

となります。

サンプルテーブルのレコードの削除

DELETEステートメントの構文が確認できましたので、サンプルテーブルのレコードを削除してみます。
ここでは、従業員テーブルに挿入(追加)した従業員番号が「1」のレコードを削除します。

従業員テーブルのレコードを削除するSQL

従業員テーブルのレコードを削除するSQLは、以下のようになります。

上記のSQLを実行すると従業員テーブルの従業員番号が「1」のレコードが削除されます。

FROM句の指定について

DELETEステートメントに記述する「DELETE FROM」のFROM句は、省略することができます。
例えば、「DELETE FROM テーブル」は「DELETE テーブル」と記述することができます。

WHERE句を省略した場合の動作

DELETEステートメントでWHERE句を省略した場合は、テーブルのすべてのレコードが削除の対象となります。