5.1 データの更新

 本節では登録されたデータの更新(変更)方法について、「bookinfo」テーブルを利用して学習していきます。

5.1.1 データ更新の基本

 登録したデータは、後から変更を行うことは多々あります。今まで学習した凡例の中で例えれば、本の情報で価格やタイトルが変更された場合や、社員の氏名や部署が変わった場合など登録されたデータを変更する必要があります。
 ここでは、テーブルに登録されたデータの基本的な更新方法について学習します。

 登録されたデータの更新は「UPDATE」キーワードを使用します。基本的な構文は下記の通りです。

書式:UPDATE文

 複数の列を更新したい場合には、1番目の更新情報の指定の後に、「,」(カンマ)で区切って2番目の更新情報を指定します。
 例えば、isbnが「00003」のデータのタイトルを「サーバーサイドJava基礎テキスト」価格を「2500」に変更する場合、以下のコマンドを実行します。

図 5.1.1データの更新

 UPDATEコマンドを実行するとコマンドが成功したかどうかのみが表示されます。

図 5.1.2 : UPDATEコマンドの実行結果

 表示された情報で「Query OK」の後ろに表示された数字が更新件数です。また、「Rows matched」は該当する行が何件あったか、「Changed」が何件更新できたかを示します。また「Warnings」は警告が出た場合にその件数を表示します。
 今回の実行では「Row matched:1 Changed:1 Warnings:0」となっているため、条件に該当する行が1件あり、更新が1件できたという意味になります。

 実際に更新されているかどうかについては、SELECTコマンドを利用して確認しましょう。

図 5.1.3 : UPDATEコマンド後のデータの確認

 「WHERE」キーワードは検索で利用したものと全く同じです。そのため、演算子には「=」以外の演算子も利用可能です。例えば、「価格が2000以上」のデータに対して、価格を一律「3000」に変更したい場合は、以下のコマンドになります。

図 5.1.4データの更新

 価格が「2000」以上のデータは4行あるため、4行のデータが更新されます。

図 5.1.5 : データの更新結果

 UPDATEコマンドを実行したら、次はSELECTコマンドを利用してデータの確認を行いましょう。

図 5.1.6 : データの更新結果

データ更新時のWHEREキーワード

 SELECTコマンドでWHEREキーワードを指定しない場合、全ての行を検索しました。UPDATEコマンドでも同様で、WHEREキーワードを指定しない場合、全ての行に対して同じデータで更新を行います。
 誤って更新してしまった場合には、データを戻すには大変な労力を費やすことになりますので注意して下さい。このような更新の機会が全くないわけではありませんが、きちんと条件を指定して更新するほうが一般的です。

 本節で学習したデータの更新方法についても、書式さえ理解すればそれほど難しいものではありません。また、更新条件の指定についても、前節で学習した検索の構文と同じように利用することができるため、基本の文法はしっかりと覚えておいて下さい。

 それでは、復習を兼ねて「bookinfo」テーブルのデータを元の状態に戻してみましょう。

表 5.1.1 :「bookinfo」テーブルの元データ

 データを元の状態に変更する場合、次のコマンドを実行します。

図 5.1.7 : 「bookinfo」テーブルの元データ表示結果