Oracle merge into的优势
简介
Oracle merge into命令,顾名思义就是“有则更新,无则插入”,这个也是merge into 命令的核心思想,在实际开发过程中,我们会经常遇到这种通过两表互相关联匹配更新其中一个表的某些字段的业务,有时还要处理不匹配的情况下的业务。这个时候你会发现随着表的数据量增加,类似这种业务场景的执行效率会比较慢,那是因为你需要多次重复查询两表中的数据,而通过merge into命令,只需要一次关联即可完成“有则更新,无则插入”的业务场景,大大提高语句的执行效率。
语法
merge into A表 using B表 on (A表.id = B表.id)
when matched then --匹配到,则更新A表数据
update set A.col=B.col
when not matched then --没匹配到,往A表插入数据
insert (a,b,c) values ('a','b','c');
解释:利用B表通过A表.id=B表.id的条件来匹配A表,当满足条件时,可以对A表进行更新,当不满足条件时,可以利用inert语句插入相关数据。
案例
merge into student.stuinfo_2018 A
using student.stuinfo B
on (A.stuid = B.stuid)
when matched then --匹配到往A更新数据
update set A.age = B.age
when not matched then --没匹配到往A插入数据
insert
(a.STUID,
a.STUNAME,
a.SEX,
a.AGE,
a.CLASSNO,
a.STUADDRESS,
a.GRADE,
a.ENROLDATE,
a.IDNUMBER)
values
(b.STUID,
b.STUNAME,
b.SEX,
b.AGE,
b.CLASSNO,
b.STUADDRESS,
b.GRADE,
b.ENROLDATE,
b.IDNUMBER);
Oracle merge into的优势的更多相关文章
- Oracle Merge into 详细介绍
Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...
- Oracle merge
oracle merge 語法:
- Oracle RAC的五大优势及其劣势
Oracle RAC的五大优势及其劣势 不同的集群产品都有自己的特点,RAC的特点包括如下几点: 双机并行.RAC是一种并行模式,并不是传统的主备模式.也就是说,RAC集群的所有成员都可以同时接收客户 ...
- Oracle merge合并更新函数
本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这是很常见的业务场景,如果是用Oracle数据库的话,其实直 ...
- ORACLE MERGE INTO UPDATE DELETE 用法
ORACLE MERGE INTO UPDATE DELETE 用法 使用该MERGE语句从一个或多个源中选择行以进行更新或插入表或视图.您可以指定条件以确定是更新还是插入目标表或视图. 此语句是组合 ...
- oracle merge into与sqlserver merge into 比较
merge into: 在两个表之间,根据与源表联接的结果,对目标表执行插入.更新或删除操作. Oracle在9i引入了merge into命令,SQL Server 2008也引入merge int ...
- Oracle—merge into语法
oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入: 不需要先去判断一下记录是否存在,直接使用merge into merge into 语法: MERGE ...
- oracle merge into用法
转载:http://blog.163.com/duanpeng3@126/blog/static/885437352011724104741817/ 在 平时更新数据时,经常有这样一种更新,即将目标表 ...
- Oracle merge into
Oracle中Merge into用法总结 文件来源:(http://blog.csdn.net/yuzhic/article/details/1896878) 有一个表T,有两个字段a.b,我们想在 ...
随机推荐
- AOP框架Dora.Interception 3.0 [5]: 基于策略的拦截器注册方式
注册拦截器旨在解决如何将拦截器应用到目标方法的问题.在我看来,针对拦截器的注册应该是明确而精准的,也就是我们提供的注册方式应该让拦截器准确地应用到期望的目标方法上,不能多也不能少.如果注册的方式过于模 ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- Leetcode92: Reverse Linked List II 翻转链表问题
问题描述 给定一个链表,要求翻转其中从m到n位上的节点,返回新的头结点. Example Input: 1->2->3->4->5->NULL, m = 2, n = 4 ...
- java之生产者和消费者问题
package testThread; public class Test3 { public static void main(String[] args) { Clerk c = new Cler ...
- 秒杀系统(一)----环境搭建及集成Mybatis、Redis
1.1 环境搭建--pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...
- MySQL数据库基础笔记
数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作. 数据库的分类 关系型数据库(Oracle.MySQL.SQLite等) 非关系型数据库(Redis.MongoDB ...
- 初窥R(基本说明、获取帮助、工作空间、输入输出、包)
本篇简要介绍使用R的一些基本概念,包括基本说明.获取帮助.工作空间.输入输出,每个知识点中都会通过一个例子来练习. 一.R基本情况说明 1.R是一种区分大小写的解释性语言. 2.控制台默认使用命令提示 ...
- 5.java基础之static、类加载过程
static修饰符 修饰属性:静态的属性不属于任何对象,全类及其对象共用,可以用类名直接调用 修饰方法:静态的方法可以直接用类名调用,和对象无关.静态方法只能访问静态成员和静态方法,非静态方法可以调用 ...
- Laravel6实现第三方 微信登录
目前很多的网站中都会存在很多的交互功能,从而降低用户的操作难度,特此带来微信的第三方登录的项目实战功能开发.对于本实例中的开发内容,就不在使用原生的内容,而是直接使用别人写好的封装的类库. 1. 安装 ...
- JDK 安装与环境配置配置——Android开发第一步
什么是JDK? JDK 即 Java Development Kit,Java开发工具包,用来编译 Java 程序.JRE 在接触JDK的过程中,同时了解到 JRE,JRE 即 Java Runtim ...