您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

对表行的更改

要更新一行或多行,请使用 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 子句

SET 子句指定要更新的列和它们的新值。WHERE 子句确定要更新的行。如果不使用 WHERE 子句,则将用 SET 子句中的值更新所有行中指定的列。

您可以在 SET 子句中提供数据类型正确的任何表达式。

WHERE 子句

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 子句从一个或多个表中取出数据并将它们放入正在更新的表中。您还可以通过 FROM 子句针对其它表使用选择条件,以便控制更新的行。