本文介绍了sql中update语句的用法,包括简单update语句、where子句与update语句一起使用、通过 UPDATE 语句使用来自另一个表的信息等,需要的朋友参考下。
sql中update语句用法
A,使用简单UPDATE
如果从 update 语句中去除 where 子句,所有的行会受到什么影响。
如果表 publishers 中的所有出版社将总部搬迁到佐治亚州的亚特兰大市,表 publishers 如何更新。
复制代码 代码示例:
update publishers
set city = 'atlanta', state = 'ga'
例子,将所有出版商的名字变为 NULL。
复制代码 代码示例:
update publishers
set pub_name = null
也可以在更新中使用计算值。本示例将表 titles 中的所有价格加倍。
复制代码 代码示例:
UPDATE titles
SET price = price * 2
B,把 WHERE 子句和 UPDATE 语句一起使用
where 子句指定要更新的行例如,在下面这个虚构的事件中,北加利福尼亚更名为 pacifica(缩写为 pc),而奥克兰的市民投票决定将其城市的名字改为 bay city。
例子,说明如何为奥克兰市以前的所有居民(他们的地址已经过时)更新表 authors。www.jb200.com
复制代码 代码示例:
UPDATE authors
SET state = 'PC', city = 'Bay City'
WHERE state = 'CA' AND city = 'Oakland'
必须编写另一个语句来更改北加利福尼亚其它城市的居民所在的州名。
c,通过 update 语句使用来自另一个表的信息
例子,修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新销售记录。
复制代码 代码示例:
UPDATE titles
SET ytd_sales = titles.ytd_sales + sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
这个例子假定,一种特定的商品在特定的日期只记录一批销售量,而且更新是最新的。如果不是这样(即如果一种特定的商品在同一天可以记录不止一批销售量),这里所示的例子将出错。例子可正确执行,但是每种商品只用一批销售量进行更新,而不管那一天实际销售了多少批。这是因为一个 UPDATE 语句从不会对同一行更新两次。www.jb200.com
对于特定的商品在同一天可销售不止一批的情况,每种商品的所有销售量必须在 UPDATE 语句中合计在一起,如下例所示:
复制代码 代码示例:
UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
D,将 UPDATE 语句与 SELECT 语句中的 TOP 子句一起使用
例子,对来自表 authors 的前十个作者的 state 列进行更新。
复制代码 代码示例:
UPDATE authors
SET state = 'ZZ'
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id