ORACLE 06 SELECT高級查詢

一、實驗目的
1.掌握SELECT語句的多表連接查詢。
2.掌握SELECT語句的子查詢。
二、實驗內容
1.根據Oracle數據庫scott方案下的emp表和dept表,完成下列操作:
(1)查詢所有工種爲CLERK的員工的姓名及其部門名稱。
(2)查詢所有部門及其員工信息,包括那些沒有員工的部門。
(3)查詢所有員工及其部門信息,包括那些還不屬於任何部門的員工。
(4)查詢在SALES部門工作的員工的姓名信息。
(5)查詢所有員工的姓名及其直接上級的姓名。
(6)查詢入職日期早於其上級領導的所有員工的信息。
(7)查詢從事同一種工作但不屬於同於部門的員工信息。
(8)查詢10號部門員工及其領導的信息。
(9)使用UNION將工資大雨2500的僱員信息與工作爲ANALYST的僱員信息合併。
(10)通過INTERSECT集合運算,查詢工資大於2500,並且工作爲ANALYST的僱員信息。
(11)使用MINUS集合查詢工資大於2500。但工作不是ANALYST的僱員信息。
(12)查詢工資高於公司平均工資的所有員工信息。
(13)查詢與SMITH員工從事相同工作的所有員工信息。
(14)查詢工資比SMITH員工工資高的所有員工信息。
(15)查詢比所有在30號部門中工作的員工的工資都高的員工姓名和工資。
(16)查詢部門人數大於5的部門的員工信息。
(17)查詢所有員工工資都大於2000的部門的信息。
(18)查詢人數最多的部門信息。
(19)查詢至少有一個員工的部門信息。
(20)查詢工資高於本部門平均工資的部門信息。
(21)查詢工資高於本部門平均工資的員工信息及其部門的平均工資。
(22)查詢每個員工的領導所在部門的信息。
(23)查詢平均工資低於2000的部門及其員工信息。

三、實驗環境
虛擬機下的windows xp和oracle 10g。
四、實驗步驟
(1)查詢所有工種爲CLERK的員工的姓名及其部門名稱。

這裏寫圖片描述
(2)查詢所有部門及其員工信息,包括那些沒有員工的部門。

這裏寫圖片描述
(3)查詢所有員工及其部門信息,包括那些還不屬於任何部門的員工。

這裏寫圖片描述
(4)查詢在SALES部門工作的員工的姓名信息。

這裏寫圖片描述
(5)查詢所有員工的姓名及其直接上級的姓名。

這裏寫圖片描述
(6)查詢入職日期早於其上級領導的所有員工的信息。

這裏寫圖片描述
(7)查詢從事同一種工作但不屬於同於部門的員工信息。

這裏寫圖片描述
(8)查詢10號部門員工及其領導的信息。

這裏寫圖片描述
(9)使用UNION將工資大於2500的僱員信息與工作爲ANALYST的僱員信息合併。

這裏寫圖片描述
(10)通過INTERSECT集合運算,查詢工資大於2500,並且工作爲ANALYST的僱員信息。

這裏寫圖片描述
(11)使用MINUS集合查詢工資大於2500。但工作不是ANALYST的僱員信息。

這裏寫圖片描述
(12)查詢工資高於公司平均工資的所有員工信息。

這裏寫圖片描述
(13)查詢與SMITH員工從事相同工作的所有員工信息。

這裏寫圖片描述
(14)查詢工資比SMITH員工工資高的所有員工信息。

這裏寫圖片描述
(15)查詢比所有在30號部門中工作的員工的工資都高的員工姓名和工資。

這裏寫圖片描述
(16)查詢部門人數大於5的部門的員工信息。

這裏寫圖片描述
(17)查詢所有員工工資都大於2000的部門的信息。

這裏寫圖片描述
(18)查詢人數最多的部門信息。

這裏寫圖片描述
(19)查詢至少有一個員工的部門信息。

這裏寫圖片描述
(20)查詢工資高於本部門平均工資的部門信息。

這裏寫圖片描述
(21)查詢工資高於本部門平均工資的員工信息及其部門的平均工資。

(22)查詢每個員工的領導所在部門的信息。

(23)查詢平均工資低於2000的部門及其員工信息。

五、總結
(說明實驗過程中遇到的問題及解決辦法;新發現或個人的收穫;未解決/需進一步研討的問題或建議新實驗方法等)
1、
SQL> select ENAME,DEPTNO
2 from scott.emp
3 where job=’CLERK’;
2、

select dname,ename
from scott.dept LEFT JOIN scott.emp
ON dept.deptno=emp.deptno;
3、
select ename,dname
from scott.dept,scott.emp
where dept.deptno(+)=emp.deptno;

4、
select ename,dname
from scott.emp e,scott.dept d
where d.dname=’SALES’ and d.deptno = e.deptno;

select ename
from scott.emp where deptno in (select deptno from scott.dept where dname=’SALES’);
5、
select a.ename,b.ename as mrgname
from scott.emp a,scott.emp b
where a.mgr=b.empno;

select a.ename,b.ename as mrgname
from scott.emp a,scott.emp b
where a.mgr=b.empno(+);

6、
select a.* from scott.emp a,scott.emp b
where a.mgr=b.empno AND a.hiredate

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章