DELETE ステートメント

FROM 句で指定したテーブルから WHERE 句の条件を満たすレコードを削除する削除クエリを作成します。

構文

DELETE [table.*]
    FROM table
    WHERE criteria

DELETE ステートメントには、次の指定項目があります。

指定項目 内容
table 削除するレコードのあるテーブルの名前。この項目は省略可能です。
table 削除するレコードのあるテーブルの名前。
criteria 削除するレコードを決める

解説

DELETE ステートメントは、多数のレコードを削除する場合に特に便利です。

データベースからあるテーブル全体を削除するには、DROP ステートメントで Execute メソッドを使用します。ただし、テーブルを削除するとテーブルの構造も失われます。これに対して、DELETE ステートメントを使用した場合はデータのみが削除され、テーブルの構造やフィールド属性、インデックスはそのまま残されます。

DELETE ステートメントを使用すると、あるテーブルとの間に一対多リレーションシップがある複数のテーブルから、レコードを削除できます。連鎖削除を行うと、"一" 側のテーブルに含まれるレコードがクエリで削除された場合に、"多" 側にある対応するレコードも削除されます。たとえば、[得意先] テーブルと [注文] テーブルとの間にリレーションシップが設定されていて、[得意先] テーブルが "一" 側、[注文] テーブルが "多" 側であるとします。この場合、連鎖削除オプションが指定されていれば、[得意先] テーブルからレコードを削除すると、それに対応する [注文] テーブルのレコードも削除されます。

削除クエリでは、レコード全体が削除されます。特定のフィールドのデータのみを削除することはできません。特定のフィールド値を削除する場合は、値を Null 値に変更する更新クエリを作成します。


重要


参照
DROP ステートメント (Microsoft Jet SQL) SELECT ステートメント (Microsoft Jet SQL)
FROM 句 (Microsoft Jet SQL) UPDATE ステートメント (Microsoft Jet SQL)
IN 句 (Microsoft Jet SQL) WHERE ステートメント (Microsoft Jet SQL)
INNER JOIN 操作 (Microsoft Jet SQL)  

使用例

DELETE ステートメントの使用例