要更新一行或多行,请使用 UPDATE 语句。新数据可以是指定的常量或表达式,或者是从其它表中提取的数据。
像在所有数据修改语句中一样,您一次只能更改一个表或视图中的数据。
如果 UPDATE 语句违反了完整性约束,则不会进行更新并将显示一条错误消息。例如,如果正被添加的一个值是错误的数据类型,或者如果它违反为所涉及的某个列或数据类型定义的约束,则将不会进行更新。
此语法的简化版本如下:
UPDATE
SET
WHERE
如果 Newton Ent. 公司(在演示数据库的 Customers 表中)被 Einstein, Inc. 接管,则您可以使用如下语句更新该公司的名称:
UPDATE Customers
SET company_name = 'Einstein, Inc.'
WHERE company_name = 'Newton Ent.'
可以在 WHERE 子句中使用任何条件。如果不确定公司名称的输入形式,则使用如下所示的语句尝试更新名为 Newton 的任何公司:
UPDATE Customers
SET company_name = 'Einstein, Inc.'
WHERE company_name LIKE 'Newton%'
搜索条件不需要引用要更新的列。Newton Ent. 的公司 ID 为 109。由于 ID 值是表的主键,所以可以确定使用以下语句更新正确的行:
UPDATE Customers
SET company_name = 'Einstein, Inc.'
WHERE id = 109
SET 子句指定要更新的列和它们的新值。WHERE 子句确定要更新的行。如果不使用 WHERE 子句,则将用 SET 子句中的值更新所有行中指定的列。
您可以在 SET 子句中提供数据类型正确的任何表达式。
WHERE 子句指定要更新的行。例如,以下语句用 "Extra Large T-Shirt" 替换 "One Size Fits All T-Shirt"。
UPDATE Products
SET size = 'Extra Large'
WHERE name = 'T-Shirt'
AND size = 'One Size Fits All'
您可以使用 FROM 子句从一个或多个表中取出数据并将它们放入正在更新的表中。您还可以通过 FROM 子句针对其它表使用选择条件,以便控制更新的行。