首頁 > 資料庫 > mysql教程 > Oracle中merge用法

Oracle中merge用法

WBOY
發布: 2016-06-07 17:14:36
原創
1187 人瀏覽過

MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查

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;

linux

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板