TOP

SQLの更新

SQL UPDATEの説明

UPDATE ステートメントは、テーブル内の既存のレコードを変更するために使用されます。


UPDATE 構文

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition
テーブル内のエントリを更新するときは注意してください。 UPDATE ステートメントの WHERE 式に注意してください。 WHERE 句は、更新するレコードを指定します。 WHERE 式を省略すると、テーブル内のすべてのレコードが更新されます。

デモデータベース

以下は、Northwind データベースの Customers テーブルのサンプルです。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL UPDATE テーブルの例

次の SQL クエリは、最初の顧客 (CustomerID = 1) を新しい連絡先担当者と新しい都市 (City) で更新します。

UPDATE Customers 
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt' 
WHERE CustomerID = 1

「Customers」テーブルからの選択は次のようになります。

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

SQL UPDATE 複数のレコードを取得する例

WHERE 句は、更新されるレコードの数を指定します。

次の SQL クエリは、国が「メキシコ」であるすべてのレコードの ContactName を「Juan」に変更します。

UPDATE Customers 
SET ContactName = 'Juan' 
WHERE Country = 'Mexico'

「Customers」テーブルからの選択は次のようになります。

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Juan Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Juan Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

SQL Update を使用する場合は注意してください。

記録を更新するときは注意してください。 WHERE 式を省略すると、すべてのレコードが更新されます。
UPDATE Customers 
SET ContactName = 'Juan'

「Customers」テーブルからの選択は次のようになります。

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Juan Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Juan Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Juan Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Juan 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Juan Berguvsvagen 8 Lulea S-958 22 Sweden