レコードを更新する UPDATE文によるレコード更新 - SQL

SQLを利用してレコードを更新するコードを紹介します。

概要

SQLでレコードを更新するにはUPDATE文を利用します。

書式

UPDATE文の書式は次の通りです。

指定したレコードのフィールドを更新する場合

一般的には、WHERE句を利用して更新するレコードを絞り込みレコードの値を更新します。WHERE句を利用したUPDATE文は下記の書式になります。
UPDATE テーブル名 SET 列名1=値1, 列名2=値2, .... 列名n=値n WHERE (条件式)

大抵の場合、WHEREの条件式はプライマリーキーの値で判定するため、一般的には以下の書式になります。
UPDATE テーブル名 SET 列名1=値1, 列名2=値2, ... 列名n=値n WHERE プライマリキー列名 = 更新するレコードのキー値

一つのフィールド要素のみの更新の場合は下記となります。
UPDATE テーブル名 SET 列名=値 WHERE (条件式)

すべてのレコードのフィールドを更新する場合

すべてのレコードのフィールドを更新する場合は WHERE句を含めないで記述できます。 下記のコードをそのまま実行するとすべてのレコードの値が、SQLに記述した値で更新されてしまいますので、十分な注意が必要です。
UPDATE テーブル名 SET 列名=値
UPDATE テーブル名 SET 列名1=値1, 列名2=値2, ... 列名n=値n 

例1

テーブル

以下のテーブルを用意します。
products テーブル
idnameprice
1Penguin400
2Duck300
3Whale1000
4Bear650

SQL

ID=2のレコードのnameをDuckからHawkに変更し、priceを500にする場合のSQLは下記になります。
UPDATE products SET name='Hawk', price=500 where id=2

実行後のテーブル

products テーブル
idnameprice
1Penguin400
2Hawk500
3Whale1000
4Bear650

例2

テーブル

以下のテーブルを用意します。
products テーブル
idnameprice
1Penguin400
2Duck300
3Whale1000
4Bear650

SQL

ID=4のレコードのnameをBearからTigerに変更する「Hawkに変更し、priceを500にする場合のSQLは下記になります。
UPDATE products SET name='Tiger' where id=4

実行後

products テーブル
idnameprice
1Penguin400
2Duck300
3Whale1000
4Tiger650

補足
他のテーブルのレコードの値でレコードを更新する場合や、特定の条件を満たす他のテーブルのレコードでレコードを更新する場合は「他のテーブルのレコードの値でレコードを更新する (SQLの構文)」の記事を参照してください。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-12-11
作成日: 2014-07-21
iPentec all rights reserverd.