百度和GOOGLE的中文搜索比较- -| 回首页 | 2005年索引 | - -Topjoy娱乐资讯(topjoy.cn)发布公告

三种数据库的多表更新语法(汇编)

关键词Update    多表    Oracle    MySQL    SQLServer                                          

在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了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


  

【作者: wuxingblog】【访问统计:】【2005年10月25日 星期二 19:54】【 加入博采】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3320354

博客手拉手

回复

评论内容: