前言
在用oracle数据库时没有用过merge语句,发现这个语句还是蛮实用的,于是梳理一下这个点
merge语句具有按条件获取要更新或插入到表中的数据行,然后从一个或多个源头对表进行更新或者向表中插入行两方面的能力,它最经常用在数据仓库中来移动大量的数据,这个语句提供的一个很大的附加值在于你可以很方便的把多个操作结合成一个
Merge的语法:
Merge Into <table_name> 别名
USING<table_view_or_query> //如果是子查询需括起来
ON (Clause) //关联条件要用括号括起来
WHEN MATCHED THEN <update_clause>
DELETE <where_clause>
WHEN NOT MATCHED THEN<insert_clause>
解析
- INTO 子句用于指定你所update或者Insert目的表。
- USING 子句用于指定你要update或者Insert的记录的来源,它可能是一个表,视图,子查询。
- ON Clause用于目的表和源表(视图,子查询)的关联,如果匹配(或存在),则更新,否则插入。
加删除操作
update子句后面可以跟delete子句来去掉一些不需要的行
delete只能和update配合,从而达到删除满足where条件的子句的记录
评论区