oracle 实例用法,Oracle merge into用法以及相关例子示例
以下的文章主要是對Oracle merge into用法以及相關(guān)例子的介紹,首先我們以O(shè)racle 9I中加入MERGE入手,以下就是文章的具體內(nèi)容的分析,希望你瀏覽完之后會給你帶來一些幫助在此方面。
語法:
MERGE?[hint]?INTO?[schema?.]?table?[t_alias]
USING?[schema?.]?{?table?|?view?|?subquery?}?[t_alias]
ON?(?condition?)
WHEN?MATCHED?THEN?merge_update_clause
WHEN?NOT?MATCHED?THEN?merge_insert_clause;
創(chuàng)建測試數(shù)據(jù)表:
create?table?tj_test(id?number,name?varchar2(20),age?number);
向表中插入數(shù)據(jù):
insert?into?tj_test?values?(1,'jan',23);
insert?into?tj_test?values?(2,'kk',22);
insert?into?tj_test?values?(3,'joe',27);
select?*?from?tj_test;
查詢結(jié)果如下:
1 jan 23
2 kk 22
3 joe 27
創(chuàng)建另一新表
create?table?tj_test1?as?select?*?from?tj_test?where1=0
插入一條數(shù)據(jù)
insert?into?tj_test1?values?(1,'jlk',23);
select?*?from?tj_test1
查詢結(jié)果如下:
1 jkl 23 --注意,這里的的NAME字段中的值是jkl
Oracle merge into用法使用MERGE,實現(xiàn)有則更新,無則插入,sql語句如下:
merge?into?tj_test1?tt1
using?tj_test?tt
on?(tttt1.id=tt.id)
when?matched?then
update?set
tttt1.name=tt.name,
tttt1.age=tt.age
when?not?matched?then
insert?values(
tt.id,
tt.name,
tt.age)
查詢tj_test1表(對比原來表中的數(shù)據(jù),更新了ID=1 ROW中字段NAME,同時多出兩條新數(shù)據(jù))
select?*?from?tj_test1
改變行數(shù)據(jù)如下:
1 jan 23 --這里的原有jkl值被更新
3 joe 27 --原來表中沒有的插入
2 kk 22 --原來表中沒有的插入
如果存在就更新,不存在就插入
9i已經(jīng)支持了,是Merge,但是只支持select子查詢,
如果是單條數(shù)據(jù)記錄,可以寫作select …… from dual的子查詢。
語法為:
MERGE?INTO?table
USING?data_source
ON?(condition)
WHEN?MATCHED?THEN?update_clause
WHEN?NOT?MATCHED?THEN?insert_clause;
如:
MERGE?INTO?course?c
USING?(SELECT?course_name,?period,
course_hours
FROM?course_updates)?cu
ON?(c.course_name=cu.course_name
ANDc.period=cu.period)
WHEN?MATCHED?THEN
UPDATE
SETc.course_hours=cu.course_hours
WHEN?NOT?MATCHED?THEN
INSERT?(c.course_name,?c.period,
c.course_hours)
VALUES?(cu.course_name,?cu.period,
cu.course_hours);
以上的相關(guān)內(nèi)容就是對Oracle merge into用法及例子的介紹,望你能有所收獲。
【編輯推薦】
【責(zé)任編輯:孫巧華 TEL:(010)68476606】
點贊 0
總結(jié)
以上是生活随笔為你收集整理的oracle 实例用法,Oracle merge into用法以及相关例子示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java if经典程序_java经典程序
- 下一篇: android开机后自动执行shell,