11 SQL語言——查詢練習



--查詢最高工資和員工數
--查詢不同部門的最高工資
--查詢不同工作崗位的員工數
--查詢不同工作部門的不同工作崗位的人數
--查詢不同部門的不同工作崗位且人數大於1的信息
--查詢部門號大於10的不同部門的不同工作崗位的人數

1.選擇部門30中的所有員工.
2.列出所有辦事員(CLERK)的姓名,編號和部門編號.
3.找出佣金高於薪金的員工.
4.找出佣金高於薪金的60%的員工.
5.找出部門10中所有經理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料.
6.找出部門10中所有經理(MANAGER),部門20中所有辦事員(CLERK),既不是經理又不是辦事員但其薪金大於或等於2000的所有員工的詳細資料.
7.找出收取佣金的員工的不同工作.
8.找出不收取佣金或收取的佣金低於100的員工.
9.找出各月倒數第3天受雇的所有員工.
10.找出早於12年前受雇的員工.
11.以首字母大寫的方式顯示所有員工的姓名.
12.顯示正好為5個字符的員工的姓名.
13.顯示不帶有"R"的員工的姓名.
14.顯示所有員工姓名的前三個字符.
15.顯示所有員工的姓名,用a替換所有"A"
16.顯示滿10年服務年限的員工的姓名和受雇日期.
17.顯示員工的詳細資料,按姓名排序.
18.顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面.
19.顯示所有員工的姓名、工作和薪金,按工作的降序排序,若工作相同則按薪金排序.
20.顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面.
21.顯示在一個月為30天的情況所有員工的日薪金,忽略余數.
22.找出在(任何年份的)2月受聘的所有員工。
23.對於每個員工,顯示其加入公司的天數.
24.顯示姓名字段的任何位置包含"A"的所有員工的姓名.
25.以年月日的方式顯示所有員工的服務年限.
---------------------------------------------------------------------------
1.列出所有雇員的姓名及其直接上級的姓名
2.列出部門名稱和這些部門的雇員,同時列出那些沒有雇員的部門;
3.顯示所有部門在"NEW YORK"(dept表 loc字段)的員工姓名
4.顯示員工"SMITH"的姓名,部門名稱
5.顯示員工姓名,部門名稱,工資,工資級別(salgrade表 grade字段),要求工資級別大於4級
6.顯示員工"KING"和"FORD"管理的員工姓名及其經理姓名
7.顯示員工名,參加工作時間,經理名,參加工作時間:參加工作時間比他的經理早
8、求出部門名稱中,帶'S'字符的部門員工的工資總和 、部門人數
9、列出所有員工的年工資,按年薪從低到高排序
10、列出各種工作的最低工資以及從事此工作的雇員姓名
11、列出所有部門的詳細信息和部門人數
12、列出所有員工的姓名、部門名稱和工資
13、查詢員工信息: 員工的名字 老板的名字
14、要求查詢出每一個雇員的編號、姓名、工資、部門名稱、工資在所在公司的工資等級
15、按照職位分組,求出每個職位的最高工資、最低工資以及平均工資
16、統計平均工資大於2000的部門的詳細信息

7-16答案:

--7.顯示員工名,參加工作時間,經理名,參加工作時間:參加工作時間比他的經理早
select e1.ename "員工名",(sysdate-e1.hiredate) "參加工作時間",e2.ename "經理名",(sysdate-e2.hiredate) "參加工作時間"
from emp e1
join emp e2
on e1.mgr=e2.empno
where e2.hiredate>e1.hiredate;
----8、求出部門名稱中,帶'S'字符的部門員工的工資總和 、部門人數
select d.deptno,sum(sal) "工資總和",count(*) "部門人數"
from emp e 
join dept d 
on e.deptno=d.deptno 
where dname like('%S%') group by d.deptno ;
--9、列出所有員工的年工資,按年薪從低到高排序
select ename, (sal+nvl(comm,0))*12 "年薪"
from emp e
order by "年薪";
--10、列出各種工作的最低工資以及從事此工作的雇員姓名
select job "工作",sal "最低工資",ename "姓名" 
from emp 
where sal in (select min(sal) from emp group by job)
order by job;
--11、列出所有部門的詳細信息和部門人數
select dname,d.deptno,loc,count(*) "部門人數" from dept d
join emp e
on d.deptno=e.deptno
group by dname,d.deptno,loc;
--12、列出所有員工的姓名、部門名稱和工資
select ename,dname,sal
from emp
join dept
on emp.deptno = dept.deptno
;
--13、查詢員工信息: 員工的名字 老板的名字 
select e1.ename "員工",e2.ename "上司"
from emp e1
join emp e2
on e1.mgr=e2.empno
;
--14、要求查詢出每一個雇員的編號、姓名、工資、部門名稱、工資在所在公司的工資等級 
select empno,ename,sal,dname,grade from emp e
join dept d
on e.deptno = d.deptno
join salgrade
on sal>losal and sal <hisal
order by empno;
--15、按照職位分組,求出每個職位的最高工資、最低工資以及平均工資 
select job,min(sal),max(sal),avg(sal)
from emp
group by job; 
--16、統計平均工資大於2000的部門的詳細信息
select d.deptno,dname,loc,avg(sal) "平均工資" from dept d
join emp e
on d.deptno=e.deptno
group by d.deptno,dname,loc
having  avg(sal) >2000;

  


--------------------------------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM