資料庫版本:oracle 9i
表testa,testb,testc,各有a, b兩列 a
b001
10a002
20a
a b001
10b003
30b
a b001
10c004
40c
連線分為兩種:內連線與外連線。
a.內連線
內連線,即最常見的等值連線,例:
select
*
fromtesta,testb
wheretesta.a=testb.a結果a
b ab
00110a
00110b
b.外連線
外連線分為左外連線,右外連線和全外連線。
1.左外連線left outer join 或者 left join
左外連線就是在等值連線的基礎上加上主表中的未匹配資料,例:
select
*
fromtesta
leftouterjointestb
ontesta.a=testb.a
oracle
支援另一種寫法
select
*
fromtesta,testb
wheretesta.a=testb.a(+)
結果:a b
a b001
10a001
10b002
10b
三個表做左外連線
select
*
fromtesta
leftouterjointestb
ontesta.a=testb.a
leftouterjointestc
ontesta.a=testc.a
oracle
支援的另外一種寫法
select
*
fromtesta,testb,testc
wheretesta.a=testb.a(+)
andtesta.a=testc.a(+)
結果: a
b ab a
b001
10a001
10b001
10c002
20a
2.右外連線right outer join 或者 right join
右外連線是在等值連線的基礎上加上被連線表的不匹配資料
select
*
fromtesta
rightouterjointestb
ontesta.a=testb.a
oracle
支援的另一種寫法
select
*
fromtesta,testb
wheretesta.a(+)=testb.a
結果:a b
a b001
10a001
10b
00330b
3.全外連線full outer join 或者 full join
全外連線是在等值連線的基礎上將左表和右表的未匹配資料都加上
select
*
fromtesta
fullouterjointestb
ontesta.a=testb.a
全外連線的等價寫法,對同一表先做左連線,然後右連線
select
testa.*,testb.*
fromtesta
leftouterjointestb
ontesta.a=testb.a
union
selecttesta.*,testb.*
fromtestb
leftouterjointesta
ontesta.a=testb.a
結果:a b
a b001
10a001
10b002
20a
00330b
Oracel中連線的總結(一)
資料庫版本 oracle 9i 表testa,testb,testc,各有a,b兩列 連線分為兩種 內連線與外連線。a 內連線 內連線,即最常見的等值連線,例 select fromtesta,testb wheretesta.a testb.a 結果b.外連線 外連線分為左外連線,右外連線和全外連...
oracel中的表匯出csv檔案
1.定義儲存過程 create or replace procedure sql to csv p query in varchar2,plsql文 p dir in varchar2,匯出的檔案放置目錄 p filename in varchar2 csv名 is l output utl fil...
使用JSP連線ORACEL資料庫做的登入框架
判斷是否有錯誤資訊,如果有則列印 如果沒有此段 則顯示時會直接列印null if request.getattribute err null 使用jdbc連線oracle資料庫 string dbdriver oracle.jdbc.driver.oracledriver string dburl ...