Oracle数据库练习:scott模式下emp与dept表操作

5星 · 超过95%的资源 需积分: 44 186 下载量 170 浏览量 更新于2024-09-19 2 收藏 52KB DOC 举报
"Oracle数据库练习语句涉及到scott模式下的emp表和dept表,涵盖了多种SQL查询技巧,包括条件过滤、连接查询、函数应用、子查询等。" 在Oracle数据库学习过程中,掌握对scott模式下emp表和dept表的操作至关重要。emp表通常存储员工信息,包括员工编号(empno)、员工姓名(ename)、部门编号(deptno)、职位(job)、薪水(sal)、奖金(comm)、雇佣日期(hiredate)等字段;而dept表则存储部门信息,如部门编号(deptno)和部门名称(dname)。以下是对给定练习题目的详细解释: 1. 查询20号部门的所有员工信息。通过`WHERE`子句指定`deptno = 20`,筛选出对应部门的数据。 2. 查询所有工种为CLERK的员工的工号、员工名和部门名。使用`LIKE`关键字匹配'CLERK',并选择empno、ename和deptno字段。 3. 查询奖金(COMM)高于工资(SAL)的员工信息。利用`WHERE comm > sal`筛选满足条件的记录。 4. 查询奖金高于工资的20%的员工信息。计算`sal * 0.2`作为比较基准,使用`WHERE comm > (sal * 0.2)`进行筛选。 5. 查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。使用`OR`逻辑操作符结合两个条件,用括号分组避免优先级问题。 6. 查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工的详细信息。`NOT IN`操作符排除指定值,并结合`AND`条件检查工资。 7. 查询有奖金的员工的不同工种。使用`DISTINCT`去除重复的职位,同时`WHERE comm IS NOT NULL`确保只选择有奖金的员工。 8. 查询所有员工工资和奖金的和。`NVL`函数处理可能为空的奖金,确保每个员工的总薪资都有值。 9. 查询没有奖金或奖金低于100的员工信息。使用`OR`逻辑操作符结合`IS NULL`和`<`条件。 10. 查询各月倒数第2天入职的员工信息。子查询`SELECT (last_day(hiredate) - 1) FROM emp`找出每个月的倒数第二天,然后在主查询中匹配这个日期。 11. 查询员工工龄大于或等于10年的员工信息。计算`sysdate - hiredate`得到工龄,除以365转换为年,使用`>= 10`进行比较。 12. 查询员工信息,以首字母大写的方式显示所有员工的姓名。`UPPER`函数将第一个字符转为大写,`LOWER`函数处理剩余部分。 13. 查询员工名正好为6个字符的员工信息。这里可能需要完整题目,因为提供的信息不全。 这些练习题覆盖了基础SQL查询的多个方面,对于理解Oracle数据库操作和SQL语言的运用具有很好的实践价值。通过这些练习,可以提升对数据检索、条件过滤、函数应用、子查询和连接操作的理解。