【SQL】DELETE文で表のレコードを全件削除する方法

ここではORACLEデータベースのSQLで、DELETE文を使ってテーブルのレコードを全て削除する方法を紹介しています。

DELETE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】DELETE文の書き方:サンプル多数あり

DELETE文の基本構文

DELETE文の基本構文は次の通りです。

任意でWHERE句の条件をつけることで、削除対象のレコードを選択します。

表のデータを一括で全件削除するときには、このWHERE句の条件をつけずにDELETE文を実行します。

DELETE FROM テーブル名 [WHERE 条件];

WHERE句を付けないDELETE文は次の通りです。

DELETE FROM テーブル名;

全件削除するDELETE文のSQLサンプル

テーブルのレコードを全て削除するDELETE文のサンプルを紹介します。

次のSQLでは、TAB1テーブルのレコードを全て一括で削除します。

DELETE FROM tab1;

ORALCEデータベースでは、FROMを省略することができるので、次のように記述することもできます。

DELETE tab1;

全件削除するときはTRUNCATEも使えます

DELETE文と同じく、表のレコードを削除するSQLとして、TRUNCATE文も存在します。

TRUNCATE文の方が制約がありますが、表のレコードを全て削除するときには高速です。
詳しくは「【SQL】DELETE文とTRUNCATE文の違い」で解説していますのでぜひ参考にしてください。

まとめ

DELETE文でテーブルのレコードを全て削除するときは、WHERE句の条件を指定せずに実行すると、全てのレコードを削除します。

レコードを全件削除するときは、TRUNCATE文の方が高速です。ただし、制約がいくつかあるので、事前に確認が必要です。

他にも当サイトでは、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】DELETE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。