はじめに
DELETE文は、SQLのなかでもデータ操作言語と呼ばれ、 データベース内のデータを削除する命令です。
DELETE文を使用することによって、 テーブル内の不要になったデータを削除することができます。
一方でDELETE文を使わない削除命令もあります。
Step1: 概念を知る
削除は2種類あります。
物理削除
データベース上からデータを削除します。
特別な手続きをすれば削除したデータを復元することができますが、
基本的にはデータを完全に削除することを前提に行います。
論理削除
データベース上からデータを見かけ上削除します。
データに削除されたという目印 (削除フラグ) を設定し、
見かけ上削除されているようにするだけで、 実際には削除されていません。
削除フラグを立てたデータを扱うこともできますし、復元も容易に行うことができます。
もしくは、 0 (生存) 、1 (削除) を設定したり、削除フラグではなくデータステータス(DATA_STS ) などとして、以下のようにアルファベットを付与したりして管理します。
Step2: 使い方を知る
では、さっそくテーブル内のデータを削除してみましょう。
サンプル
1. DELETE FROM を宣言し、テーブル名 person をつけます。
2. 削除したい値、 行が決まっている場合は WHERE句で指定します。
実行して構文にエラーがなければテーブル内のデータが変更されます。
これで、不要になったデータを削除してテーブルを新しくすることができます。
DELETE文もUPDATE文同様、WHERE句で条件を指定しなければテーブルすべてに対して削除命令を実行します。
全てのデータを削除する分には問題ありませんが、こちらも WHERE句 を指定するクセをつけましょう。
ちなみに、テーブル内のデータを全て削除しても、テーブル自体は残ります。
使い分け
物理削除
メリット
1: delete文の宣言で簡単にできる。
2: データが減るため、 データベースのパフォーマンスが上がる。
デメリット
1: データの復元が難しい。
2: 削除したら参照不可能になる。
論理削除
メリット
1: データの削除、 復元が容易。
2: 削除済みデータの参照が可能。
デメリット
1: テーブルに削除フラグ用の列追加が必要。
2: データを参照する際、 削除フラグを立てたデータを表示しないようにクエリを作成する必要がある。
3: データが増えるため、 データベースのパフォーマンスが下がる。
データがもう必要ないとわかっている際には物理削除を行い削除したデータを見ながら、
データベースを管理したい際には論理削除を行う
といった使い分けが出来るようになるといいでしょう。
