Oracle查询语句精华集锦

需积分: 3 2 下载量 119 浏览量 更新于2024-09-20 收藏 20KB DOCX 举报
"这篇文档汇总了Oracle数据库查询中的一些常用SQL语句,涵盖了选择特定条件的记录、比较字段值、组合条件查询、提取独特值、处理空值等多个方面。" 在Oracle数据库管理中,SQL(Structured Query Language)是用于操作和检索数据的主要工具。以下是对给出的Oracle查询命令的详细解释: 1. **选择部门30中的雇员** 这个查询通过`WHERE`子句筛选出`DEPTNO`字段值等于30的雇员记录,即来自部门30的所有员工。 2. **列出所有办事员的姓名、编号和部门** 使用`WHERE`子句过滤出`JOB`字段等于'CLERK'的记录,显示这些办事员的`ENAME`、`EMPNO`和`DEPTNO`字段。 3. **找出佣金高于薪金的雇员** 查询中`WHERE`子句的条件`COMM > SAL`用于找出佣金(`COMM`)超过薪水(`SAL`)的雇员。 4. **找出佣金高于薪金60%的雇员** `WHERE`子句中的`COMM > SAL * 0.6`条件找出佣金至少是薪水60%的雇员。 5. **找出部门10中所有经理和部门20中的所有办事员的详细资料** 这个查询使用`OR`逻辑运算符结合两个`WHERE`子句,分别查找`DEPTNO`为10且`JOB`为'MANAGER',以及`DEPTNO`为20且`JOB`为'CLERK'的记录。 6. **找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料** 该查询利用了复杂的`WHERE`子句,通过多个`OR`和`AND`条件组合,找出满足特定部门和职位要求,以及薪金条件的雇员。 7. **找出收取佣金的雇员的不同工作** `DISTINCT`关键字用于去除重复的工作类型,`WHERE`子句`COMM > 0`确保只选取有佣金的雇员。 8. **找出不收取佣金或收取的佣金低于100的雇员** 使用`NVL`函数处理可能存在的空值,如果`COMM`为空则视为0,然后与100进行比较。 9. **找出各月最后一天受雇的所有雇员** `LAST_DAY`函数用于获取月份的最后一天,`WHERE`子句比较`HIREDATE`和`LAST_DAY(HIREDATE)`,找出那些在当月最后一天入职的雇员。 10. **找出早于25年之前受雇的雇员** `MONTHS_BETWEEN`函数计算两个日期之间的月份数,`WHERE`子句条件`MONTHS_BETWEEN(SYSDATE, HIREDATE) / 12 > 25`找出入职超过25年的雇员。 11. **显示只有首字母大写的所有雇员的姓名** `INITCAP`函数将字符串中的每个单词首字母转换为大写,`WHERE`子句确保`ENAME`字段符合这个规则。 12. **显示正好为6个字符的雇员姓名** `LENGTH`函数计算字符串长度,`WHERE`子句条件`LENGTH(ENAME) = 6`找出名字恰好6个字符的雇员。 13. **显示不带有'R'的雇员姓名** `WHERE`子句中使用否定条件`ENAME NOT LIKE '%R%'`排除含有字符'R'的雇员名字。 这些查询展示了在实际工作中如何根据需求从Oracle数据库中检索和过滤数据,对理解SQL语法和数据库操作具有很好的参考价值。