1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Oracle 的merge into 用法

Oracle 的merge into 用法

时间:2021-04-21 23:30:56

相关推荐

Oracle 的merge into 用法

数据库|mysql教程

merge into 用法,Oracle 的merge in

数据库-mysql教程

国彩源码,ubuntu输入首选弹窗,tomcat1.8扇退,爬虫找书籍,运行php页面,孝感怎么做seo关键词优化lzw

Merge是一个非常有用的功能,与DB2中的merge into功能几乎一样,与Mysql里的insert into on duplicate key也很类似。MERGE INTO

haproxy 源码,vscode语言服务器崩溃,ubuntu挖矿hdd,tomcat突然内存激增,vba股票爬虫,php实现订单管理,眉山seo网络推广代理商,网站模板 报警lzw

资源管理网站 源码,vscode 显示类属性,ubuntu安全在哪,tomcat请求队列,sqlite3导出图片,学爬虫可以考什么证啊,php 饼状图,铜川网络优化seo,返利网站搭建,黑色网页psd,angulr 模板下载lzw

1.merge into的用途

Merge是一个非常有用的功能,与DB2中的merge into功能几乎一样,与Mysql里的insert into on duplicate key也很类似。MERGE INTO 是Oracle 9i以后才出现的新的功能。简单来说可以是一个“有则更新,无则插入”的功能。

通过Merge into你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表的数据插入A表. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表 。

2.Merge into的基本语法

语法如下 :

1 MERGE [INTO [schema .] table [t_alias]

2 USING [schema .] { table | view | subquery } [t_alias]

3 ON ( condition )

4 WHEN MATCHED THEN [merge_update_clause ]

5 WHEN NOT MATCHED THEN [merge_insert_clause];

通俗点就是如下的语法

1 MERGE INTO [表名] [表别名]

2 USING ( [查询内容] )[或者像表查询一样的语句]

3 ON ([条件表达式] AND […]…)

4 WHEN MATHED THEN [匹配的update操作]

5 WHEN NOT MATHED THEN [不匹配的insert操作]

举个例子看看:

1 merge into Students st using newStudents nst on (st.id = nst.id)

2 when matched then

3 update set st.name = nst.name

4 when not matched then

5 insert values(nst.id, nst.name, nst.sex)

前面的merger into Students using newStudents 意思是用newStudents表来merge到Students表,匹配关系就是根据on后面的条件子句的内容,这里根据两个表的id来进行匹配,那么匹配上了我们的操作是就是when matched then的子句里的动作了,这里的动作是update set st.name =nst.name, 就是把newStudents里的name,赋值到Students的name里。如果没有匹配上则insert这样的一条语句进去。通过这个简单的小例子,这个merget inot的用法还是比较容易理解的。这里merger into的功能,,好比比较,然后选择更新或者是插入,像是武术套路的一套组合拳。在做merge into的时候,这样同样的情况下,merge的性能是优于同等功能的update/insert语句的。有分析说merge into是单纯的insert/update效率的好几倍,本人没有考究过,不做评论 。

3.Oracle 10g后的改进

在Oracle 10g中MERGE有如下一些改进:

1、UPDATE或INSERT子句是可选的

2、UPDATE和INSERT子句可以加WHERE子句

3、在ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表

4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行

Oracle merge into用法及例子

本文永久更新链接地址:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。