MySQL UPDATE 语句

MySQL UPDATE 语句

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

UPDATE 语法

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

注意:在表中更新记录时要小心!注意 UPDATE 语句中的 WHERE 子句。WHERE 子句指定应该更新哪些记录。如果省略 WHERE 子句,表中的所有记录都将被更新!

演示数据库

以下是 Northwind 演示数据库中 "Customers" 表的片段:

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

UPDATE Table

以下 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

更新多条记录

WHERE 子句决定了将更新多少记录。

以下 SQL 语句将所有国家为 “Mexico” 的记录的 PostalCode 更新为 00000:

实例

UPDATE Customers
SET PostalCode = 00000
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 Ana Trujillo Avda. de la Constitución 2222 México D.F. 00000 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 00000 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK

更新警告!

更新记录时要小心。如果省略 WHERE 子句,将更新所有记录!

实例

UPDATE Customers
SET PostalCode = 00000;

"Customers" 表的选取现在将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 00000 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 00000 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 00000 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London 00000 UK