データベース千夜一夜第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 © MESCIUS inc. All rights reserved.