SQL里,可以利用UPDATE陈述式修改资料表中一笔或多笔的资料。可以更新全部的栏位,或使用条件式只更新部份的资料。

以下是Update陈述式的语法:

UPDATE 资料表名称 SET [栏位名称1 = 值1], [ 栏位名称2 = 值2], [ 栏位名称3 = 值 ...] [WHERE 条件式]


UPDATE若要能成功,使用者必须要有栏位或是资料表的资料存取权限(UPDATE权限),而且更新的值不可违背资料表的限制条件(如主键、唯一索引、检查限制非空值等限制)。

范例

只在栏位 C2 的值为“ a ”时将资料表 T 中的栏位 C1 设为 1 。

UPDATE T SET C1 = 1 WHERE C2 = 'a'

将栏位 C1 的值加 1 ,若栏位 C2 的值为“ a ”。

UPDATE T SET C1 = C1 + 1 WHERE C2 = 'a'

将栏位 C1 的前面串接上字串“ text ”,若栏位 C2 的值为“ a ”。

UPDATE T SET C1 = 'text' || C1 WHERE C2 = 'a'

只在 C2 的值也出现于有著栏位 C4 等于 0 的资料表 T2 里的栏位 C3 中时,资料表 T1 里的栏位 C1 才会被设为 2 。

UPDATE T1 
SET    C1 = 2    
WHERE  C2 IN ( SELECT C3
               FROM   T2
               WHERE  C4 = 0)

参考文献

参见