Oracle基礎(三) 多表查詢

2021-10-23 15:26:56 字數 1038 閱讀 7856

普通

現有:dept 部門表(主要字段:deptno部門編號、dname 部門名稱、 )

employee 員工表 (主要字段:empno員工編號、ename員工姓名、supno上級編號、deptno部門編號、sal 工資、job工作)

salgrade 工資等級表(主要字段:grade工資等級、lower下限、upper上限)

例如:查出各員工的姓名,編號,部門名稱,工資等級以及對應上級的姓名,工資等級(不存在上級的員工會被篩選掉,如果要保留無上級的員工記錄,可以用外連線)

select e1.name,e1.empno,d.dname,s1.grade,e2.ename,s2.grade

from employee e1,dept d,salgrade s1, employee e2,slagrade s2

where e1.deptno=d.deptno

and e1.sal between s.lower and s.upper

and e1.supno = e2.empno

and e2.sal between s2.lower and s2.upper;

外連線外連線可以保留一張表的全部資料,另一張表作補充

例如:查詢出每乙個部門的員工(若所有在employee表中的員工,不存在於某部門,但是在dept表中存在該部門,用一般關聯查詢無法滿足需求)

where條件後 用作補充的表的關聯字段後面加上(+)即可

select * from dept d,employee e where d.deptno=e.deptno(+);

左連線:左邊表的資料保留全部,右邊表的表根據篩選條件,顯示符合條件的記錄,不符合顯示null

select * from dept d left join employee e on d.deptno = e.deptno;

右連線:右邊表的資料保留全部,左邊表的表根據篩選條件,顯示符合條件的記錄,不符合顯示null

select * from employee e right join dept d on d.deptno = e.deptno;

Oracle 多表查詢

sql 外連線 sql 按部門統計員工人數 部門號 部門名稱 人數 sql select d.deptno,d.dname,count e.empno 2 from dept d,emp e 3 where d.deptno e.deptno 4 group by d.deptno,d.dname ...

Oracle 多表查詢

等值和不等值連線查詢 為了避免笛卡爾集,可以在 where 加入有效的連線條件。oracle 連線多表查詢 在 where 子句中寫入連線條件。在表中有相同列時,在列名之前加上表名字首 select table1.column,table2.column from table1,table2 whe...

oracle 多表查詢

多表查詢 多表查詢,又稱表聯合查詢,即一條sql語句涉及到的表有多張,資料通過特定的連線進行聯合顯示.笛卡爾積 在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y.假設集合a 集合b 則兩個集合的笛卡爾積為。在資料庫中,如果直接查詢倆張表,那麼其查詢結果就...