韩顺平老师新版oracle习题3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 假定sales部门有10个雇员,其中9个雇员的工资为1000,另一个雇员的工资为Null,
那么使用avg函数取得该部门的平均工资时,结果应该是多少?
A.1000 B.900
KEY: A
2.以下哪条语句是正确的?
A.SELECT deptno,sum(sal) FROM emp;
B.SELECT deptno,avg(sal) FROM emp WHERE avg(sal)>2000 GROUP BY deptno;
C.SELECT deptno,avg(sal) FROM emp GROUP BY deptno HAVING avg(sal)>2000;
KEY:C
3.如果要显示所有部门及其雇员信息,应该使用哪个语句?
A.SELECT a.dname,b.ename FROM dept a, emp b WHERE a.deptno=b.deptno;
B.SELECT a.dname,b.ename FROM dept a, emp b WHERE a.deptno=b.deptno(+);
C.SELECT a.dname,b.ename FROM dept a, emp b WHERE a.deptno(+)=b.deptno;
key:B
4.以下哪条语句是不正确的?
A.CREATE TABLE employee AS SELECT * FROM emp ORDER BY ename;
B.CREATE VIEW emp_vu AS SELECT * FROM emp ORDER BY ename;
C.SELECT ename,job, sal FROM emp WHERE job in (SELECT job FROM emp WHERE deptno=30 ORDER BY job);
key:C
5.以下哪个集合操作符不会执行排序操作?
A.UNION B.UNION ALL C.INTERSECT D.MINUS
KEY:B
6.使用分组函数和数据分组子句
(1)显示所有雇员的平均工资、总计工资、最高工资、最低工资。
select avg(sal),sum(sal),max(sal),min(sal) from emp;
(2)显示每种岗位的雇员总数、平均工资。
select count(*),avg(sal),job from emp group by job;
(3)显示雇员总数,以及获得补助的雇员数。
select count(*) 总数, count(comm) from emp ;
(4)显示管理者的总人数
select count(distinct mgr) from emp;
(5)显示雇员工资的最大差额
select max(sal)-min(sal) from emp;
(6)显示每个部门每个岗位的平均工资、每个部门的平均工资、每个岗位的平均工资。
select avg(sal),deptno,job from emp group by cube(deptno,job);<--cube会将参数全部组合-->
7使用连接查询完成
(1)显示部门20的部门名,以及该部门的所有雇员名、雇员工资及岗位。
(2)显示获得补助的所有雇员名、补助以及所在部门名。
(3)显示在DALLAS工作的所有雇员名、雇员工资及所在部门名。
(4)显示雇员scott的管理者名。
(5)查询EMP表和SALGRADE 表显示部门20的雇员名、工资及其工资级别。
(6)显示部门10的所有雇员名、部门名以及其他部门名。
(7)显示部门10的所有雇员名、部门名以及其他雇员名。
(8)显示部门10的所有雇员名、部门名,以及其他部门名和雇员名。
8使用子查询完成:
(1)显示BLAKE同部门的所有雇员,但不显示BLAKE.
(2)显示超过平均工资的所有雇员名、工资及其部门号。
(3)显示超过部门平均工资的所有雇员名、工资及部门号。
(4)显示高于CLAERK岗位所有雇员工资的所有雇员名、工资及岗位。
(5)显示工资、补助与scott完全一致的所有雇员名、工资及补助。