読み方 : デリートぶん

DELETE文【DELETE statement】

概要

DELETE文とはリレーショナルデータベース(RDB)を操作するSQLの構文の一つで、テーブルに保存された特定の行(レコード)を削除するもの。データ操作で頻繁に使われる基本的な構文である。
DELETE文のイメージ画像

基本的な構文は「DELETE FROM テーブル名 WHERE 条件」で、WHERE句の条件に合致する行だけを削除する。DBMSによっては、WHERE句に「CURRENT OF カーソル名」と指定することで、カーソルが現在指し示している行を削除することもできる。

WHERE句を省略した場合は、テーブル内のすべての行が削除される。テーブルの構造やインデックスは残り、データのみが消去される点でDROP文とは異なる。MySQLなど一部のDBMSでは、ORDER BY句とLIMIT句を組み合わせた拡張構文を利用できる。指定した列の順に並べ替えたうえで上限件数だけ削除でき、「日時の古い順に10件削除する」といった処理をSQL単体で記述できる。

全件削除の手段としてはTRUNCATE文もある。DELETE文が行を1件ずつ処理してトランザクションログに記録するのに対し、TRUNCATE文はテーブルを一括で初期化するため高速である。一方、TRUNCATE文WHERE句による条件指定ができず、DBMSによってはロールバックも利かないため、条件付きの削除やトランザクション管理が必要な場面ではDELETE文を使う。

DELETE文はDMLData Manipulation Languageデータ操作言語)に分類され、トランザクション制御の対象となる。ただし、条件の指定を誤ると意図しない大量削除につながるため、実運用では事前に同じ条件でSELECT文を実行して削除対象を確認する手順が用いられることもある。削除対象の行が他のテーブルから参照されている場合は、外部キー制約の設定に応じて削除が拒否されたり、関連する行が自動的に削除されたりする。

(2026.7.8更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。