Oracle SELECT查询实战:经典题目与解答

需积分: 4 1 下载量 70 浏览量 更新于2024-09-12 收藏 10KB TXT 举报
"Oracle SELECT查询练习" 在Oracle数据库中,SELECT语句是用于从表中检索数据的关键命令。以下是一些关于SELECT查询的经典练习题目及其解答: 1. 查询部门编号为20的所有员工信息: 使用WHERE子句指定条件`deptno=20`来过滤出属于部门20的员工记录。 2. 查询佣金大于薪水的员工信息: 这个查询使用`comm>sal`作为条件,找出佣金大于其薪水的员工。 3. 查询佣金超过薪水的20%的员工信息: 通过`comm>sal*0.2`,我们可以找到那些佣金超过他们薪水20%的员工。 4. 查询部门10中的经理(MANAGER)或部门20中的职员(CLERK): 使用OR逻辑运算符连接两个条件 `(deptno=10 and job='MANAGER')` 和 `(deptno=20 and job='CLERK')`,可以找出特定职位的员工。 5. 查询非经理(MANAGER)和非职员(CLERK),且薪水大于等于2000的员工: `NOT IN`操作符用于排除特定职位,并且`AND`连接的`sal>=2000`确保了薪水的限制。 6. 查询有佣金的员工信息: 使用`IS NOT NULL`检查`comm`字段不为空,从而筛选出有佣金的员工。 7. 计算员工的总薪酬(包括基本工资和佣金): `NVL`函数用于处理可能为NULL的佣金字段,将NULL值替换为0,然后加到`sal`上计算总薪酬。 8. 查询没有佣金或佣金小于100的员工信息: `OR`逻辑运算符结合`IS NULL`和`<100`,找到无佣金或佣金不足100的员工。 9. 查询工作满10年的员工信息: `(sysdate-hiredate)/365>=10`计算工作年数,当大于等于10时,表示该员工已工作满10年。 10. 将员工名字首字母大写,其余小写: `INITCAP`函数用于将每个单词的首字母转换为大写,而`UPPER`和`LOWER`则分别用于将字符串的首字符转换为大写,其余字符转换为小写。 11. 按年份和月份排序显示员工姓名、入职日期: 使用`TO_CHAR`函数格式化`hiredate`为年('yyyy')和月('MM'),然后根据年份和月份进行排序。 12. 查询二月份入职的员工信息: 使用`TO_CHAR(hiredate, 'MM')='02'`来匹配所有在2月份入职的员工。 13. 显示员工姓名和入职日期距离当前的天数,以年、月、日的形式展示: 使用`FLOOR`和`MOD`函数计算出距离当前的年、月、日数,然后拼接成字符串显示。 这些练习涵盖了基础的查询技巧,如条件过滤、逻辑运算、函数应用以及日期操作,对理解Oracle SQL的使用非常有帮助。通过这些练习,你可以熟练掌握如何从数据库中提取所需信息。