Oracle Database(以下Oracle DB)は世界でもトップクラスのシェアを誇るDBです。
今回は、そのOracle DBでのDELETE文についてご紹介します。
SQL文の知識は他のDBでも使えることが多いです。
また、プログラミング言語と比べて変化も速くないので、ここで身に付けたことは今後も活かせるでしょう。

サーバーサイドエンジニアとして働くなら、DB関連の知識も身につけておくといいで!
記事の信頼性:未経験からIT企業の受託企業へ転職に成功。現役プログラマーの「しう」がOracle DBのDELETE文について書いています。
DELETE文【行の削除】


DELETE文を使うと行の削除ができます!
DELETE文はCRUDと呼ばれる処理の一つです。
Oracle DBだけでなく、他のDBでも同じような書き方でかけたりします。
- DELETE文の構文
- DELETE文の注意点
- 副問い合わせを使ったDELETE文
の順にみていきましょう!
DELETE文の構文
DELETE文の構文をご紹介します!
DELETE文の構文は次のようになります。
DELETE (FROM) <表名>
(WHERE 条件式);
FROMの部分は省略することも可能です。
また、WHEREの部分でどの行を削除するか条件をつけることができます。
副問い合わせを使ったDELETE文
DELETE文では、副問い合わせを利用することもできます!
具体例としては、次のようになります。
DELETE student
WHERE student_hight < (SELECT student_hight FROM student where student_id = 3);
SELECT student_hight FROM student where student_id = 3
の部分でstudent_id = 3 の生徒の身長(170)を検索しています。
そして、検索した170より身長が低い生徒のデータを削除しています。
実際に実行した結果を見てみましょう。
最初に削除前のデータを確認します。


student_idが1~4のデータがstudentテーブルに入っています。
この場合、先ほどのDELETE文を実行すると


のようにstudent_id = 3のstudent_hight(=170)より身長が低い生徒が削除されていることを確認できます。



DELETE文以外でもWHERE句で副問い合わせを使うことは多いから、しっかり押さえといてや!
👇ここで出てきたSELECT文については、こちらで紹介しています。


DELETE文の注意点
DELETE文を利用する時はWHEREの条件式を忘れないようにしましょう!
DELETE文でWHEREがない場合は、すべての行のデータを削除します。
Oracle DBであれば、COMMIT前ならROLLBACKすることで取り消すことができます。
しかし、COMMITをしてしまった場合は、INSERT文で再度追加する必要が出てきます。
ちなみに、テーブル作成などのDDL文を実行した場合は自動でCOMMITされるので気をつけましょう。
👇INSERT文についてはこちらのブログで紹介しているので、参考にしてみてください。


まとめ
いかがでしたか?
今回は、Oracle DBのDELETE文について
- DELETE文【行の削除】
- DELETE文の構文
- DELETE注意点
の順番でご紹介しました!
DELETE文はOracle DB以外でも利用します。
ぜひ、身に付けてみてくださいね!
☟あわせて読みたい 「しう」のオススメブログ






コメント