ORACLE連線型別 各種連線查詢PL SQL測試

2021-04-20 09:30:08 字數 2869 閱讀 1552

---測試oracle 所有連線型別 pl/sql 中執行的

--本人初學,可能有理解不到位的地方,請指正,謝謝!

--建表

create table xxaa (id number(10),name varchar2(20));

create table xxbb (idd number(10),namee varchar2(20));

--insert 資料,或者 for update 也可以

select * from xxaa for update;

select * from xxbb for update;

/*  表a 資料

1 1 a

2 2 b

3 3 c

4 4 d

5  e

6  f

*//* 表b資料

1 1 e

2 2 f

3 3 g

4 4 h

5 5 i

6 6 j

7 7 k

8 8 l

9 9 

*/---測試oracle 所有連線型別 pl/sql 中執行的

--本人初學,可能有理解不到位的地方,請指正,謝謝!

--建表

create table xxaa (id number(10),name varchar2(20));

create table xxbb (idd number(10),namee varchar2(20));

--insert 資料,或者 for update 也可以 

select * from xxaa for update;

select * from xxbb for update;

/*  表a 資料 

1   1   a

2   2   b

3   3   c

4   4   d

5       e

6       f

*//* 表b資料

1   1   e

2   2   f

3   3   g

4   4   h

5   5   i

6   6   j

7   7   k

8   8   l

9   9   

*/select * from xxaa a,xxbb b where a.id(+)=b.idd;--右連線,以b表為基表,匹配b表中的都輸出 

select * from xxaa a,xxbb b where a.id=b.idd(+); --左連線,以a表為基表,匹配a表的都輸出 相當於left join 和left outer join

select * from xxaa a,xxbb b where a.id=b.idd;  -- =連線 a,b表都匹配才輸出

select * from xxaa a left join xxbb b on (a.id=b.idd); --左內連

select * from xxaa a right join xxbb b on (a.id=b.idd); --右內連

select * from xxaa a full join xxbb b on (a.id=b.idd);   --完全連線 --a表和b表的 並集 

select * from xxaa a inner join xxbb b on (a.id=b.idd);  --內連線 --a表和b表的 交集

select * from xxaa a left outer join xxbb b on (a.id=b.idd);--左外連

select * from xxaa a right outer join xxbb b on (a.id=b.idd); --右外連

select * from xxaa a full outer join xxbb b on (a.id=b.idd);  --完全外聯

select * from xxaa a  join xxbb b on (a.id=b.idd);  --相當於= 連線

select * from xxaa a,xxbb b where a.id(+)=b.idd;--右連線,以b表為基表,匹配b表中的都輸出

select * from xxaa a,xxbb b where a.id=b.idd(+); --左連線,以a表為基表,匹配a表的都輸出 相當於left join 和left outer join

select * from xxaa a,xxbb b where a.id=b.idd;  -- =連線 a,b表都匹配才輸出

select * from xxaa a left join xxbb b on (a.id=b.idd); --左內連

select * from xxaa a right join xxbb b on (a.id=b.idd); --右內連

select * from xxaa a full join xxbb b on (a.id=b.idd);   --完全連線 --a表和b表的 並集

select * from xxaa a inner join xxbb b on (a.id=b.idd);  --內連線 --a表和b表的 交集

select * from xxaa a left outer join xxbb b on (a.id=b.idd);--左外連

select * from xxaa a right outer join xxbb b on (a.id=b.idd); --右外連

select * from xxaa a full outer join xxbb b on (a.id=b.idd);  --完全外聯

select * from xxaa a  join xxbb b on (a.id=b.idd);  --相當於= 連線

oracle 連線的各種問題

最近忙著安裝oracle資料庫,本來挺簡單的,可老是出現問題,最後自己在網上整理了一些tns錯誤解決方法,希望對初學者有益。常見問題 1 ora 12541 tns 沒有 顯而易見,伺服器端的 沒有啟動,另外檢查客戶端ip位址或埠填寫是否正確。啟動 lsnrctl start或c lsnrctl s...

資料庫查詢內連線,外連線,各種查

一 外連線 1.概念 包括左向外聯接 右向外聯接或完整外部聯接 2.左連線 left join 或 left outer join 1 左向外聯接的結果集包括 left outer 子句中指定的左表的所有 行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有 匹配行,則在相關聯的結果集行中右表...

Oracle中表的連線型別

oracle中所謂表的連線,有兩種含義。一種是根據oracle內部的連線判斷方式區分的內部連線型別,這會影響到系統優化 資源占用等問題。另一種是基於查詢的方式,對兩張表之間建立聯絡,會影響到查詢的結果,這裡都寫一下。一 oracle 中的表內部連線有 3類 1 巢狀迴圈連線 nested loops...