DELETE

DELETEクエリについての詳細な解説と使用例。安全にデータを削除する方法を学べます。

説明

DELETE はテーブルからレコード(行)を削除するためのクエリです。
WHERE句で削除対象を指定します。WHERE句がないと全レコードが削除されてしまうため、非常に危険です。

基本構文
quest.sql
Loading...
例文

特定のユーザー(ID=1)を削除

quest.sql
Loading...
— RESULT

クエリを実行してください

価格が10未満の商品をすべて削除

quest.sql
Loading...
— RESULT

クエリを実行してください

30日以上前にキャンセルされた注文をすべて削除

quest.sql
Loading...
— RESULT

クエリを実行してください

90日より古いログレコードを削除(ログの世代管理)

quest.sql
Loading...
— RESULT

クエリを実行してください

注意点
  • WHERE句を忘れると全データが削除される

    非常に危険。本番環境では必ず慎重に。一度削除すると復旧が困難な場合が多い。

  • DELETE前にSELECTで確認必須

    同じWHERE条件でSELECTを実行し、削除対象が正しいか確認してから DELETE を実行すること。

  • 外部キー制約に注意

    他のテーブルから参照されているレコードは、参照制約によっては削除できない場合がある。

  • 大量削除の場合はトランザクション管理

    大量のレコードを一度に削除すると、ロックが長時間保持されるため、分割削除を検討。

  • 完全削除と論理削除の使い分け

    重要なデータは論理削除(削除フラグの立設)の方が、監査証跡の観点からも安全。

使用シーン
  • ユーザーの退会処理
  • 不要な商品情報の削除
  • 期限切れ・キャンセル注文の削除
  • ログデータの世代管理・古いレコードの削除
  • 重複データのクリーニング
このクエリを実践するには?

#93 通知のクリーンアップ

初級DELETE基本ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

#94 古いアクセスログの削除

初級DELETE基本ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

#95 使われていないタグの削除

初級DELETE基本ログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

#96 退会処理済みユーザーの通知削除

中級DELETE条件付きログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

#97 完了済みタスクリレーションの削除

中級DELETE条件付きログインして解除

この問題にチャレンジするにはログインが必要です。ログインして全ての練習問題にアクセスしましょう。

関連クエリ
QSQL Quest