読み方 : デリートぶん
DELETE文【DELETE statement】
概要
DELETE文とは、リレーショナルデータベース(RDB)を操作するSQLの構文の一つで、テーブルに保存された特定の行(レコード)を削除するもの。データ操作で頻繁に使われる基本的な構文である。

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