Oracle Databaseのテーブルの削除**SQL**のポイントを紹介します。
Oracle Databaseのテーブル削除は「定義上は削除するがデータを残すか?」、 「データと定義をすべて削除するか?」と削除のパターンがいくつかあります。
この記事では初心者向けにテーブルを削除時の重要なポイントも合わせて紹介します。
この記事の内容
- テーブルの削除SQLの基本構文を紹介
- テーブルのデータと定義を完全に削除
- テーブルの制約も含めて削除
目次
テーブルの削除SQL:drop table
まずはテーブル削除のSQL「drop table」を紹介したいと思います。
alter table文は、テーブル定義変更するコマンドになります。
テーブル後に変更ができないパラメータが多く存在するため作成SQLを間違えないようにしましょう
drop table <スキーマ名>.<テーブル名>;
下がサンプルSQLになります。
drop table TEST001.TAB001;
テーブルのデータと定義を削除SQL:drop table ~ purge
テーブルのデータを完全に削除する際には「purge」句を使用します。
「purge」句を使用しないとデータは「RECYCLEBIN」(Windowsのゴミ箱)に格納されます。
※ただしRECYCLEBIN がOFFの場合は、purge句を付けなくてデータは完全に削除されます。
drop table <スキーマ名>.<テーブル名> purge;
下がサンプルSQLになります。
drop table TEST001.TAB001 purge;
テーブルの制約も合わせて削除SQL:drop table ~ cascade constraint
制約も合わせて削除する場合は、「cascade constraint」句を使用します。
特に外部キーが付与されているテーブルを削除する時には、「cascade constraint」句がないと削除できません。
drop table <スキーマ名>.<テーブル名> cascade constraint;
下がサンプルSQLになります。
drop table TEST001.TAB001 cascade constraint;
テーブルの”データ”も”定義”も”制約”も削除SQL:drop table ~ cascade constraint purge
テーブルの「データ」も「定義」も「制約」も削除すべて削除する場合には、「cascade constraint」句と「purge」句を合わせて使用します。
drop table <スキーマ名>.<テーブル名> cascade constraint purge;
下がサンプルSQLになります。
drop table TEST001.TAB001 cascade constraint purge;
参考:しばちょう先生の試して納得!DBAへの道 第2回 表と表領域の関係