深圳軟體測試學習:【資料庫】-【oracle】-連線查詢

andy888168發表於2019-11-05

深圳軟體測試學習:【資料庫】-【oracle】-連線查詢


•連線分類

內連線、外連線、自連線、交叉連線

內連線分類:

等值連線、不等值連線、自然連線

外連線分類:

左外連線、右外連線、全連線


一,內連線

內連線只顯示出兩張表都匹配的結果

Inner join (inner可以省略)


案例:查詢員工資訊及其部門資訊

隱式內聯接

Select * from emp e,dept d where e.deptno=d.deptno;


顯式內連線:

Select * from emp e join dept d on e.deptno=d.deptno;


•等值連線:連線條件用“=”

•查詢出所有員工資訊以及所在部門資訊:

•Select * from emp e join dept d

On e.deptno=d.deptno


例:要查詢的是sales部門的所有員工資訊以及所在的部門資訊:

•Select * from emp e join dept d

•On e.deptno=d.deptno where d.dname=‘SALES’;

•(Select * from emp e join dept d


•不等值連線

就是連線條件不用“=”進行關聯了,而是在一個範圍內進行連線。

例:查詢員工資訊,以及薪資等級資訊

Select * from emp e join salgrade s

On e.sal>=s.losal and e.sal<=s.hisal;

也可:

Select * from emp e join salgrade s

On e.sal between losal and hisal;


•自然連線(不需要寫連線條件,用的非常少)

自然連線就是找到2張表根據一模一樣的列名自然而然的連線

Natural join


查詢所有員工資訊以及員工所在部門資訊

Select * from emp e natural join dept d;


•2、外連線

有條件的顯示出表的內容

包括:

左外連線

右外連線

全連線


•1)左外連線(left join)

顯示出左邊表的全部欄位和右邊表中與左邊匹配的欄位,空的用null補齊

查詢所有部門資訊,以及部門下面的員工資訊:

Select * from dept d left join emp e

On d.deptno=e.deptno;


2)右外連線(right join)

顯示出右邊表的全部欄位和左邊表中與右邊匹配的欄位,空的用null補齊

select * from student right join score on student.id=score.stuid


•3)全連線(full join)

顯示兩張表的全部欄位

顯示所有員工及部門資訊

Select * from emp e full join dept d

On e.deptno=d.deptno;


•自連線查詢:

也叫自身連線查詢。可以將自身表的一個映象當作另一個表來對待

————————————————

版權宣告:本文為CSDN博主「qq1494648730」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/QQ1494648730/article/details/102914937


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947096/viewspace-2662696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章