`

oracle学习之02篇,多表连接更新

    博客分类:
  • db
 
阅读更多
SQL UPDATE实现多表更新

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

AB张表,其记录如下:
A

c1 c2
--------------
1 a1
2 a2
3 a3
8 a8
B

c1 c3
--------------
1 b1
2 b1
3 b3
10 b10
A.c1
B.c1相等,用一条sql语句,实现A.c2的值更新为B.c3
------------------------
UPDATE A
SET A.c2 =B.c3
from A ,B
where A.c1=B.c1
UPDATE A
SET A.c2 =B.c3
from A inner join B on A.c1=B.c1
注意:update后面是不能跟多表的,但跟在from子句后面

 

一个具体的例子:

UPDATE t_bd_person t
SET t.FEmployeeClassifyID = 
(select ec.fid from CT_HR_RZZG ct
  inner join T_HR_EmployeeClassify ec on ct.fnumber=ec.fnumber
  where t.cfrzzgid=ct.fid)

 

分享到:
评论

相关推荐

    oracle 左连接 右连接学习

    oracle 左连接 右连接 学习 精选资料

    oracle学习笔记(oracle远程连接)

    oracle学习笔记(oracle远程连接),有具体的案例说明。

    ORACLE 多表查询与数据修改

    oracle 多表查询与数据修改学习笔记,主要是让大家熟悉三个或四个表的连接查询,熟练掌握delete、update与insert的语法。

    数据库的连接篇(MySQL和Oracle)

    文档包含了Oracle数据库的连接,以及检测是否连接成功,还包含的MySQL数据库的连接及检测,这是基于初学者的学习使用

    oracle表连接学习总结(火)

    oracle表连接学习总结(火) oracle表连接学习总结(火) oracle表连接学习总结(火)

    通过JDBC连接Oracle数据库的十大技巧

    如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数 据。与此类似的任务可以通过在set子句中使用多列子查询而在一个...

    Oracle连接多个表学习课程.pptx

    Oracle连接多个表学习课程.pptx

    OracleClient 数据库连接client

    Client当然是客户端程序,ORACLE 9I+PLSQL是服务器端程序。 但是日常管理你不可能每次都登录到服务器吧,Client就是可以让你不用登录服务器就可以远程管理的,那个PLSQL就是远程管理程序可以装在服务器,也可以装在...

    VS学习笔记-连接oracle查询 更新

    大家刚开始学习VS 对连接数据库 肯定很郁闷吧 不要着急 慢慢来看

    Oracle数据库学习指南

    2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 5. Oracle Index 的三个问题 6. Oracle PL-SQL语言基础 7. Oracle的分布式管理 ...

    不用安装oracle客户端也可以用plsql连接远程oracle

    不用安装oracle客户端也可以用plsql连接远程oracle.包含所需要文件及操作步骤,供大家学习,有问题请指教,谢谢!

    oracle学习日志总结

    1. 采用共享sql(带占位符或者参数sql). 2. 使用表别名. 3. 尽量避免反复访问同一张表或者几张表,尤其是数据量大的...8. 注意表之间连接的数据类型,避免不同类型数据之间的连接。注意存储过程中参数和数据类型的关系 。

    Oracle连接和使用.pdf

    本文详细介绍和阐述了 Oracle的连接和使用方法,并对连接和使用过程中的注意事项、关键知识点等进行了重点标注和详尽解析,以便于读者进行深入学习和理解。本文在作者测试通过的基础上,采用图文相结合的格式和方式...

    Oracle学习资料doc

    Oracle学习资料doc,内有多个详细的doc文档 好不好,下了看下就知道,一分下载好资料,值得

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    linux oracle从零开始 学习笔记

    Linux简介 Linux命令 Linux远程连接工具 Oracle在linux下的安装 Oracle相关配置 Oracle常用命令 PL/SQL连接oracle 问题总结

    Oracle数据库连接封装类

    这是Oracle数据库连接封装类,许多刚学习数据库的人不知道怎么使用Java连接Oracle数据库,这里我给出封装类,大家可以直接调用。

    oracle远程连接配置

    Oracle Net Configuration Assitent为初学者提供了怎么设置连接远程数据库的配置,内附有图片,简单易懂,是初学者的理想学习文档,请大家多多下载,谢谢支持

    oracle学习文档

    Oracle学习总结 1、 一般一台服务器只安装一个数据库,一个数据库可以有很多用户,不同的用户拥有自己的数据库对象,一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。不同用户的数据库对象,...

Global site tag (gtag.js) - Google Analytics