ORACLE 高階查詢

2021-06-16 18:38:28 字數 1926 閱讀 6625

---- oracle 高階查詢

-- 1.集合操作(並集、交集、補集)

----  <1> union (並集 不重複)

select dept_code,dept_name from base_dept

union

select dept_code,dept_name from geyy_dept;

----  <2> union all (並集 重複)

select dept_code,dept_name from base_dept

union all

select dept_code,dept_name from geyy_dept;

insert into geyy_dept(id,dept_code,dept_name)

select 'e1266a92fcdb813ee040a8c09b006e84','aa','aaa' from dual

union

select 'e1266a92fcdb813ee040a8c09b006e8y','bb','bbb' from dual

----  <3> intersect (交集 返回兩個查詢共有的記錄 .查詢的每個欄位都必須相等。包括空值)

-------  例如:如果dept_code 相等。但是dept_name不想等,就查不出來。必須這兩個欄位都相等。

select dept_code,dept_name from base_dept

intersect

select dept_code,dept_name from geyy_dept;

----  <4> minus(返回第乙個查詢檢索出的記錄減去第二個查詢檢索出的記錄之後剩餘的記錄)

select dept_code,dept_name from base_dept

minus

select dept_code,dept_name from geyy_dept;

--- 2. 連線查詢

----- <1> 內連線 (inner join)

--------- 以下三種結果都是一樣的。

select * from base_dept join  geyy_dept on base_dept.id=geyy_dept.id;

select * from base_dept inner join  geyy_dept on base_dept.id=geyy_dept.id;

select * from base_dept,geyy_dept where base_dept.id=geyy_dept.id;

----- <2> 外連線  (outer join)

--------- oracle中對兩個表或者若干表之間的外聯接用(+)表示。

--------- 以下三種結果都是一樣的。

select * from base_dept left join geyy_dept on  base_dept.id=geyy_dept.id;

select * from base_dept left outer join geyy_dept on  base_dept.id=geyy_dept.id;

select * from base_dept,geyy_dept where base_dept.id=geyy_dept.id(+);

--------- 以下三種結果都是一樣的。

select * from base_dept right join geyy_dept on  base_dept.id=geyy_dept.id;

select * from base_dept right outer join geyy_dept on  base_dept.id=geyy_dept.id;

select * from base_dept,geyy_dept where base_dept.id(+)=geyy_dept.id;

Oracle 高階查詢

語法 with alias name1 as subquery1 alias name2 as subquery2 alias namen as subqueryn select col1,col2 col3 from alias name1,alias name2 alias namen 當查詢中...

oracle 高階查詢

一.使用集合操作符 1.union all 返回各個查詢檢索出的所有行,包括重複的行 2.union 返回查詢檢索出的所有非重複行 3.intersect 返回兩個查詢檢索出的共有行 4.minus 返回從第乙個查詢檢索出的行中減去第二個查詢檢索出的行之後剩餘的行。二.translate 函式 tr...

ORACLE高階查詢

1.connect by 是乙個連續的 select regexp substr 01 02 03 04 1,level as newport from dual connect by level regexp count 01 02 03 04 1.0select regexp substr 由店...