DELETE文とは
作成したテーブルに格納されているデータを削除したい。
そんな時はDELETE文を使います。DELETE文を使うとテーブルに格納されているすべてのデータを削除できたり、WHERE句で条件を指定することで特定のデータを削除することもできます。ただし、データを削除する場合は誤って意図しないデータを削除しないように注意が必要です。より安全にDELETEを実行するためのテクニックについても後程触れていきます。それではまずDELETE文の構造を見ていきましょう。
DELETE文の基本構文
DELETE文の書式は以下の通りです。
DELETE
FROM テーブル名
WHERE カラム名=値;
今回は例として、以下のようなテーブル(テーブル名:teachers)を使用します。
1 2 3 | SELECT * FROM teachers; |
では、ここからDELETE文を使ってデータを削除していきます。
まずnameカラムの値がナオキのデータを削除します。
1 2 3 4 5 | DELETE FROM teachers WHERE name = ’ナオキ’; |
SELECT * FROM テーブル名 で確認してみると、nameカラムの値がナオキのデータが削除されていますね。
特定のテーブルのすべてのデータを削除したい場合はWHERE句で条件を指定せず、次のように実行します。
1 2 3 | DELETE FROM teachers ; |
SELECT * FROM テーブル名 で確認すると、抽出するデータが無いので以下のようになります。
1 2 3 | SELECT * FROM teachers ; |
このようにDELETE文はWHERE句で条件に一致したデータを対象に削除するか、テーブルに格納されているすべてのデータの削除を行います。
今回の学習ポイント
・DELETE文はテーブルのデータを削除したい時に使う。
・特定のデータを削除したい場合はカラムを指定、すべてのデータを削除したい場合はテーブル名のみ指定。
・誤って別のデータを削除するのを防ぐために、SELECT文で削除したいデータを確認してから、DELETE文でteachersテーブルのidのような他のデータと被ることがない値を指定すると誤削除する可能性が少なくなります。
練習問題
問題として使用するデータは「SQL練習問題」のものを使用しています。
以下からダウンロード可能です。
以下のようにしてworldcup2014データベースを作成し、インポートしてください。
※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。
[sql] CREATE DATABASE worldcup2014;USE worldcup2014;
source C:\worldcup2014.sql
[/sql]
- countriesテーブルのカメルーンのデータを削除する。
- FWの選手を全て削除する。
以上、DELETE文の基本構文でした。