SCOTT用户下Oracle查询练习:员工信息与部门分析

需积分: 10 2 下载量 197 浏览量 更新于2024-09-17 收藏 41KB DOC 举报
Oracle基本语法练习涵盖了多个SQL查询场景,旨在帮助学习者熟悉Oracle数据库操作。以下是一些关键知识点的详细解释: 1. **月份倒数第3天的员工**: 这个查询可能使用`DATE_TRUNC('MONTH', DATEADD('MONTH', -3, SYSDATE))`来计算当前月的倒数第三天,然后筛选出在这个日期那天受雇的员工。 2. **早于12年前受雇的员工**: 使用`EXTRACT(YEAR FROM SYSDATE - HIRE_DATE)`来计算服务年限,筛选出超过12年的员工。 3. **姓名首字母大写**: `UPPER(ENAME)`会返回员工姓名的大写版本。 4. **5个字符的员工姓名**: `LENGTH(ENAME) = 5`用于查找姓名长度为5的员工。 5. **不带“R”的员工姓名**: `ENAME NOT LIKE '%R%'`排除名字中含有字母“R”的员工。 6. **员工姓名前三个字符**: `SUBSTR(ENAME, 1, 3)`显示姓名的前三个字符。 7. **'A'替换为'a'**: `REPLACE(ENAME, 'A', 'a')`会将所有的'A'替换为'a'。 8. **满10年服务年限的员工**: `EXTRACT(YEAR FROM SYSDATE - HIRE_DATE) >= 10`筛选服务期满10年的员工。 9. **按姓名排序的员工详细资料**: `ORDER BY ENAME`确保员工信息按姓名升序排列。 10. **排序规则(服务年限、姓名)**: 可能涉及复杂的`CASE`语句或自连接查询,先按服务年限降序,服务年限相同再按姓名升序。 11. **按工作和薪金排序**: `ORDER BY WORKDEPT DESC, SALARY`,首先降序按工作部门,部门相同再按薪金排序。 12. **按受雇日期排序**: 可能使用`MONTHS_BETWEEN`和`MIN`函数来实现最早的入职日期在前。 13. **日薪金处理**: 假设工资已考虑过每月30天,可能直接除以30得到日薪。 14. **2月受聘员工**: `EXTRACT(MONTH FROM HIRE_DATE) = 2`筛选出2月入职的员工。 15. **员工加入公司天数**: 计算`SYSDATE - HIRE_DATE`得出。 16. **姓名包含"A"的位置**: `LIKE '%A%'`检查姓名中是否包含"A"。 17. **服务年限以年月日形式显示**: `TO_CHAR(SYSDATE - HIRE_DATE, 'YYYY-MM-DD')`转换服务年限至特定格式。 18. **查询部门及员工信息**: 通过部门关系(如JOIN)获取员工及其上级的信息,并进行排序。 19. **特定职位的员工列表**: 如`WHERE WORK = 'CLERK'`,或者通过部门编号找到"SALES"部员工。 20. **薪金比较**: 比较某员工(如SMITH)的薪金和其他员工的薪金。 21. **薪资高于平均值的员工**: 需计算整个部门或公司的平均薪金,然后筛选。 22. **与特定员工同工种的员工**: `WHERE WORK = (SELECT WORK FROM emp WHERE EMPNO = 'SCOTT')`。 23. **部门30薪金匹配**: 筛选薪金等于部门30平均薪金的员工。 24. **薪金高于部门30的员工**: 类似地,查找薪金高于部门平均值的员工信息。 25. **部门统计信息**: 计算每个部门的员工数量、平均工资和服务年限。 26. **员工姓名、部门和工资**: 获取基本信息的组合,可能涉及分组和聚合函数。 27. **部门详细信息和人数**: 分析部门结构,包括空闲部门。 28. **最低工资查询**: 找到每个工作的最低工资。 29. **部门经理最低薪金**: 可能使用嵌套查询或连接其他表来找出最低工资的经理。 30. **按年薪排序的员工工资**: `ORDER BY (SALARY * 12)`,将年薪作为排序依据。 这些练习涵盖了Oracle SQL的基础和进阶操作,通过实践这些查询,学习者可以熟练掌握数据库查询语句和数据处理技巧。