Oracle表的常用查询实验(二)
Oracle表的常用查询实验(二)
Oracle表的常用查询实验(一)
http://www.zzzyk.com/database/201309/242198.html
1.查询所有雇员的姓名、SAL与COMM之和。 select ename,sal+nvl(comm,0) “sal-and-comm” from emp; 2.查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字 select ename,sal,dname from emp,dept where emp.deptno=dept.deptno and hiredate>=to_date(‘1981-07-01’,’yyyy-mm-dd’); 3.查询各部门中81年1月1日以后来的员工数 select deptno,count(*) from emp where hiredate>=to_date(‘1981-01-01’,’yyyy-mm-dd’) group by deptno; 4.查询所有在CHICAGO工作的经理MANAGER和销售员SALESMAN的姓名、工资 select ename,sal from emp where (job=’MANAGER’ or job=’SALES’) and deptno in (select deptno from dept where loc=’CHICAGO’); 5.查询列出来公司就职时间超过24年的员工名单 select ename from emp where hiredate<=add_months(sysdate,-288); 6.查询于81年公司所有员工的总收入(SAL和COMM) select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,’yyyy’)=’1981’; 7.查询显示每个雇员加入公司的准确时间,按××××年××月××日时分秒显示。 select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp; 8.查询公司中按年份月份统计各地的录用职工数量 select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept where emp.deptno=dept.deptno group by to_char(hiredate,'yyyy-mm'),loc; 9.查询列出各部门的部门名和部门经理名字 select dname,ename from emp,dept where emp.deptno=dept.deptno and job=’MANAGER’; 10.查询部门平均工资最高的部门名称和最低的部门名称 select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1) union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) desc ) where rownum<=1); 11.查询与雇员号为7521员工的最接近的在其后进入公司的员工姓名及其所在部门名 select ename,dname from (select ename,deptno from (select ename,deptno from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1) e,dept where e.deptno=dept.deptno