Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 添加、更改和删除数据

 

使用 UPDATE 更改数据

可以使用 UPDATE 语句(后接表或视图的名称)更改表中的单个行、一组行或所有行。像在所有数据修改语句中一样,一次只能更改一个表或视图中的数据。

UPDATE 语句指定您要更改的行和新数据。新数据可以是一个常量、指定的表达式或从其它表取出的数据。

如果 UPDATE 语句违反了完整性约束,则不会进行更新并将显示一条错误消息。例如,如果正被添加的一个值是错误的数据类型,或者如果它违反为所涉及的某个列或数据类型定义的约束,则将不会进行更新。

UPDATE 语法

UPDATE 语法的简化版本如下:

UPDATE table-name 
SET column_name = expression 
WHERE search-condition

如果 Newton Ent. 公司(在 SQL Anywhere 示例数据库的 Customers 表中)被 Einstein, Inc. 接管,则可以使用如下语句更新该公司的名称:

UPDATE Customers
SET CompanyName = 'Einstein, Inc.'
WHERE CompanyName = 'Newton Ent.';

可以在 WHERE 子句中使用任何表达式。如果不确定公司名称是如何拼写的,则可以使用如下所示的语句尝试更新名为 Newton 的任何公司:

UPDATE Customers
SET CompanyName = 'Einstein, Inc.'
WHERE CompanyName LIKE 'Newton%';

搜索条件不需要引用要更新的列。Newton Entertainments 的公司 ID 是 109。由于 ID 值是表的主键,所以可以确定使用以下语句更新正确的行:

UPDATE Customers
SET CompanyName = 'Einstein, Inc.'
WHERE ID = 109;
提示

还可以根据 Interactive SQL 中的结果集修改行。请参见在 Interactive SQL 中编辑结果集

SET 子句

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

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

WHERE 子句

WHERE 子句指定要更新的行。例如,以下语句用 "Extra Large" T 恤衫替换 "One Size Fits All" T 恤衫。

UPDATE Products
SET Size  = 'Extra Large'
WHERE Name = 'Tee Shirt'
   AND Size = 'One Size Fits All';
FROM 子句

您可以使用 FROM 子句从一个或多个表中取出数据并将它们放入正在更新的表中。