Oracle之Merge into函数使用

Merge into函数为Oracle 9i添加的语法,用来合并update和insert语句。所以也经常用于update语句的查询优化:

一、语法格式:

sql 复制代码
merge into A
using B
on (A.a = B.a) --注意on后面带括号,且不能更新join的字段
when matched then 
update set A.b = B.b 
when not matched then 
insert A (A.a,A.b) values (B.a,B.b) --也可以做delete语句

二、性能方面:Merge into优于update,Merge into只扫描一次全表,Update子句扫描两次;

三、使用需要注意的地方:

①update通常与exists搭配使用,更新指定范围的数据,而不是所有数据;

②改写update语句时,有多个表的情况,分析各个表的之间的关系,写到on后面做关联;

③不等式的,条件子句含不等式时,通常需要将子句做转化到B表中,外层再做关联。

相关推荐
TDengine (老段)15 分钟前
开放生态破局工业大数据困局:TDengine 的迭代升级与全链路数据自由流动
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
一位代码16 分钟前
一些常用的通用 mysql 命令详解及注意事项
数据库·mysql
苏supper28 分钟前
DBExportDoc V1.0 For Oracle.doc导出oracle数据库表结构说明文档出错Fatal NI connect error 6413
oracle
曹牧29 分钟前
Oracle:五笔码
数据库·oracle
今晚务必早点睡30 分钟前
MySQL 新手避坑指南:安装、区分、检查一步到位
数据库·mysql·adb
JIngJaneIL33 分钟前
基于java+ vue畅游游戏销售管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·游戏
詹姆斯爱研究Java34 分钟前
基于Django的租房网站的设计与实现
数据库·python·django
deng-c-f34 分钟前
Linux C/C++ 学习日记(50):连接池
数据库·学习·连接池
运维行者_41 分钟前
APM 性能监控是什么?从应用监控与网站监控了解基础概念
网络·数据库·云原生·容器·kubernetes·智能路由器·运维开发
全栈小541 分钟前
【数据库】当InfluxDB遇到天花板:金仓数据库如何重构时序性能极限?
数据库·重构