收藏 分享(赏)

update语法汇总.doc

上传人:yjrm16270 文档编号:7652190 上传时间:2019-05-23 格式:DOC 页数:3 大小:36.50KB
下载 相关 举报
update语法汇总.doc_第1页
第1页 / 共3页
update语法汇总.doc_第2页
第2页 / 共3页
update语法汇总.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、update 语法汇总 最常用的 update 语法是:UPDATE SET = , SET = 如果我的更新值 Value 是从一条 select 语句拿出来,而且有很多列的话,用这种语法就很麻烦第一,要 select 出来放在临时变量上,有很多个哦第二,再将变量进行赋值。列多起来非常麻烦,能不能像 Insert 那样,把整个 Select 语句的结果进行插入呢?就好象下面insert into table1(c1, c2, c3)(select v1, v2, v3 from table2)答案是可以的,具体的语法如下:UPDATE SET (, ) = (SELECT (, )FROM

2、WHERE = )WHERE ;下面是这样一个例子:两个表 a、b ,想使 b 中的 memo 字段值等于 a 表中对应 id 的 name 值 表 a: id, name 1 王 2 李 3 张 表 b:id,ClientName 1 2 3 (MS SQL Server)语句:update b set ClientName = a.name from a,b where a.id = b.id (Oralce)语句:update b set (ClientName) = (SELECT name FROM a WHERE b.id = a.id)update set from 语句格式当

3、where 和 set 都需要关联一个表进行查询时,整个 update 执行时,就需要对被关联的表进行两次扫描,显然效率比较低。对于这种情况,Sybase 和 SQL SERVER 的解决办法是使用 UPDATE.SET.FROM.WHERE.的语法,实际上就是从源表获取更新数据。在 SQL 中,表连接(left join、 right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。Update T_OrderForm SET T_Or

4、derForm.SellerID =B.L_TUserIDFROM T_OrderForm A LEFT JOIN T_ProductInfo B ON B.L_ID=A.ProductID用来同步两个表的数据!Oralce 和 DB2 都支持的语法:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)MS SQL Server 不支持这样的语法,相对应的写法为:UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A LEFT JOIN B ON A.ID = B.I

5、D个人感觉 MS SQL Server 的 Update 语法功能更为强大。MS SQL SERVER 的写法:UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID在 Oracle 和 DB2 中的写法就比较麻烦了,如下:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)关于 update set from关键字: upda

6、te set from 下面是这样一个例子:两个表 a、b,想使 b 中的 memo 字段值等于 a 表中对应 id 的 name 值 表 a:id, name 1 王 2 李 3 张 表 b:id,ClientName 1 2 3 (MS SQL Server)语句:update b set ClientName = a.name from a,b where a.id = b.id (Oralce)语句:update b set (ClientName) = (SELECT name FROM a WHERE b.id = a.id)update set from 语句格式当 where

7、和 set 都需要关联一个表进行查询时,整个 update 执行时,就需要对被关联的表进行两次扫描,显然效率比较低。对于这种情况,Sybase 和 SQL SERVER 的解决办法是使用UPDATE.SET.FROM.WHERE.的语法,实际上就是从源表获取更新数据。在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。Update T_OrderForm SET T_OrderForm.

8、SellerID =B.L_TUserIDFROM T_OrderForm A LEFT JOIN T_ProductInfo B ON B.L_ID=A.ProductID用来同步两个表的数据!Oralce 和 DB2 都支持的语法:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)MS SQL Server 不支持这样的语法,相对应的写法为:UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A LEFT JOIN B ON A.ID =B.ID个人感觉 MS SQL Server 的 Update 语法功能更为强大。MS SQL SERVER 的写法:UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID在 Oracle 和 DB2 中的写法就比较麻烦了,如下:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报