数据库题目参考答案
2017-06-28 10:18
447 查看
--1列出至少有一个雇员的所有部门
select deptno,count(*) from emp group by deptno having count(*)>=1;
-- 2、列出薪金比"SMITH"多的所有雇员
select ename,sal from emp where sal>(select sal from emp where ename='smith');
--3、列出所有雇员的姓名及其工作地点
select Loc,ename form emp,dept where dept.deptno=emp.deptno;
select dept.loc a.ename from dept,
(select deptno,ename from emp)a
where a.deptno=dept.deptno;
--4、列出入职日期早于其直接上级的所有雇员
select ename from emp where Hiredate>(select Hiredate from emp where ename=emp.ename);
--5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
select emp.*, dept.dname from dept left join on emp where emp.deptno=dept.deptno;
--6、列出所有“CLERK”(办事员)的姓名及其部门名称
select ename,dname form dept,
(select ename,jop form emp where job='办事员')a
where a.deptno=dept.deptno;
select ename,dname from emp left join dept on emp.deptno=dept.deptno where job='';
--7、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
select job, min(sal) from emp group by job having min(sal)>1500;
--8、列出从事“SALES”(销售)工作的雇员的姓名,及部的部门编号
select ename,dnaem from emp where deptno=(select deptno from dept where dname='销售');
--9、列出薪金高于公司平均水平的所有雇员
select ename from emp where sal> (select avg(sal) from emp );
--10、列出与“SCOTT”从事相同工作的所有雇员
select enmame from emp where jop=(select jop from emp where ename='scott');
--11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
select ename,sal from emp where sal in(select sal from emp where deptno=30);
--12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金
select ename,sal from emp where sal>(select max(sal) from emp where deptno=30);
--13、列出每个部门的信息以及该部门中雇员的数量
select a.shu,dept.* from dept left join
(select deptno,count(1) as shu from emp group deptno) a
on dept.deptno=a.deptno;
---select dname,deptno,loc,a.shu from detp,
--(select deptno,count(1) as shu from emp group by deptno) a
-- where a.deptno=dept.deptno;
--当部门没有人的时候查不出来;
--14、列出所有雇员的雇员名称、部门名称和薪金
select emp.ename,dept.dname,emp.sal from emp left join dept on emp.deptno=dept.deptno;
--16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员
select dept.*,a.mun from dept left join
(select deptno,count(1) mun from emp group by deptno) a
on dept.deptno=a.deptno;
--17、列出各种类别工作的最低工资
select job,min(sal) from emp group by job;
--18、列出各个部门的MANAGER(经理)的最低薪金
select deptno,min(sal) from emp where job='经理'group by deptno;
--19、列出按年薪排序的所有雇员的年薪
select sal*12 as ysal from emp order by ysal asc;
--20、列出薪金水平处于第四位的雇员
rank() over 加了一个序列;
select * from (select ename,sal,rank() over(order by sal desc) as pm from emp) a where a.pm=4;
select deptno,count(*) from emp group by deptno having count(*)>=1;
-- 2、列出薪金比"SMITH"多的所有雇员
select ename,sal from emp where sal>(select sal from emp where ename='smith');
--3、列出所有雇员的姓名及其工作地点
select Loc,ename form emp,dept where dept.deptno=emp.deptno;
select dept.loc a.ename from dept,
(select deptno,ename from emp)a
where a.deptno=dept.deptno;
--4、列出入职日期早于其直接上级的所有雇员
select ename from emp where Hiredate>(select Hiredate from emp where ename=emp.ename);
--5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
select emp.*, dept.dname from dept left join on emp where emp.deptno=dept.deptno;
--6、列出所有“CLERK”(办事员)的姓名及其部门名称
select ename,dname form dept,
(select ename,jop form emp where job='办事员')a
where a.deptno=dept.deptno;
select ename,dname from emp left join dept on emp.deptno=dept.deptno where job='';
--7、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
select job, min(sal) from emp group by job having min(sal)>1500;
--8、列出从事“SALES”(销售)工作的雇员的姓名,及部的部门编号
select ename,dnaem from emp where deptno=(select deptno from dept where dname='销售');
--9、列出薪金高于公司平均水平的所有雇员
select ename from emp where sal> (select avg(sal) from emp );
--10、列出与“SCOTT”从事相同工作的所有雇员
select enmame from emp where jop=(select jop from emp where ename='scott');
--11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
select ename,sal from emp where sal in(select sal from emp where deptno=30);
--12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金
select ename,sal from emp where sal>(select max(sal) from emp where deptno=30);
--13、列出每个部门的信息以及该部门中雇员的数量
select a.shu,dept.* from dept left join
(select deptno,count(1) as shu from emp group deptno) a
on dept.deptno=a.deptno;
---select dname,deptno,loc,a.shu from detp,
--(select deptno,count(1) as shu from emp group by deptno) a
-- where a.deptno=dept.deptno;
--当部门没有人的时候查不出来;
--14、列出所有雇员的雇员名称、部门名称和薪金
select emp.ename,dept.dname,emp.sal from emp left join dept on emp.deptno=dept.deptno;
--16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员
select dept.*,a.mun from dept left join
(select deptno,count(1) mun from emp group by deptno) a
on dept.deptno=a.deptno;
--17、列出各种类别工作的最低工资
select job,min(sal) from emp group by job;
--18、列出各个部门的MANAGER(经理)的最低薪金
select deptno,min(sal) from emp where job='经理'group by deptno;
--19、列出按年薪排序的所有雇员的年薪
select sal*12 as ysal from emp order by ysal asc;
--20、列出薪金水平处于第四位的雇员
rank() over 加了一个序列;
select * from (select ename,sal,rank() over(order by sal desc) as pm from emp) a where a.pm=4;
相关文章推荐
- 阿里巴巴的Oracle DBA笔试题参考答案 - 数据库基本概念类
- c#笔试题目与参考答案
- javascript的笔试题目(共17道)附参考答案
- 2012届华为上机考试题目与参考答案
- 2012届华为校园招聘上机考试题目与参考答案
- 详解华为java华为面试题(转自suningin,个人补充了部分题目参考答案)
- 期中测验题目及参考答案 类-对象-运算符重载
- 2007年9月全国计算机等级考试三级数据库技术参考答案
- 中科大近几年上机操作题目及参考答案(1)
- lamp小项目实施题目及参考答案
- c#笔试题目与参考答案(1)
- c#笔试题目与参考答案(8)
- c#笔试题目与参考答案(5)
- 数据库基础知识参考试题及答案解析
- c#面试题目与参考答案(10)
- 数据库笔试题(含参考答案)
- c#笔试题目与参考答案(4)
- 我的第一次数据库作业:题目原文及部分答案
- 数据库笔试题(含参考答案) 1
- 期中测验题目及参考答案 类-对象-运算符重载