韩顺平老师新版oracle习题3

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完全一致的所有雇员名、工资及补助。

相关文档
最新文档