INSERTコマンドで登録したデータを変更(更新)するにはUPDATEコマンドを使用します。
UPDATEコマンド
UPDATEコマンドにより、テーブルのデータを変更することができます。基本的な構文は以下になります。
- UPDATEコマンドの基本構文
- UPDATE テーブル名 SET 列名 = 式 WHERE 条件式;
更新対象の列と、更新後の値は、SET句で指定します。また、更新対象の行はWHERE句で指定します。
例えば、渡辺さんが結婚して苗字が「桜井」に変わったとします。その場合は、以下のようなUPDATEコマンドを発行して、渡辺さんの名前を変更します。
testdb=# UPDATE Staff SET name = '桜井さつき' WHERE id='0004';
次に、name列が正しく変更されたかどうかSELECTコマンドで確認してみます。
testdb=# SELECT * FROM Staff;
id | name | age
------+------------+-----
0001 | 山田太郎 | 26
0002 | 佐藤隆 | 34
0003 | 斉藤達弘 | 45
0004 | 桜井さつき | 28
(4 行)
正しく変更されているのが確認できます。
全行を更新する
更新対象の行を指定するのはWHERE句ですが、WHERE句を記述しないことで、全行を更新対象とすることになります。
例えば、以下のUPDATEコマンドを発行してみましょう。
testdb=# UPDATE Staff SET age = 46;
変更後、全行をSELECTコマンドで確認すると以下のような結果になります。
testdb=# SELECT * FROM Staff; id | name | age ------+------------+----- 0001 | 山田太郎 | 46 0002 | 佐藤隆 | 46 0003 | 斉藤達弘 | 46 0004 | 桜井さつき | 46 (4 行)
すべての行のage列が更新されています。基本的に、全行に対して同じ値で更新するようなケースはめずらしく、大抵がWHERE句の記述を忘れたなどの操作ミスにより、誤って更新してしまったというパターンとなるでしょう。
WHERE句を指定しないとテーブル内のすべての行のデータが更新されてしまうという点に十分注意しておきましょう。