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表中,外层再做关联。

相关推荐
老苏畅谈运维2 小时前
MySQL性能分析的“秘密武器”,深度剖析SQL问题
数据库·sql·mysql
金融OG2 小时前
99.16 金融难点通俗解释:营业总收入
大数据·数据库·python·机器学习·金融
Java诗人DK3 小时前
windows 安装 mysql 教程
数据库·windows·mysql
loser~曹4 小时前
Redis实现,分布式Session共享
数据库·redis·分布式
患得患失9496 小时前
【Django DRF Apps】【文件上传】【断点上传】从零搭建一个普通文件上传,断点续传的App应用
数据库·后端·django·sqlite·大文件上传·断点上传
老大白菜8 小时前
GoFrame MongoDB 使用指南
数据库·mongodb
Elastic 中国社区官方博客8 小时前
使用 Confluent Cloud 的 Elasticsearch Connector 部署 Elastic Agent
大数据·数据库·elasticsearch·搜索引擎·全文检索·confluent
SelectDB技术团队9 小时前
Apache Doris 2.1.8 版本正式发布
大数据·数据库·数据仓库·数据分析·doris
狮歌~资深攻城狮10 小时前
什么时候用MPP,什么时候用TiDB?
数据库·数据仓库·分布式·数据分析·tidb
memorycx11 小时前
MySQL(1)
数据库·mysql