Oracle多表聯查總結筆記

2021-10-03 04:53:42 字數 2128 閱讀 6215

(以兩表為例)

語法:

select別稱1.列名1,…別稱2.列名n

from表1 別稱1inner join表2.別稱2

on別稱1.公共列=別稱2.公共列

where查詢語句;

例如:查詢員工編號,姓名,部門編號以及部門名稱

select別稱1.列名1,…別稱2.列名n

from表1 別稱1left outer join表2 別稱2

on別稱1.公共列=別稱2.公共列2

where查詢語句;

例如:查詢員工編號,員工姓名,部門編號,部門名稱

顯示結果如下:

顯示左邊表的全部資訊,張飛沒有部門則補null值。

另一種寫法:select e.empno,e.ename,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno(+);

select別稱1.列名1,…別稱2.列名n

from表1 別稱1right outer join表2 別稱2

on別稱1.公共列=別稱2.公共列2

where查詢語句;

例如:查詢員工編號,員工姓名,部門編號,部門名稱

顯示結果如下:

顯示右邊表的全部資訊,40號部門沒有員工則補null值。

另一種寫法:select e.empno,e.ename,d.deptno,d.dname from emp e,dept d where e.deptno(+)=d.deptno;

select別稱1.列名1,…別稱2.列名n

from表1 別稱1full outer join表2 別稱2

on別稱1.公共列=別稱2.公共列

where查詢條件;

例如:查詢員工編號,員工姓名,部門編號,部門名稱

顯示結果如下:

顯示的是兩表所有的員工資訊,沒有部門的員工補null,沒有員工的部門補null。

例如:查詢員工表顯示員工編號,員工姓名,領導編號;

顯示結果如下:

其中員工與領導都屬於emp表,如果要檢視每個員工的上級編號以及姓名,則需要使用自鏈結,語句如下(語法可以採用簡單方式,也可以用內鏈結語法來寫):

舉例:

查詢每個員工的工資等級,顯示員工編號,姓名,工資,工資等級:

(也可以採用內鏈結的語法方式,聯立條件中使用between and關鍵字將薪資等級的劃分範圍與薪資聯立起來)

舉例:查詢顯示員工姓名,工資,部門名稱,工資等級

顯示結果:

剛剛接觸學習,做了乙個簡單的總結筆記,很多用語不當的地方望見諒,如果有需要改正的地方希望指點。

SQL多表聯查總結

交叉連線 不常用 返回兩個表的笛卡爾乘積 也即全組合排列 中符合查詢條件的資料行。內連線返回連線表中符合連線條件和查詢條件的資料行。左外連線 返回符合連線條件和查詢條件 即 內連線 的資料行,且還返回左表中不符合連線條件但符合查詢條件的資料行。右外連線 返回符合連線條件和查詢條件 即 內連線 的資料...

Oracle多表關聯查詢

select e.empno,e.ename,d.deptno,d.dname from emp e,dept d where e.deptno d.deptno 在上述sql語句中先執行 from 後執行select和where 如果使用了別名的話以後引用表都要使用別名不然會報錯 別名最長為30個...

mysql 多表聯查 MySQL的多表聯查

今天是周二,我們一起來研究下mysql的多表聯查啊。或許你也知道,表之間的關係有 1對1 1對多 多對多。然後.1.巢狀查詢 乙個查詢的結果是另外sql查詢的條件 如 查詢stu表中年齡最大的是誰?mysql select from stu where age select max age from...