博客网 >

在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.

在本例中:

我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

SQL Server语法:
UPDATE
        {
         table_name WITH ( < table_hint_limited > [ ...n ] )
         | view_name
         | rowset_function_limited
        }
        SET
        { column_name = { expression | DEFAULT | NULL }
        | @variable = expression
        | @variable = column = expression } [ ,...n ]

    { { [ FROM { < table_source > } [ ,...n ] ]

        [ WHERE
            < search_condition > ] }
        |
        [ WHERE CURRENT OF
        { { [ GLOBAL ] cursor_name } | cursor_variable_name }
        ] }
        [ OPTION ( < query_hint > [ ,...n ] ) ]

SQL Server示例:
update a
set a.gqdltks=b.gqdltks,a.bztks=b.bztks
from landleveldata a,gdqlpj b
where a.GEO_Code=b.lxqdm

Oracle语法:
UPDATE  updatedtable
    SET (col_name1[,col_name2...])=
(SELECT  col_name1,[,col_name2...] 
FROM  srctable [WHERE where_definition])

Oracel 示例:
update landleveldata a
set (a.gqdltks, a.bztks)=
(select b.gqdltks, b.bztks  from gdqlpj b
  where a.GEO_Code=b.lxqdm)

MySQL语法:
UPDATE table_references
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]

MySQL 示例:
update landleveldata a, gdqlpj b
set a.gqdltks= b.gqdltks,
 a.bztks= b.bztks
  where a.GEO_Code=b.lxqdm


  

<< Topjoy娱乐资讯(topjo... / 百度和GOOGLE的中文搜索比较 >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

wuxingblog

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档