データベース初心者必見!入門編その13〜DELETE文によるデータの削除〜

2015/08/31

はじめに

今回は、入門編その1入門編その2入門編その3入門編その4入門編その5入門編その6入門編その7入門編その8入門編その9入門編その10,入門編その11入門編その12の続きです。

今回も前回同様にFoodテーブルを使って、テーブルに登録されているデータの内容を削除します。

foodテーブル
foottebale

データの削除

テーブルのデータを削除するにはDELETE文を使用します。

foodテーブルからfood_name列の値が「りんご」の値を削除します。

[sql]DELETE FROM food WHERE food_name=”りんご” [/sql]

実行結果
foodテーブルの中身を参照
deleteringo

SQL発行後、foodテーブルの中には「りんご」のデータが見当たりません。削除ことができました。
DELETE FROMの後にテーブル名、WHERE句に削除するデータの条件を記述することでデータを削除することができます。
今回は1件のデータの削除しましたが、WHERE句に一致する行が複数あった場合には、それらすべての行が削除されます。
また、WHERE句を記述せずに「DELETE FROM food」でSQLを発行した場合には、foodテーブルのすべての行が削除されます。

複数の条件を指定したデータの削除

今度は、条件が一つではなく、いくつか条件が指定した場合のデータの削除を行います。
ここでは、WHERE句で複数の条件を指定しています。
例として、food_stock列の値が10のものかつ、ctg_id列の値が3のもの、つまりfood_name列が値が「ラーメン」を削除します。WHERE句の中出複数の条件は指定する場合はAND句を使います。

[sql]DELETE FROM food WHERE food_stock=10 AND ctg_id=5[/sql]

実行結果
foodテーブルの中身を参照
deleteramen

複数の条件を指定してテーブルの値を削除することができました。同じ条件のものがあれば、そちらのデータも削除されます。今回は、たまたま「ラーメン」のみが削除されました。

 

複数のSQLをまとめて実行する

任意のデータを一行一行、SQLを発行するのは、手間がかかります。そんな時には、「;」でSQLまとめて書いて実行してしまいましょう。
今回は、foodテーブルの「つけ麺」以外のデータを削除します。他にももっとスマートに出来る方法がありますが、ここではこういったこともできると覚えておいて下さい。

[sql]
DELETE FROM food WHERE food_name =”りんご”;
DELETE FROM food WHERE food_name =”ラーメン”;
DELETE FROM food WHERE food_name =”冷やし中華”;
DELETE FROM food WHERE food_name =”トマト”;
[/sql]

実行結果
foodテーブルの中身を参照
つけ麺以外のけす
つけ麺以外のデータがすべて削除されました。
SQLまとめて実行したい場合は、「;」でつないで複数の行にしてしまいましょう。

 

最後に

今回は、テーブルからデータを削除する方法について紹介いたしました、
テーブルのデータの操作は基本的には、INSERT分、UPDATE、DELETE分で行えます。

次回は初級編一旦打ち切りにしまして、中級編に入ります。
題目はデータ制御言語(DCL:DateContorolLanguage)とトランザクションについて紹介いたします。
引き続きご愛読よろしくお願いいたします。

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー