Oracle SQL练习题集:员工与部门管理
需积分: 9 66 浏览量
更新于2024-07-19
收藏 483KB PDF 举报
"ORACLE_SQL练手.pdf"
这篇文章主要介绍了如何使用Oracle SQL进行一系列查询操作,涵盖了从基础的SELECT语句到更复杂的联接、聚合函数和子查询的应用。以下是各个练习的问题和对应的SQL知识点:
1. 列出至少有一个员工的所有部门。
- 使用INNER JOIN或LEFT JOIN连接EMP和DEPT表,通过WHERE子句过滤没有员工的部门。
2. 列出薪金比“SMITH”多的所有员工。
- 使用比较运算符(>)和WHERE子句筛选薪金大于SMITH的员工。
3. 列出所有员工的姓名及其直接上级的姓名。
- 需要找到每个员工的上级ID,然后再次查询EMP表获取上级的姓名,可能需要用到自连接。
4. 列出受雇日期早于其直接上级的所有员工。
- 结合EMP表中的HIRE_DATE和EMPLOYEE_ID,使用子查询找到上级的HIRE_DATE进行比较。
5. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
- 使用LEFT JOIN确保即使没有员工的部门也会被包含在结果中。
6. 列出所有“CLERK”(办事员)的姓名及其部门名称。
- 在WHERE子句中指定JOB_TITLE等于'CLERK'。
7. 列出最低薪金大于1500的各种工作。
- 使用GROUP BY对工作类型进行分组,然后使用HAVING子句筛选最小工资大于1500的工作。
8. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
- 使用LIKE或INSTR函数在部门名称中搜索“SALES”。
9. 列出薪金高于公司平均薪金的所有员工。
- 使用子查询计算平均工资,然后与主查询的SAL字段比较。
10. 列出与“SCOTT”从事相同工作的所有员工。
- 检查JOB_ID字段是否与SCOTT的相同。
11. 列出与部门30中员工的工作相同的所有员工的姓名和薪金。
- 使用INNER JOIN连接EMP表两次,一次用于部门30的员工,一次用于查找相同工作的人。
12. 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
- 使用子查询找出部门30的最高薪金,然后在主查询中筛选薪金更高的员工。
13. 列出在每个部门工作的员工数量、平均工资。
- 使用GROUP BY按部门分组,然后应用COUNT和AVG函数。
14. 列出所有员工的姓名、部门名称和工资。
- 简单的SELECT语句,包括ENAME, DEPTNAME, SAL字段。
15. 列出所有部门的详细信息和部门人数。
- SELECT * FROM DEPT,并使用COUNT函数计算各部门的员工数。
16. 列出各种工作的最低工资。
- GROUP BY JOB_ID,然后使用MIN函数。
17. 列出各个部门的MANAGER(经理)的最低薪金。
- WHERE子句筛选职务为MANAGER,然后使用MIN函数。
18. 列出所有员工的年工资,按年薪从低到高排序。
- 将SAL字段乘以12得到年薪,然后ORDER BY年薪。
19. 查询每个部门工资前三位的数据。
- 可能需要使用窗口函数RANK()或ROW_NUMBER()来为每个部门的工资排名,然后选择前三位。
后续的问题涉及到更复杂的数据过滤和字符串处理,如查找特定字符、比较不同列、使用BETWEEN运算符等。这些问题继续展示了在Oracle SQL中如何灵活运用不同查询技术来满足特定的数据需求。
2023-04-10 上传
2019-07-09 上传
2021-10-09 上传
2021-10-10 上传
2021-09-19 上传
2021-10-09 上传
2023-06-06 上传
kasuo704
- 粉丝: 0
- 资源: 19
最新资源
- Manning - Spring in Action (2007).pdf
- 食品类公司网站建设方案
- C# 日期函数 string.Format
- SAP财务成本知识库.pdf
- 很好的 学校网站方案
- 第11界全国青少年信息学奥林匹克联赛初赛试题(C语言)
- 协会学会网站建设方案
- 网上书店管理系统详细分析
- 软件需求分析 图形解释的
- S3C44B0X 中文数据手册
- 基于FLAASH的多光谱影像大气校正应用研究
- 基于J2EE的Ajax宝典.pdf
- 如何发表SCI论文,希望对大家有帮助!
- c# 提供面试题大全
- C++ Core 2000
- The MIT Press Essentials of Programming Languages 3rd Edition Apr 2008