【SQL初級編3】DELETEでデータベースのデータを削除しよう

SQL入門

本記事では、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などの関数について解説していきます。

手に職をつけてプログラマー転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてプログラマーやエンジニアに転職したいなぁ。でも、プログラミングスクールってものすごくたくさんあるし、なんか敷居が高いのよね

これからプログラマーやエンジニアへの転身を目指すあなたに、どのスクールがもっとも適しているのかを紹介します。

SQL入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

CANIT
タイトルとURLをコピーしました