本記事では、DELETEについて解説します。
前回はUPDATEによるレコード更新方法について解説しました。
今回では、DELETEによってレコードを削除する方法についてみていきましょう。
SQLのDELETEとは?
DELETEとは、レコードを削除するもののことです。
DELETEを使うことで、指定したレコードのデータを削除することができるようになります。
たとえば、出席名簿のデータベースを作成した際、誰かが転校した場合に、DELETEでデータを削除することが可能です。
このように、レコードを削除できるのが、DELETEですね。
SQLのDELETEの使い方
DELETEの具体的な使い方についてみていきましょう。
次の項目に従って解説していきます。
- DELETEでデータを削除する
- DELETEで複数行同時に削除する
- DELETEとORDER BYを使って削除する
なお、今回は『SQL入門編1』で作成したテーブルを使って解説します。『SQL入門編1』で演習用のテーブルを作っていない方は、【SQL入門編1】初心者必見!SQLのクエリの書き方を学ぼうを読んで予め作成してくださいね。
また、本記事は前回の【SQL初級編2】UPDATEでデータベースのデータを更新しようの続きになっているので、こちらを先にお読み下さい。
DELETEでデータを削除する
DELETE文でデータを削除する方法をみていきます。
○コード例
DELETE FROM TEST.Student WHERE id=11;
SELECT id FROM TEST.Student;
○実行結果
上記のコードでは、idが11のレコードをまるごと削除しています。
DELETE文は以下の書式で使います。
DELETE FROM {テーブル名} WHERE {削除したいレコードのid}={id};
DELETE文は基本的にWHERE文と一緒に使います。
WHERE文によって、削除したいレコードを指定することが可能です。
DELETE文はレコードをまるごと削除します。
レコードの中で一部のカラムのみ削除したい場合は、UPDATE文でNULL値に変更しましょう。
これがDELETE文の基本的な使い方になります。
DELETEで複数行同時に削除する
つづいて、DELETE文で複数行を同時に削除する方法をみていきましょう。
○コード例
DELETE FROM TEST.Student WHERE id=12 OR id=13;
SELECT id FROM TEST.Student;
○実行結果
複数行を削除する場合は、WHEREで複数のレコードを対象とするように指定します。
上記のコードではWHERE文でORを使って、idが12のレコードと13のレコードを同時削除できるようにしています。
DELETE文もUPDATE文同様、WHERE文で削除したいレコードを自由に指定することが可能です。
DELETEとORDER BYを使って削除する
最後に、DELETE文とORDER BYの組み合わせ方をご紹介しましょう。
○コード例
DELETE FROM TEST.Student ORDER BY id DESC LIMIT 1;
SELECT id FROM TEST.Student;
○実行結果
上記のコードでは、ORDER BYを使ってまず、idが大きい順に並び替えています。
次に、LIMITを使って、並び替えたものの一番上のもののみ取得しています。
そしてDELETE文によって、一番上のものを削除しています。
このようにORDER BYを使って並び替え、並び替えたもの先頭何行かをDELETE文で削除するのは、よく行われます。
DELETEを使う場合の注意点
DELETE文もUPDATE文と同じく、一度実行してしまうと、元に戻すことができません。
また、WHEREで削除するレコードを指定しないと、テーブルの全てのデータが削除されてしまうので注意しましょう。
TRUNCATE文について
TRUNCATE文を使うと、テーブル内のデータを一括で全部削除することが可能です。
○コード例
TRUNCATE TABLE {テーブル名};
データを一括で削除するのはDELETE文でも可能ですが、こちらの方が処理が高速であるメリットがあります。
DROP文について
DROP文もTRUNCATE文と同じく、テーブル内のデータを一括で全部削除します。
ただし、DROP文の方は、テーブル内のオブジェクトを完全に削除する点が異なります。
○コード例
DROP TABLE {テーブル名};
TRUNCATE文と違い、表構造も残らないのが特徴です。
TRUNCATE文とDROP文に関しては使う機会は少ないかもしれませんが、参考書などで出てくることはあるので、念の為解説させて頂きました。
INSERT、UPDATE、DELETEのまとめ
ここまでINSERT、UPDATE、DELETEの使い方を解説してきました。
以下にそれぞれの使い方をまとめましたので、「どうやって使うんだっけ?」と思ったときは参考にしてください。
文 | 意味 | 使い方例 |
INSERT | データを追加 | INSERT INTO TEST.Student (id, name, age, gender, TestScore, birthday)VALUES(11,’石田’,13,’女’,95,’2001/03/15′); |
UPDATE | データを更新 | UPDATE TEST.Student set TestScore=80 WHERE id=11; |
DELETE | データを削除 | DELETE FROM TEST.Student WHERE id=11; |
まとめ
本記事では、DELETEついて解説しました。
DELETEによってレコードを削除できることが、お分かり頂けたかと思います。
これでINSERT、UPDATE、DELETEの3つについて勉強しました。
この3つを覚えておけば、データベースを操作する際は、心配はいらないでしょう。
次回は、CONCATなどの関数について解説していきます。