语法汇总.doc_第1页
语法汇总.doc_第2页
语法汇总.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 WHERE = )WHERE ;下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值表a:id, name1 王2 李3 张表b:id,ClientName 123(MS SQL Server)语句:update b set ClientName = 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和set都需要关联一个表进行查询时,整个update执行时,就需要对被关联的表进行两次扫描,显然效率比较低。对于这种情况,Sybase和SQL SERVER的解决办法是使用UPDATE.SET.FROM.WHERE.的语法,实际上就是从源表获取更新数据。在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。UpdateT_OrderFormSETT_OrderForm.SellerID =B.L_TUserIDFROM T_OrderForm ALEFT JOIN T_ProductInfo BON B.L_ID=A.ProductID用来同步两个表的数据!Oralce和DB2都支持的语法:UPDATEASET(A1, A2, A3)=(SELECTB1, B2, B3FROMBWHEREA.ID=B.ID)MS SQL Server不支持这样的语法,相对应的写法为:UPDATEASETA1=B1, A2=B2, A3=B3FROMALEFTJOINBONA.ID=B.ID个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:UPDATEASETA1=B1, A2=B2, A3 = B3FROMA, BWHEREA.ID=B.ID在Oracle和DB2中的写法就比较麻烦了,如下:UPDATEASET(A1, A2, A3)=(SELECTB1, B2, B3FROMBWHEREA.ID=B.ID)WHEREIDIN(SELECTB.IDFROMBWHEREA.ID=B.ID)关于update set from关键字: update 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 bset ClientName= from a,bwhere a.id = b.id (Oralce)语句:update bset (ClientName)=(SELECT nameFROM a WHERE b.id = a.id)update set from 语句格式当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_OrderForm.SellerID =B.L_TUserIDFROM T_OrderForm A LEFT JOIN T_ProductInfo B ON B.L_ID=A.ProductID用来同步两个表的数据!Oralce和DB2都支持的语法:UPDATEA SET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID)MS SQL Server不支持这样的语法,相对应的写法为:UPDATEASETA1=B1,A2=B2,A3=B3FROMALEFTJOINBONA.ID=B.ID个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:UPDATEASETA1=B1,A2=B2, A3 = B3 FROMA,BWHEREA.ID=B.ID在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论