Oracle EMP表入门实战:10个经典查询问题详解

5星 · 超过95%的资源 需积分: 50 16 下载量 163 浏览量 更新于2024-09-19 收藏 21KB DOC 举报
Oracle emp表习题集提供了一系列基础到进阶的SQL查询练习,适合初学者巩固对Oracle数据库的理解。以下是针对emp表的十个经典问题及解决方案: 1. **部门中有多于一个员工的查询**: 使用了JOIN和GROUP BY HAVING子句来找出拥有至少两个员工的部门。查询是通过检查部门表(dept)中不存在emp表中有多个记录(COUNT(*) > 1)的部门号实现的。 2. **高于Smith薪资的员工列表**: 这是一个典型的自连接查询,通过比较每个员工的薪资(sal)与名为'SMITH'的员工薪资,找出薪资更高的员工。 3. **员工及其直接上级姓名**: 通过嵌套SELECT语句,获取每个员工(e1)的姓名和其直接上级(e2)的姓名,条件是e1的经理(mgr)等于e2的empno。 4. **受雇日期早于直接上级的员工**: 联合查询emp表两次,找出雇用日期(e1.hiredate)早于其直接上级(e2)雇用日期的员工。 5. **查找Clerk职位的员工及其部门**: 通过JOIN操作,筛选出job字段包含'Clerk'的员工,并与dept表关联,获取姓名和部门名称。 6. **列出最低薪资超过1500的工作岗位**: 通过DISTINCT关键字获取所有不同且薪资大于1500的工作岗位。 7. **部门信息和无员工部门**: 使用LEFT JOIN连接dept和emp表,保留所有部门信息,即使在emp表中没有对应员工,也能显示出来。 8. **查找销售部(SALES)员工的姓名**: 当不知道部门编号时,先从dept表中筛选出部门名称包含'SALES'的记录,再在emp表中查找相应的员工。 9. **高于平均薪资的员工**: 查询薪资(sal)大于emp表中所有员工平均薪资的员工姓名。 10. **与Scott从事相同工作的员工(排除Scott本人)**: 使用IN操作符,从emp表中选择job字段值在与Scott相同工作(job)的员工列表中的所有员工,但不包括Scott本人。 这些题目涵盖了Oracle SQL的基础操作,如JOIN、子查询、聚合函数以及条件筛选,对于理解数据库查询语句结构和逻辑有很好的实战作用。通过解决这些问题,学习者可以提升对Oracle emp表数据操作的熟练度。