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

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

今回はレコードの削除命令を紹介します。非常に基本的な命令であり、書式もシンプルなのでさほど難しくありません。

しかし、同様の処理を行う命令が2つあり、それぞれ振る舞いが微妙に違っています。違いを理解し、目的によって使い分けることが大切です。また、削除したレコードを元に戻す処理も用意しておく必要があります。


サンプル・データベースについて
この記事では、第3回で紹介したデータベース「db1001ya-1.mdf」内のテーブル「商品_mr」を、サンプルとして使用します。SQLを実際に試したい方で、サンプル・データベースをまだ入手していない方は、第3回の最後のページからダウンロードしてください。データベースの使用方法も同じページに記載してあります。

なお、今回紹介しているSQLを実行するとサンプル・データベースの内容が書き換えられます。その後の使用にはまったく問題ありませんが、気になる方は実行に先立って元のデータベースをバックアップしておいてください。バックアップと復元の手順は、本文の最後に書いてあります。
前回(第7回)の末尾にある『サンプルデータベースの扱いについて』を参照してください
- 目次 -
レコードの削除〜DELETE命令
基本書式はシンプル
テスト用テーブルの作成
特定のレコードを削除する
マスター保守で全件削除はまれ
WHERE句で条件を指定する
複数の行を削除する
確認〜削除の処理に注意
全行削除の2つの命令
DELETE命令
TRUNCATE TABLE命令
両者の違い〜処理速度
両者の違い〜IDカウンタの初期化
DELETEとTRUNCATE TABLEの違いを試す
テーブルにIDフィールドを設ける
実験用テーブルを作って全件削除する
新規レコードを追加する
トランザクションの制御について
トランザクションログ
ロールバック
様々な変更を取り消せる
あとがき
長谷川 裕行 (はせがわ ひろゆき)
有限会社 手國堂 代表取締役   http://www.hirop.com/

大阪芸術大学 写真学科講師。フリーライター。日経ソフトウェアなどに連載。
『ソフトウェアの20世紀』、『独習SQL』など著書多数。

Copyright © 2006 GrapeCity inc. All rights reserved.