SELCET查询练习题

SELECT sal FROM emp WHERE deptno= '30' ;

1.列出至少有一个员工的所有部门。
SELECT e.ename ,d.dname
FROM emp e,dept  d 
WHERE e.deptno=d.deptno ;
2.列出薪金比“SMITH”多的所有员工。
SELECT *
FROM emp
WHERE SAL > (SELECT SAL FROM emp WHERE  ename = 'SMITH') ;

3.列出所有员工的姓名及其直接上级的姓名。

SELECT e.ename,e.hiredate,(SELECT ename FROM emp p WHERE p.empno=e.mgr,e.hiredate=p.hiredate) as boos
 FROM emp e ;

4.列出受雇日期早于其直接上级的所有员工。
SELECT e.ename  FROM emp e WHERE e.hiredate<(SELECT hiredate FROM emp p WHERE p.empno=e.mgr ) ; 
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门

SELECT e.ename ,d.dname,e.sal,e.comm,e.empno,e.job,d.loc
FROM dept d left join emp e
on e.deptno=d.deptno ;

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

SELECT e.ename ,d.dname,e.job
FROM emp e , dept d
WHERE e.deptno=d.deptno and e.job='CLERK';

7.列出最低薪金大于1500的各种工作。
SELECT ename, job ,sal FROM emp
WHERE sal > 1500 ;

8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

SELECT e.ename,e.deptno,e.job
FROM emp e
WHERE DEPTNO=(SELECT DEPTNO FROM dept WHERE DNAME='SALES') ;

9.列出薪金高于公司平均薪金的所有员工。

SELECT ename 姓名,SAL 薪金 
FROM emp
WHERE SAL >(SELECT AVG(SAL) FROM EMP) ;

10.列出与“SCOTT”从事相同工作的所有员工。

SELECT e.ename,e.job 
FROM emp  e
WHERE
 job = (
SELECT p.job FROM emp p WHERE p.ename='SCOTT') ;

11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
SELECT e.ename,e.sal 
FROM emp e
 WHERE e.sal in (SELECT p.sal FROM emp p WHERE p.DEPTNO=30) and e.deptno<>30;


12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
SELECT e.ename,e.job,e.sal 
FROM emp e
WHERE e.sal >(
SELECT MAX(p.sal) FROM emp p WHERE p.deptno=30);

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
SELECT COUNT(e.empno)员工数量,ROUND(AVG(e.sal),2)平均薪资,TRUNC(AVG(months_between(SYSDATE,e.hiredate)/12))服务年期,(SELECT 

d.dname FROM dept d WHERE e.deptno=d.deptno )as 部门
 FROM emp e
GROUP BY e.deptno ;


14.列出所有员工的姓名、部门名称和工资。

SELECT e.ename,d.dname ,e.sal
FROM emp e,dept d
WHERE e.deptno=d.deptno ;


15.列出所有部门的详细信息和部门人数。

SELECT d.dname,d.loc,(SELECT COUNT(e.deptno) FROM emp e WHERE e.deptno=d.deptno GROUP BY e.deptno) as empname 
FROM dept d ;


16.列出各种工作的最低工资。
 SELECT job,MIN(e.sal) FROM emp e GROUP BY e.job ; 



17.列出各个部门的MANAGER(经理)的最低薪金。

SELECT   e.ename 姓名,e.job,e.sal,d.dname
FROM emp e,dept d
WHERE e.job='MANAGER' and e.deptno=d.deptno;


18.列出所有员工的年工资,按年薪从低到高排序。


SELECT ename,job,NVL(comm,0),(sal+NVL(comm,0))*12 salsum
 FROM emp 
ORDER BY salsum ;

新手练习,请大家多多指教。

标签: select
  • blogger

版权所有:oldboy ---- 《SELCET查询练习题
本文地址:http://www.bokeren.cc/post-119.html
除非注明,文章均为 《悠然生活的平淡博客-博客人linux运维之家》 原创转载请注明本文地址,谢谢。


相关推荐

评论

  1. 2019-07-04 01:26
    感谢分享
    1. 2019-07-06 15:48
      @绿软吧:谢谢留言
  1. 2019-06-01 00:11
    文章不错非常喜欢
    1. 2019-06-17 15:46
      @新闻头条:看看
  1. 2019-05-31 21:16
    文章不错,非常喜欢
    1. 2019-06-17 15:46
      @惠头条邀请码:学习中
  1. 2019-05-14 22:03
    很详细啊,好好了解一下,多谢分享
    1. 2019-05-16 23:32
      @SSR节点:yes
  1. 2019-02-26 19:13
    文章不错,非常喜欢
    1. 2019-02-27 15:16
      @丘八:谢谢
  1. 2019-02-01 18:07
    文章不错
  1. 2019-01-31 10:23
    好像及时雨啊。
  1. 2019-01-03 18:14
    支持一下

你肿么看?

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。