【SQL】データを削除するDELETE文の基本的な使い方

【SQL】データを削除するDELETE文の基本的な使い方

山下 雅也

開発エンジニア/エンジニア歴2年7ヶ月

DELETE文は、テーブルからデータを削除するときに使います。本記事では、DELETE文の基本的な使い方と、安全にデータ削除を行うための方法、最後にDELETE文の応用的な使い方について解説します。

tiktokの配信を見る

1.DELETE文の基本的な使い方

まずはDELETE文の基本的な使い方についてです。

1-1.特定の条件を満たすデータを削除する

 特定のデータだけを削除するときは、WHERE句を使って対象のレコードを指定します。

DELETE FROM [テーブル名] WHERE [条件];

DELETE文で使用するWHERE句の考え方は、SELECT文で使用するWHERE句の考え方と同じです。

(例) userテーブルの id 5 のデータを削除する場合

DELETE FROM user WHERE id = 5;

1-2.全データを削除する

テーブルのデータを全て削除するときは、DELETE FROMの後にテーブル名を書くだけです。

DELETE FROM [テーブル名];

このコマンドを投げると、指定したテーブルの全てのデータを削除します。

(例) userテーブル内の全データを削除する場合

DELETE FROM user;

2.安全にデータ削除を行うために

ここまで見てきたようにDELETEはデータを削除するコマンドです。そのため、使用には細心の注意を払いましょう。ここでは、より安全にデータ削除を行うための方法について解説します。

・SELECTと組み合わせて使う

DELETEをかける前に、まずSELECTで取得した結果を確認しましょう。取得結果を確認後、問題がなければDELETEをかけるようにしましょう。

・確実性の高い条件をつける

削除対象のデータのみを削除するために、DELETEをかける際は極力条件を絞り込むとより安全にデータ削除が行えます。例えば、userテーブルのid3userName‘user03’のデータを削除したい場合、iduserNameのどちらか一方のみでデータを絞り込むのではなく、iduserNameどちらも使って条件を絞り込みましょう。

(例) userテーブルの idが3userName‘user03’のデータを削除する場合

DELETE FROM user WHERE id = 3 AND username = ‘user03’;

また、例えばデータが1件しか削除されないことが確定している場合は、以下のようにLIMITを用いると、仮に条件ミスで全削除となってしまった場合でも、削除データ件数を1件に抑えることが出来ます。

(例) 削除対象データ(userテーブルの idが3userName‘user03’のデータ)の件数が1件の場合

DELETE FROM user WHERE id = 3 AND username = ‘user03’ LIMIT 1;

3.DELETE文の応用的な使い方

これまではDELETE文の基本的な使い方、安全にデータ削除を行う方法について解説してきました。ここではDELETE文の応用的な使い方について見ていきましょう。

・where句にLIKE句を使う

SELECT文と同じようにDELETE文でもLIKE句を使用することができます。
(例) userテーブルの userName が 「user01」で始まるレコードのみを削除する場合

DELETE FROM user WHERE userName LIKE ‘user01%’;

・[補足] 全件削除する場合は TRUNCATE文 を使うことも検討する

データを全件削除する場合は、DELETE文ではなくTRUNCATE文を使うことも検討しましょう。DELETE文でデータを全削除するよりTRUNCATE文でデータを全削除する方がより速く削除処理が実行できます。削除対象のデータ件数が多くなってくると、処理速度の差も大きくなってきますので、件数が多いデータを全削除する場合はTRUNCATE文を使うことを検討してみてください。

ただし、本記事では細かい説明は省きますが、「DELETE文ではロールバックが出来るがTRUNCATE文 ではロールバックが出来ない」等といった違いもあるので、用途に応じて使い分ける必要があります。


4.まとめ

以上、DELETE文の使い方について解説しました。誤って大切なデータを削除してしまった。。。などとならないように注意して扱いましょう。安全にデータ削除を行うためにもまずは基本を押さえてから応用的な使い方もマスターしていきましょう。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!株式会社ボールドの 採用エントリー を受付中!
文系IT未経験歓迎!
株式会社ボールドの 採用エントリー を受付中!