FROM 句で指定したテーブルから WHERE 句の条件を満たすレコードを削除する削除クエリを作成します。
DELETE [table.*]
FROM table
WHERE criteria
DELETE ステートメントには、次の指定項目があります。
指定項目 | 内容 |
---|---|
table | 削除するレコードのあるテーブルの名前。この項目は省略可能です。 |
table | 削除するレコードのあるテーブルの名前。 |
criteria | 削除するレコードを決める式。 |
DELETE ステートメントは、多数のレコードを削除する場合に特に便利です。
データベースからあるテーブル全体を削除するには、DROP ステートメントで Execute メソッドを使用します。ただし、テーブルを削除するとテーブルの構造も失われます。これに対して、DELETE ステートメントを使用した場合はデータのみが削除され、テーブルの構造やフィールド属性、インデックスはそのまま残されます。
DELETE ステートメントを使用すると、あるテーブルとの間に一対多リレーションシップがある複数のテーブルから、レコードを削除できます。連鎖削除を行うと、"一" 側のテーブルに含まれるレコードがクエリで削除された場合に、"多" 側にある対応するレコードも削除されます。たとえば、[得意先] テーブルと [注文] テーブルとの間にリレーションシップが設定されていて、[得意先] テーブルが "一" 側、[注文] テーブルが "多" 側であるとします。この場合、連鎖削除オプションが指定されていれば、[得意先] テーブルからレコードを削除すると、それに対応する [注文] テーブルのレコードも削除されます。
削除クエリでは、レコード全体が削除されます。特定のフィールドのデータのみを削除することはできません。特定のフィールド値を削除する場合は、値を Null 値に変更する更新クエリを作成します。
重要
削除クエリでいったん削除したレコードは、元に戻せません。どのレコードが削除されるかをあらかじめ確認する場合は、削除クエリを実行する前に、同じ抽出条件を使用する選択クエリを実行してその結果を調べてください。
誤ってレコードを削除した場合にも復旧できるように、常にデータのバックアップ コピーを作成しておくことをお勧めします