Table of Contents
はじめに
今回は初心者向けの記事となります。
業務でSQLを使用してデータを削除できるようになることは必要不可欠です。しっかり削除する対象のデータを指定しないと、大変なことになりますので、この記事を参考にいただければと思います。
データを削除するSQLは大きくわけて3種類あります。DELETE・TRUNCATE・DROPです。それらの違いについて説明します。
ここでは例として、データ削除する対象のテーブルを「test」テーブルとします。
※Oracleで実行する際のSQLとなりますので、他のDBの場合は少し異なるかもしれません。
DELETE文
テーブル内のデータを削除します。構文は以下となります。
DELETE FROM test WHERE ~ ;
WHERE句以降に条件を指定すれば、その条件にマッチしたデータのみを削除することができます。
もし、WHERE句がなくても実行できますが、その場合は指定したテーブル内の全データを削除してしまいますのでお気をつけください。
また、トランザクションを設定していればロールバック(=削除前の状態に戻す)することも可能ですので、誤って削除した場合でも復旧しやすいです。
TRUNCATE文
こちらもテーブル内のデータを削除しますが、テーブルを一旦削除した後、同じテーブルを再作成(データは空)します。
構文は以下です。
TRUNCATE TABLE test;
こちらはテーブル自体を一度削除してしまうので、WHERE句の指定ができません。ただ、DELETE文よりは高速に実行できます。
また、DELETE文と違い、ロールバックすることができないので、十分に注意して実行する必要があります。
DROP文
テーブル自体を完全に削除します。跡形も残りません。構文は以下です。
DROP TABLE test;
こちらもWHEREなど条件指定ができません。また、ロールバックもできませんので、気を付けて実行しましょう。
まとめ
簡単に書けてしまうSQL文でしたが、プロジェクトなどで大事なデータを削除してしまわないように細心の注意が必要です。
重要なテーブルに対して削除を実行する際は、DBやテーブルのバックアップを取ったり、他のメンバとのダブルチェックなどをしてSQLを実行しましょう。
では良いSQLライフを。