知识大全 OracleMergeinto详细介绍

Posted 条件

篇首语:人生在勤,不索何获本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 OracleMergeinto详细介绍相关的知识,希望对你有一定的参考价值。

OracleMergeinto详细介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  /*Merge into 详细介绍

  MERGE语句是Oracle i新增的语法 用来合并UPDATE和INSERT语句

  通过MERGE语句 根据一张表或子查询的连接条件对另外一张表进行查询

  连接条件匹配上的进行UPDATE 无法匹配的执行INSERT

  这个语法仅需要一次全表扫描就完成了全部工作 执行效率要高于INSERT+UPDATE

  */

  /*语法

  MERGE [INTO [schema ] table [t_alias]

  USING [schema ] table | view | subquery [t_alias]

  ON ( condition )

  WHEN MATCHED THEN merge_update_clause

  WHEN NOT MATCHED THEN merge_insert_clause;

  */

  语法

  MERGE INTO [your table name] [rename your table here]

  USING ( [write your query here] )[rename your query sql and using just like a table]

  ON ([conditional expression here] AND [ ] )

  WHEN MATHED THEN [here you can execute some update sql or something else ]

  WHEN NOT MATHED THEN [execute something else here ! ]

  /*

  我们还是以《sql中的case应用》中的表为例 在创建另两个表fzq 和fzq

  */

   全部男生记录

  create table fzq as select * from fzq where sex= ;

   全部女生记录

  create table fzq as select * from fzq where sex= ;

  /*涉及到两个表关联的例子*/

   更新表fzq 使得id相同的记录中chengji字段+ 并且更新name字段

   如果id不相同 则插入到表fzq 中

   将fzq 表中男生记录的成绩+ 女生插入到表fzq 中

  merge into fzq   aa     fzq 表是需要更新的表

  using fzq bb            关联表

  on (aa id=bb id)        关联条件

  when matched then       匹配关联条件 作更新处理

  update set

  aa chengji=bb chengji+

  aa name=bb name         此处只是说明可以同时更新多个字段

  when not matched then    不匹配关联条件 作插入处理 如果只是作更新 下面的语句可以省略

  insert values( bb id bb name bb sex bb kecheng bb chengji);

   可以自行查询fzq 表

  /*涉及到多个表关联的例子 我们以三个表为例 只是作更新处理 不做插入处理 当然也可以只做插入处理*/

   将fzq 表中女生记录的成绩+ 没有直接去sex字段 而是fzq和fzq 关联

  merge into fzq   aa     fzq 表是需要更新的表

  using (select fzq id fzq chengji

  from fzq join fzq

  on fzq id=fzq id) bb  数据集

  on (aa id=bb id)        关联条件

  when matched then       匹配关联条件 作更新处理

  update set

  aa chengji=bb chengji+

   可以自行查询fzq 表

  /*不能做的事情*/

  merge into fzq   aa

  using fzq bb

  on (aa id=bb id)

  when matched then

  update set

  aa id=bb id+

  /*系统提示

  ORA : Columns referenced in the ON Clause cannot be updated: AA ID

  我们不能更新on (aa id=bb id)关联条件中的字段*/

  update fzq

  set  id=(select id+ from fzq where fzq id=fzq id)

  where id in

  (select id from fzq)

cha138/Article/program/Oracle/201311/17876

相关参考

知识大全 详细介绍一下

平安养老保险现在有哪些产品!详细介绍一下,平安养老保险有哪些您可以去保险公司咨询,也可以去相关第三方官方保险平台对比,需要提醒的是,要参加养老保险的话。主要是有两种形式,一种单位与农村的社保,二是商业

知识大全 请详细介绍下

报考飞行员有什么条件,特别对身体要求!请详细介绍下飞行员应具备的特殊身体素质在飞行活动中,飞行人员要受到高空缺氧、低气压、寒冷、噪声、振动与加速度等环境的影响,对其生理功能有较高的要求。一、体质好体质

皮肤病症状详细介绍

不管什么病,最直观的了解就是它的症状,皮肤病也不例外,皮肤病是皮肤疾病的一种统称,它分很多种,症状也就表现不同,那么接下来给大家皮肤病症状详细介绍,让大家学习一下,以便于发现疾病、及时的治疗疾病,这里

知识大全 那位球友可以给我详细的介绍下塞尔比的姿势,尽量详细点儿啊

斯诺克姿势个人非常喜欢塞尔比的姿势!那位球友可以给我详细的介绍下塞尔比的姿势,尽量详细点儿啊塞尔比的姿势很标准,但他在出杆的时候身体老是晃动,个人觉得皇帝的姿势是最标准的长跑的姿势?详细点。长跑姿势可

知识大全 详细介绍JVM结构基础

详细介绍JVM结构基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JVM执行的对象就是大家非

知识大全 Oracle启动程序方式详细介绍

Oracle启动程序方式详细介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!startupnom

知识大全 详细介绍Jsp中的Cookies

详细介绍Jsp中的Cookies  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在开发网站应用程

知识大全 PHP cdata 处理(详细介绍)

PHPcdata处理(详细介绍)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!之前为项目赶进度用p

知识大全 Oracle触发器详细介绍

Oracle触发器详细介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  触发器  是特定事件出

知识大全 Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍

Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来