データベース千夜一夜第8回

データの加工命令(2)~レコードの削除と削除処理の注意点 長谷川裕行
有限会社 手國堂

レコードの削除~DELETE命令

テーブルからレコードを削除するにはDELETE命令を使います。使い方は至ってシンプルですが、テーブルの内容が書き換えられるので、ここではテスト用のテーブルを用意してから試すことにしましょう。


- 基本書式はシンプル -

レコードを追加するINSERT命令では、フィールド名やその値などのパラメータを設定しなければなりませんでした。しかし、既存のレコードを削除するだけのDELETE命令では特別なパラメータは不要で、非常にシンプルな書式となります。

  DELETE [FROM] <テーブル名> [WHERE <条件式>]

FROM句は省略できます。従って、最もシンプルなDELETE文は

  DELETE <テーブル名>

という形です。

テーブル「商品_mr」内のレコードをすべて削除するなら、以下のようなSQLを記述します。

  DELETE 商品_mr

《注意》
このSQLを実行すると、テーブル「商品_mr」内のレコードがすべて削除されてしまいます。これはあくまで「例」なので、実行しないようにしてください。あとで、別のテーブルを使って実際に試す方法を紹介します。


- テスト用テーブルの作成 -

今回はテーブル内のレコードを削除することになるため、テスト実行用のダミーのテーブルを作っておきましょう。前回紹介したSELECT INTO文を使います。

クエリアナライザで以下のSQLを実行してください。

  SELECT * INTO 商品_dmy FROM 商品_mr

メッセージウィンドウに「36件処理されました」のように表示されれば完了です※1。これで、「商品_mr」の同じフィールド構成で同じレコードを保存する「商品_dmy」テーブルが作成されます。

これ以降、「商品_mr」の代わりに「商品_dmy」を使ってレコードの削除を試すことにします。SQL文の入力を間違えないようにしましょう。先の全行削除も

  DELETE 商品_dmy

とすれば確認できますが、全レコードが削除されるとそれ以降の処理を試せないので、ここではまだ行いません。最後に試すことにします※2



※1 「36件」という件数は、テーブル「商品_mr」が初期状態の場合の値です。これまでの操作によってレコード件数が増減している場合は、値が異なることもあります

※2 もし間違って「商品_dmy」のレコードを削除した場合は、EnterpriseManagerでテーブル「商品_dmy」を削除してから、クエリアナライザで再度“SELECT * INTO 商品_dmy FROM 商品_mr”というSQLを実行してください



トップページ
レコードの削除~DELETE命令
基本書式はシンプル
テスト用テーブルの作成
特定のレコードを削除する
DELETEとTRUNCATE TABLEの違いを試す
トランザクションの制御について
あとがき
Copyright © MESCIUS inc. All rights reserved.