データの追加が行えたら、次はデータの更新を行いましょう。UPDATE文はテーブルに登録されているデータを更新するために利用する命令文です。UPDATE文の構文は次のような形です。
UPDATE テーブル名
SET 列名1=値1,列名2=値2,……
WHERE 検索条件
WHERE句の存在が示すとおり、UPDATE文は検索条件を満たす行をすべて更新対象とします。WHERE句を指定しない場合は、対象テーブルのすべての行が該当することになります。INSERT文では指定しなかった列にはデフォルト値、もしくはNULLが登録されますが、UPDATE文では指定した列のみ更新が行われます。
それでは、具体的な例文を見てみましょう。次の例では、ProductIDが1の行について、Priceを12000に変更しています。
UPDATE Product SET Price=12000 WHERE ProductID=1
WHERE句を省くと対象の列について、すべての行の値が更新されます。
UPDATE Product SET Price=12000 結果 --------------- (3 行処理されました)
WHERE句を省いたUPDATE文を発行する場合、主キーなどが設定された列で値が重複しないよう注意する必要があります。
最後にUPDATE文を発行する際に便利な使い方を取り上げます。UPDATE文では、列に値をセットする際、列の元の値を利用した演算を行うことができます。具体的には、次のような例文となります。
UPDATE Product SET Price=Price*1.5 WHERE ProductID=1
こちらの例では、元の値を1.5倍にしています。
追加、更新と取り上げたところで、最後に取り上げるのは行の削除を行うDELETE文です。1行、もしくは複数行にわたるデータの削除を行えます。DELETE文の構文は次のとおりです。
DELETE FROM テーブル名
WHERE 検索条件
構文の形はSELECT文に近い形になっています。削除対象のテーブルを指定したうえで、検索条件を満たす行のデータを削除できます。検索条件を指定しない場合、対象のテーブルからすべての行を削除することになります。また、DELETE文が削除可能なのは行単位での削除のみです。列ごとの値を削除することはできないため、個別の列の値を変更したい場合はUPDATE文を利用します。それでは、具体的な例文を見てみましょう。
DELETE FROM Product WHERE ProductID=2
こちらの例では、ProductIDの値が2の行を削除しています。DELETE文からWHERE句を省略すると、対象のテーブルからすべての行が削除されます。
DELETE FROM Product 結果 ----------------- (3 行処理されました)
すべての行が削除されても、テーブルそのものは削除されることはありません。テーブルの削除を行うためにはDROP TABLE文を利用する必要があります。
今回はデータの操作を行うために必要な3つの構文を取り上げました。追加、更新、削除それぞれに独特な構文を利用する必要があるため、その構文とSQLを発行した結果がどうなるか目で追いながらデータの操作に慣れていきましょう。また、復習の意味も兼ねて、これまでの連載で取り上げたSELECT文も併せて利用すると、より効果的な学習が可能です。
次回はSQLを利用した一連の処理を記述し、プログラムとしてデータベースに格納・利用ができる「ストアドプロシージャ」を取り上げる予定です。お楽しみに!(次回へ続く)
石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005を使いこなそう」「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.