当前位置: 首页 > news >正文

山西城乡与住房建设厅网站成品网站w灬源码16伊园

山西城乡与住房建设厅网站,成品网站w灬源码16伊园,黄村网站开发公司,四川建设网站官网oracle--实验---Merge语句 1.认知Merge 语句 • merge 语句是 sql 语句的一种。在 SQL server 、 Oracle 数据库中可用, MySQL 中不可用。 • merge 用来合并 update 和 insert 语句。目的:通过 merge 语句,根据一张表( 原数据表…

 

oracle--实验---Merge语句

1.认知Merge  语句

merge 语句是 sql 语句的一种。在 SQL server Oracle 数据库中可用, MySQL 中不可用。
merge 用来合并 update insert 语句。目的:通过 merge 语句,根据一张表( 原数据表, source table 对另外一张( 目标表, target table 表进行查询,连接条件 匹配上 的进行 update 无法匹配 的执行 INSERT 。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于 insert+update
何为匹配,何为不匹配?

 

/*示例程序块2   重要*/

/*示例程序块2   重要*/DECLAREv_xm varchar2(8):='Jame';v_zym varchar2(10):='计算机';v_zxf number(2):=45;    /*定义变量类型*/BEGINUPDATE XS  SET zxf=v_zxfWHERE xm=v_xm;IF SQL%NOTFOUND THENDBMS_OUTPUT.PUT_LINE('没有该人,需要插入该人');INSERT INTO XS(XH,XM,ZYM,ZXF)          VALUES('007',v_xm,v_zym,v_zxf);END IF;
end;      

Merge应用场合

构建平台
create table PRODUCTS(PRODUCT_ID             INTEGER,PRODUCT_NAME      VARCHAR2(60),CATEGORY                VARCHAR2(60));create table NEWPRODUCTS(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;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;

Merge 用法--1

Merge 根据对 源表 联接的结果对 目标表 执行修改操作 ( 插入,更新,删除 )
应用场合:对于特定的数据,在 一次批量操作 过程中 ,如果数据已经 存在 ,则对存在的数据按照现有情况进行 更新 ,如果不存在,则需要将数据添加到数据库的表中。
具体操作: - 根据与 源表 联接的结果,对 目标表 执行插入、更新或删除操作。

 

Merge 语句:

Merge 插入记录、更新记录的语法格式:•MERGE INTO tdest dUSING  tsrc  sON  (s.srckey = d.destkey)WHEN NOT MATCHED THENINSERT  (destkey, destdata) VALUES  (srckey, srcdata)
•        WHEN MATCHED THENUPDATE SET   d.destdata = d.destdata + s.srcdata;
•--  USING 子句用于指定要与目标联接的数据源。
•--  ON 子句用于指定决定目标与源的匹配位置的联接条件。
•--  WHEN 子句用于根据ON 子句的结果指定要执行的操作。

注意:当数据不匹配时,执行insert 语句的不同(省略了into 和

目标 表的名称);

当数据匹配时,执行update 语句的不同(省略了update之后的

目标表名称)。

使用表时必须使用表的别名。

Merge 用法--2

 考虑有可能的情况是:

1. 原表 xs_s中有该学生,但是目的表xs_d中没有该学生,则需要将原表中的学生insert 到目的表

2. 原表xs_s有该学生,而且xs_d中也有该学生,则需要根据原表中的学生信息 update 目的表,或者删除目的表中的部分记录

检查表XS_JSJ中的数据是否和表XS的数据相匹配,

如果匹配则使用INSERT子句执行插入数据行。

搭建平台:create table xs1 as select * from xs;

 

•INSERT INTO XS1(XH,XM,ZYM,XB,CSSJ,ZXF)
• VALUES(007' ,'test', '计算机','男', TO_DATE('19900130','YYYYMMDD'),36);
•   已知条件: 存在两个表 xs_s xs_d , 两个表的结构一致,内容

不统一。目前的想法是,合并两个表中所有的记录到xs_d中。

-- 使用MERGE语句XS_JSJ表中新增的数据插入表XS中:MERGE INTO XS aUSING XS1  bON(a.XH=b.XH)WHEN NOT MATCHED THEN             INSERT(a.xh,a.xm,a.zym,a.xb,a.cssj,a.zxf)Values(b.xh,b.xm,b.zym,b.xb,b.cssj,b.zxf);

4418888b9c2243f89e276a8de9c80eb1.png

Merge 用法--3

构建平台

-- 构建平台
create table PRODUCTS(PRODUCT_ID             INTEGER,PRODUCT_NAME      VARCHAR2(60),CATEGORY                VARCHAR2(60));create table NEWPRODUCTS(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;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;

具体实现:

-- 具体实现: 
begininsert 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;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;end;

0dd1b45345824e52b4d8de68f46eb4d9.png

Merge 用法--4

   说明:products为目标表,newproducts为源表,则若产品号相匹配,根据源表信息修改目标表的产品名(product_name)和产品类别(category)

merge into products pusing newproducts npon (p.product_id=np.product_id)
when matched thenupdate setp.product_name=np.product_name,p.category=np.category;

346962e3c0b54ab9a346b7946eca4af8.png

•加结果图和表原始数据图
•强调目标表

说明:products为目标表,newproducts为源表,则若产品号不匹配,则根据源表将新的纪录添加到目标表。

Merge into products pusing newproducts npon (p.product_id = np.product_id)when  not matched theninsert values (np.product_id,np.product_name,np.category);

6a3bd5d6517747619ba4974c6b2b316c.png

Merge 用法--5

-- 一个merge例子带update,delete 和insert 三种操作。
MERGE INTO products pUSING newproducts npON (p.product_id = np.product_id)WHEN MATCHED THENUPDATESET p.product_name = np.product_name,p.category = np.categoryDELETE WHERE (p.category = 'ELECTRNCS')WHEN NOT MATCHED THENINSERTVALUES (np.product_id, np.product_name, np.category)

 

2.实验--实战 

首先导入xskc.dmp文件

导入xskc.dmp文件:

输入命令:

SQL> $imp system/test tables=(xs,kc,xs_kc) file=C:\xskc.dmp

1c60a0c75b604afaa9d89b9efc34f048.png

测试是否成功:

输入查询语句:

SQL> select * from xs;

ad6755e68b8045488571b7449f2f768b.png 

 

 

 

 

d294915ed0f54e079c0a6b93dabb4372.png

 

http://www.yayakq.cn/news/614492/

相关文章:

  • 网站建设与管理期末北京页面设计制作
  • 一个网站一个月发多少外链比较合适做面包有关电影网站
  • asp做网站 的pdf教程网站优化工具升上去
  • 唯品会网站建设 分析报告技术支持-鼎维重庆网站建设专家
  • 网站建设设计设计重庆用百度还是高德地图
  • 成都建站提供商网页设计的发展前景如何
  • 安逸花借款app下载安装seo免费教程
  • 网站域名备案和icp备案一样么佛山网站定制
  • 苏州学网站建设广告营销策略分析
  • 网站权重怎么查询哪里有专业做网站的
  • 秦皇岛市城乡建设局网站个人网站备案所需材料
  • 彩票网站建设安全度浙江信息网查询系统
  • 成都专业网站设计好公司网络营销平台的主要功能
  • 挂别人公司做网站可以吗做网站需不需要云数据库
  • 前端开发主要工作内容网站优化公司怎么选
  • 佛山建设小学官方网站磁力吧
  • 公司网站建设价格标准有道翻译网站 做翻译
  • 25亿企业网站管理系统团队架构
  • 高端网站设计开发谷歌商店paypal下载官网
  • 那个可以做棋牌网站wordpress 表单留言
  • 哈尔滨网站建设招聘免费做国际网站有哪些
  • 网站汉英结合的怎么做三网合一网站建设计划
  • 做3d效果图的网站wordpress 快递查询 插件
  • 网站建设开发图片广州天河区房价
  • 网站的风格对比信息表网站运营需要哪些资质
  • 推广seo网站抖音seo优化系统招商
  • 四川冠辰网站建设西安小程序开发公司有哪些
  • 百度建网站要多少钱网站设置在设备之间共享怎么开启
  • 宁波市高新区建设局网站开淘宝网店
  • 微网站的链接怎么做网站开发的实践报告