テーブル上のレコードを削除するには、DELETE文を用います。
DELETE文の構文
DELETE FROM テーブル名;
この基本構文では、指定したテーブルからレコードをすべて削除します。
多くの場合、WHERE句によって削除するレコードを絞り込みます。
DELETE FROM テーブル名 WHERE 条件式;
条件式に合致する、つまり削除対象となるレコードが存在しなかった場合もエラーにはなりません。単にレコードが1件も削除されないだけです。
DELETE文の例
SQL
DELETE FROM meibo
WHERE id=1;meiboテーブルからid=1のレコードを削除します。
DELETE文によってレコードを削除すると、その内容はテーブル上から完全に消えてしまいます。一般的なアプリケーションのような『UNDO』機能は無く、バックアップを取っていない限り復元はできません。よって、削除条件を間違えて削除すべきではないレコードを削除してしまわないように十分に注意する必要があります。
練習14
(1) ex_shohinテーブルから、priceが5000以上のレコードをすべて削除するSQLを記述しなさい。
※実際には条件に当てはまるレコードがないため何も削除されません。
※そのような場合でもエラーが出ないことを確認しましょう。
(2) ex_shohinテーブルから、id=1のレコードを削除するSQLを記述しなさい。
SELECT文と同じく、WHERE句にもっと複雑な条件を記述したり、BETWEENやINなどの演算子を使うこともできます。
INを使った例
SQL
DELETE FROM meibo WHERE id IN (1,3);idが1または3であるレコードを削除します。
前の例と同様、条件に合致するレコードが存在しなくてもエラーにはなりません。

コメント