ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle综合测试题

2021-11-14 10:30:45  阅读:179  来源: 互联网

标签:ename sal 测试题 emp Oracle 综合 deptno where select


  1. 将emp表的职员信息按雇佣日期由早到晚的先后顺序列出
    select * from emp order by hiredate;

  2. 查询职员表中没有奖金的员工信息
    select * from emp where comm is null;

  3. 查询工资高于所有员工平均工资的员工
    select * from emp where sal>(select avg(sal) from emp);

  4. 构造sql语句,查询emp表的信息,格式为“员工编码empno,姓名ename,月收入(工资+奖金)”
    select ‘员工编码’||empno||’,姓名’||ename||’,月收入’||nvl(sal+comm,sal) from emp;

  5. 查找员工姓名的长度是五个字符的员工信息
    select * from emp where length(ename)=5;

  6. 查询每个部门的职位种类,要去掉重复的职位
    select deptno,job from emp group by deptno,job order by deptno;

  7. 查询每个部门中每种职位的最高薪水
    select deptno,job,max(sal) from emp group by deptno,job;

  8. 查询员工的姓名和他在公司工作的年限(以月份数表示)
    select ename,months_between(sysdate,hiredate) from emp;

  9. 查询工资大于2000的员工的姓名,雇佣日期和薪水,其中雇佣日期以“1980年12月17日”这样的形式显示,薪水值以“rmb5000.00”这样的形式显示,查询结果按薪水的降序排序select ename,to_char(hiredate,‘yyyy"年"mm"月"dd"日"’) chusheng,‘rmb’||to_char(sal,‘9999.99’) from emp order by sal desc;

  10. 列出工资比smith多的所有员工
    select * from emp where sal>(select sal from emp where ename=‘SMITH’);

  11. 列出所有员工的姓名及其直接上级的姓名
    select e.ename yuangong,m.ename lingdao from emp e,emp m where e.mgr=m.empno;

  12. 列出最低工资大于1500的各种工作
    select job ,min(sal) from emp group by job having min(sal)>1500;

  13. 列出所有部门的详细信息和部门人数。
    select d.*,renshu from dept d,(select deptno,count(empno) renshu from emp group by deptno) de where d.deptno=de.deptno;

  14. 找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工
    select * from emp where deptno=10 and job<>‘MANAGER’ AND job<>‘CLERK’ AND SAL>=2000;

  15. 找出部门 30 中得到最多奖金的员工姓名
    select ename from emp where deptno=30 and comm=(select max(comm) from emp where deptno=30);

  16. 分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金)
    select deptno,job,avg(nvl(comm,0)),sum(nvl2(comm,sal+comm,sal)) from emp group by deptno,job;

  17. 查找出工资等级不为 4 级的员工的员工名字,部门名字,部门地点。
    select grade,ename,dname,loc from emp e join dept d on e.deptno=d.deptno join salgrade on sal between losal and hisal where grade<>4;

  18. 生成一个1—20之间的随机数,再对其进行四舍五入处理,保留一位小数点。
    select round(dbms_random.value(1,20),1) from dual;

  19. 列出受雇日期早于其直接上级的所有员工。
    select e.hiredate,e.ename yuangong,m.hiredate,m.ename lingdao from emp e join emp m on e.mgr=m.empno where e.hiredate<m.hiredate;

  20. 查询每个部门中有同样工资的员工的统计信息, 列出他们的部门号,工资,人数。
    select deptno,sal,count(empno) from emp e where (deptno,sal)in(select deptno,sal from emp where empno<>e.empno) group by deptno,sal;

  21. 计算“1929-02-14”与当前日期之间相差的年份
    select extract(year from sysdate)-extract(year from to_date(‘1929-02-12’,‘yyyy-mm-dd’)) from dual;

  22. 查询不是领导的员工
    select * from emp where empno not in(select mgr from emp where mgr is not null);

  23. 查询第6条到第10条的员工记录
    select * from (select rownum r,e.* from emp e where rownum<=10) e1 where r>=6;

  24. 查询最高工资员工的名字和工作岗位
    select ename,job,sal from emp where sal=(select max(sal) from emp );

  25. 显示没有上级的雇员的情况
    select * from emp where mgr is null;

标签:ename,sal,测试题,emp,Oracle,综合,deptno,where,select
来源: https://blog.csdn.net/weixin_48891182/article/details/121314703

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有