ORACLE 06 SELECT高级查询

xiaoxiao2021-02-28  59

一、实验目的 1.掌握SELECT语句的多表连接查询。 2.掌握SELECT语句的子查询。 二、实验内容 1.根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: (1)查询所有工种为CLERK的员工的姓名及其部门名称。 (2)查询所有部门及其员工信息,包括那些没有员工的部门。 (3)查询所有员工及其部门信息,包括那些还不属于任何部门的员工。 (4)查询在SALES部门工作的员工的姓名信息。 (5)查询所有员工的姓名及其直接上级的姓名。 (6)查询入职日期早于其上级领导的所有员工的信息。 (7)查询从事同一种工作但不属于同于部门的员工信息。 (8)查询10号部门员工及其领导的信息。 (9)使用UNION将工资大雨2500的雇员信息与工作为ANALYST的雇员信息合并。 (10)通过INTERSECT集合运算,查询工资大于2500,并且工作为ANALYST的雇员信息。 (11)使用MINUS集合查询工资大于2500。但工作不是ANALYST的雇员信息。 (12)查询工资高于公司平均工资的所有员工信息。 (13)查询与SMITH员工从事相同工作的所有员工信息。 (14)查询工资比SMITH员工工资高的所有员工信息。 (15)查询比所有在30号部门中工作的员工的工资都高的员工姓名和工资。 (16)查询部门人数大于5的部门的员工信息。 (17)查询所有员工工资都大于2000的部门的信息。 (18)查询人数最多的部门信息。 (19)查询至少有一个员工的部门信息。 (20)查询工资高于本部门平均工资的部门信息。 (21)查询工资高于本部门平均工资的员工信息及其部门的平均工资。 (22)查询每个员工的领导所在部门的信息。 (23)查询平均工资低于2000的部门及其员工信息。

三、实验环境 虚拟机下的windows xp和oracle 10g。 四、实验步骤 (1)查询所有工种为CLERK的员工的姓名及其部门名称。

(2)查询所有部门及其员工信息,包括那些没有员工的部门。

(3)查询所有员工及其部门信息,包括那些还不属于任何部门的员工。

(4)查询在SALES部门工作的员工的姓名信息。

(5)查询所有员工的姓名及其直接上级的姓名。

(6)查询入职日期早于其上级领导的所有员工的信息。

(7)查询从事同一种工作但不属于同于部门的员工信息。

(8)查询10号部门员工及其领导的信息。

(9)使用UNION将工资大于2500的雇员信息与工作为ANALYST的雇员信息合并。

(10)通过INTERSECT集合运算,查询工资大于2500,并且工作为ANALYST的雇员信息。

(11)使用MINUS集合查询工资大于2500。但工作不是ANALYST的雇员信息。

(12)查询工资高于公司平均工资的所有员工信息。

(13)查询与SMITH员工从事相同工作的所有员工信息。

(14)查询工资比SMITH员工工资高的所有员工信息。

(15)查询比所有在30号部门中工作的员工的工资都高的员工姓名和工资。

(16)查询部门人数大于5的部门的员工信息。

(17)查询所有员工工资都大于2000的部门的信息。

(18)查询人数最多的部门信息。

(19)查询至少有一个员工的部门信息。

(20)查询工资高于本部门平均工资的部门信息。

(21)查询工资高于本部门平均工资的员工信息及其部门的平均工资。

(22)查询每个员工的领导所在部门的信息。

(23)查询平均工资低于2000的部门及其员工信息。

五、总结 (说明实验过程中遇到的问题及解决办法;新发现或个人的收获;未解决/需进一步研讨的问题或建议新实验方法等) 1、 SQL> select ENAME,DEPTNO 2 from scott.emp 3 where job=’CLERK’; 2、

select dname,ename from scott.dept LEFT JOIN scott.emp ON dept.deptno=emp.deptno; 3、 select ename,dname from scott.dept,scott.emp where dept.deptno(+)=emp.deptno;

4、 select ename,dname from scott.emp e,scott.dept d where d.dname=’SALES’ and d.deptno = e.deptno;

select ename from scott.emp where deptno in (select deptno from scott.dept where dname=’SALES’); 5、 select a.ename,b.ename as mrgname from scott.emp a,scott.emp b where a.mgr=b.empno;

select a.ename,b.ename as mrgname from scott.emp a,scott.emp b where a.mgr=b.empno(+);

6、 select a.* from scott.emp a,scott.emp b where a.mgr=b.empno AND a.hiredate

转载请注明原文地址: https://www.6miu.com/read-56692.html

最新回复(0)