当前位置:  数据库>oracle

Oracle中merge用法

    来源: 互联网  发布时间:2017-04-28

    本文导语: MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部...

MERGE语句是Oracle9i新增的语法,用来合并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;

1、UPDATE或INSERT子句是可选的

2、UPDATE和INSERT子句可以加WHERE子句

3、在ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表

4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行

首先创建示例表:

create table PRODUCTS

      (

      PRODUCT_ID INTEGER,

      PRODUCT_NAME VARCHAR2(60),

      CATEGORY VARCHAR2(60)

      );

 

      insert into PRODUCTS values (1501, 'VIVITAR 35MM', 'ELECTRNCS');

      insert into PRODUCTS values (1502, 'OLYMPUS IS50', 'ELECTRNCS');

      insert into PRODUCTS values (1600, 'PLAY GYM', 'TOYS');

      insert into PRODUCTS values (1601, 'LAMAZE', 'TOYS');

      insert into PRODUCTS values (1666, 'HARRY POTTER', 'DVD');

      commit;

 

      create table NEWPRODUCTS

      (

      PRODUCT_ID INTEGER,

      PRODUCT_NAME VARCHAR2(60),

      CATEGORY VARCHAR2(60)

      );

 

      insert into NEWPRODUCTS values (1502, 'OLYMPUS CAMERA', 'ELECTRNCS');

      insert into NEWPRODUCTS values (1601, 'LAMAZE', 'TOYS');

      insert into NEWPRODUCTS values (1666, 'HARRY POTTER', 'TOYS');

      insert into NEWPRODUCTS values (1700, 'WAIT INTERFACE', 'BOOKS');

      commit;


    
 
 

您可能感兴趣的文章:

  • oracle中lpad函数的用法详解
  • Oracle中decode函数的用法
  • Oracle 系统变量函数用法指南
  • oracle while的用法示例分享
  • c#中oracle to_date函数用法举例
  • oracle 下WITH CHECK OPTION用法
  • Oracle 函数用法之decode
  • Oracle sequence序列的用法
  • [Oracle] 常用工具集之SQL*Loader的用法
  • oracle case when 语句的用法详解
  • Oracle行级锁的特殊用法简析
  • Oracle merge into用法及例子
  • oracle comment命令用法示例分享
  • Oracle to_date()函数的用法介绍
  • oracle正则表达式regexp_like的用法详解
  • Oracle to_date() 用法细节
  • 深入探讨:oracle中row_number() over()分析函数用法
  • Oracle中start with...connect by prior子句用法
  • Oracle回滚段的概念,用法和规划及问题的解决
  • Oracle MERGE INTO的用法示例介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,