目录

SQL Update 语句


SQL UPDATE 语句

这个UPDATE语句用于修改表中现有的记录。

更新语法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

笔记:更新表中的记录时要小心!注意 WHERE中的条款UPDATE陈述。这WHERE子句指定应更新哪些记录。如果您省略WHERE子句中,表中的所有记录都会被更新!


演示数据库

以下是选自顾客示例中使用的表:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

更新表

以下 SQL 语句使用新联系人更新第一个客户 (CustomerID = 1)一个新的城市。

示例

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 Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


更新多条记录

它是WHERE确定将更新多少记录的子句。

以下 SQL 语句会将国家/地区为 "Mexico" 的所有记录的 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 Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Juan Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

更新警告!

更新记录时要小心。如果您省略 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 Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Juan Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Juan 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Juan Berguvsvägen 8 Luleå S-958 22 Sweden

通过练习测试一下

练习:

更新City中所有记录的列Customers表格。

 Customers
 City = 'Oslo';

开始练习