SQL入門:DELETE文でデータを削除しよう!

この記事は約3分で読めます。
記事内に広告が含まれています。

DELETE文とは?

SQLのDELETE文は、データベースから不要になったデータを削除するための文です。一度登録したデータを完全に削除したい場合に利用します。

DELETE文の基本的な書き方

DELETE FROM テーブル名
WHERE 条件;
  • DELETE FROM: 削除することを示すキーワードです。
  • テーブル名: 削除対象のテーブル名を指定します。
  • WHERE: 削除するレコードを絞り込む条件を指定します。(省略可能)

DELETE文の使用例

  • 特定の顧客を削除
DELETE FROM customers
  WHERE customer_id = 1;

顧客IDが1の顧客を削除します。

  • 注文履歴を削除
DELETE FROM orders
  WHERE order_date < '2023-01-01';

2023年1月1日より前の注文履歴を全て削除します。

WHERE句の重要性

WHERE句は、どのレコードを削除するかを指定する上で非常に重要です。WHERE句を省略すると、テーブル内の全てのレコードが削除されてしまうため、意図しない結果になる可能性があります。

削除の注意点

  • 慎重に: DELETE文を実行すると、データが完全に削除されてしまいます。
    一度削除されたデータは、通常復元できません。誤って実行すると、データが失われる可能性があるため、事前にバックアップを取ったり、テスト環境で試したりすることをおすすめします。
  • COMMIT
    削除内容をデータベースに反映させるためには、通常、COMMIT文を実行する必要があります。
  • ROLLBACK
    万が一、誤った削除を行ってしまった場合は、ROLLBACK文で変更を元に戻せる場合があります。ただし、トランザクションが有効になっている場合に限られます。

削除の実用例

  • 不要な顧客情報の削除: 退会した顧客情報など
  • 古い注文履歴の削除: 一定期間経過した注文履歴など
  • 重複データの削除: 同一データを誤って複数登録してしまった場合

まとめ

DELETE文は、データベースのデータを整理する上で欠かせない文です。WHERE句を適切に利用することで、意図したレコードのみを削除することができます。しかし、誤った使用はデータの消失につながる可能性があるため、慎重に扱うことが重要です。

さらに詳しく学びたい方へ

  • TRUNCATE: テーブル内の全てのデータを一気に削除するTRUNCATE文
  • CASCADE DELETE: 外部キー制約を利用して、関連するデータを連鎖的に削除する

練習問題

  1. 「products」という商品テーブルがあり、”product_name”(商品名)、”category”(カテゴリー)、”is_deleted”(削除済みフラグ)というカラムがあるとします。
    • is_deletedが1のレコード(削除済みの商品)を全て削除してください。
    • カテゴリーが”廃盤”の商品を全て削除してください。

コメント

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