【SQL】テーブル(TABLE)を削除(DELETE)する方法

ここではORACLEデータベースのSQLで、表・テーブルを削除する方法を紹介しています。

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

DELETE文:表のレコードを削除する

表・テーブルのレコードを削除するには、DELETE文を使います。

DELETE文の基本構文は次の通りです。WHERE句の条件は任意でつけることが可能です。

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

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

DELETE FROM tab1;

削除する対象のレコードを絞りたい場合はWHERE句に条件を指定します。次のSQLでは、COL1列の値が’00001’のレコードだけを削除しています。

DELETE FROM tab1 WHERE col1 = '00001';

TRUNCATE文:表のレコードを全件削除する

表・テーブルのレコードを全件削除するときは、DELETE文のほかに、TRUNCATE文が使えます。

TRUNCATE文は、DELETE文と違い、「1.一括削除しかできない」「2.ロールバックできない」「3.DELETE文よりも処理時間が速い」という特長があります。

特にロールバック出来ないので、実行する際は注意してください。

TRUNCATE文は次のような

TRUNCATE TABLE テーブル名;

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

TRUNCATE TABLE tab1;

DELETE文とTRUNCATE文の違いについては「【SQL】DELETE文とTRUNCATE文の違い」で紹介していますのでぜひ参考にしてください。

DROP文:表を削除する

表・テーブルの定義と全てのレコードを削除するときは、DROP文を使います。

DELETEやTRUNCATEと違い、テーブルそのものを定義ごと削除します。十分に注意して使ってください。

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

DROP TABLE テーブル名;

次のSQLでは、TAB1テーブルを表の定義と全レコードを削除しています。

DROP TABLE TAB1;

DELETE文とDROP TABLE文の違いについては「【SQL】DELETE文とDROPテーブルの違い」で紹介していますのでぜひ参考にしてください。

まとめ

表・テーブルを削除する方法は3つあります。
 ・DELETE文:表のレコードを削除する
 ・TRUNCATE文:表のレコードを全件削除する(※ロールバックできない)
 ・DROP文:表を削除する
それぞれの特徴があるので、上手く使い分けが必要です。

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