SQLを使うとデータベースのデータ(テーブルのレコード)を操作することができます。
データ操作の主な命令には
- データの取得
- データの挿入(追加)
- データの更新(修正)
- データの削除
があります。
本ブログでは、以前にテーブルのレコードを挿入(追加)するINSERTステートメントについて紹介しました。
また、既にテーブルに登録されているレコードを更新(修正)するUPDATEステートメントについても紹介しました。
そこで今回は、上記の基本的なデータ操作命令の中から、テーブルのレコードを削除する方法について紹介します。
目次
使用するサンプルテーブル
本記事ではレコードを更新する際に以下のサンプルテーブルを使用します。
テーブル定義
サンプルとして使用するテーブルは、従業員の情報を管理する「従業員」と名前にします。
「従業員」テーブルには「従業員番号」「氏名」「パスワード」「メールアドレス」の4つの列を作成します。
列名 | 型 | 主キー |
---|---|---|
従業員番号 | int | 〇 |
氏名 | varchar(20) | |
パスワード | varchar(20) | |
メールアドレス | varchar(200) |
テーブルを作成するCREATE文
1 2 3 4 5 6 7 |
CREATE TABLE [従業員] ( [従業員番号] int NOT NULL PRIMARY KEY, [氏名] varchar(20) NOT NULL, [パスワード] varchar(20) NOT NULL, [メールアドレス] varchar(20) NULL ); |
テーブルのレコードを削除するINSERT文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
INSERT INTO [従業員] ( [従業員番号], [氏名], [パスワード], [メールアドレス] ) VALUES ( 1, '山田 太郎', 'hogehoge', 'foo@example.co.jp' ); INSERT INTO [従業員] ( [従業員番号], [氏名], [パスワード], [メールアドレス] ) VALUES ( 2, '佐藤 花子', 'piyopiyo', 'bar@example.co.jp' ); |
テーブルのレコードを削除するDELETE
SQLでテーブルのレコードを削除する際は、DELETEステートメントを使用します。
DELETEステートメントの構文
DELETEステートメントは、以下の構文で使用します。
1 2 3 |
DELETE FROM テーブル名 WHERE [削除するレコードの条件] |
DELETEステートメントでは、DELETEに続けてFROMを記述します。DELETEとFROMの間には空白文字(スペース、タブ、改行など)を記述します。
DELETE FROMの後にはレコードを削除するテーブルの名前を記述します。
例えば、CUSTOMERというテーブルのレコードを削除するのであれば
1 |
DELETE FROM CUSTOMER |
となります。
テーブル名を記述した後には、削除するレコードをWHERE句で指定します。
WHERE句には「列名 = 条件」の形式で、削除対象となるレコードを指定します。
例えば、CUSTOMER_ID列の値が「123」のレコードを更新対象とする場合は
1 |
WHERE CUSTOMER_ID = 123 |
となります。
サンプルテーブルのレコードの削除
DELETEステートメントの構文が確認できましたので、サンプルテーブルのレコードを削除してみます。
ここでは、従業員テーブルに挿入(追加)した従業員番号が「1」のレコードを削除します。
従業員テーブルのレコードを削除するSQL
従業員テーブルのレコードを削除するSQLは、以下のようになります。
1 2 3 |
DELETE FROM [従業員] WHERE [従業員番号] = 1; |
上記のSQLを実行すると従業員テーブルの従業員番号が「1」のレコードが削除されます。
FROM句の指定について
DELETEステートメントに記述する「DELETE FROM」のFROM句は、省略することができます。
例えば、「DELETE FROM テーブル」は「DELETE テーブル」と記述することができます。
WHERE句を省略した場合の動作
DELETEステートメントでWHERE句を省略した場合は、テーブルのすべてのレコードが削除の対象となります。