SQL基礎知識〜DROP・DELETE・TRUNCATE編〜
DROP・DELETE・TRUNCATEについて
上記に挙げたものは、いずれも"〇〇を削除する"という共通点があります。
しかし、それぞれ使い方や削除したい内容によって区別して使わなければならないため、その詳細について説明してきます。
DROP文について
DROP文は、既存のテーブルやデータベースを完全に削除したいときに使用します。
DROP文を使用すると、オブジェクト単位で削除してしまうためロールバックすることができない上、表構造も残りません。
DELETE文について
DELETE文は、既存のテーブルの条件に合うレコードを削除したいときに使用します。
DELETE文とWHERE句を組み合わせて使用すると、指定したレコードのみ削除され、テーブル自体は残ります。
この際、条件を指定しないとテーブル毎削除されてしまうので、注意が必要です。
しかしながら、DROP文とは異なりロールバックすることができるので、もしテーブルを削除してしまっても復元することができます。
TRUNCATE文について
TRUNCATE文は、テーブル内のデータを全削除した後、テーブルを再作成したいときに使用します。
DROP文と一見同じ役割を果たしているように見えますが、実は違います。
上記でも説明したように、DROP文はテーブルも含めた全データを削除してしまいます。
一方でTRUNCATE文は、テーブルの表構造はそのままの状態で、データのみ削除されます。
何度でも同じテーブルを使用したい場合に最適です。
まとめ
要約すると、
・DROP・・・・・・オブジェクト単位で削除したい場合
・DELETE・・・・・削除条件がある場合
・TRUNCATE・・・ データを全削除したい場合
というように覚えておき、使用用途によって使い分けていくことを心掛けましょう😊