Oracle练习与解答:查询部门30员工、办事员信息及佣金高于薪金的员工
4星 · 超过85%的资源 需积分: 10 151 浏览量
更新于2024-08-02
1
收藏 72KB DOC 举报
"Oracle练习题和答案"
在Oracle数据库管理中,熟悉SQL查询是至关重要的,以下的练习题和答案旨在帮助你巩固对SQL语言的理解,特别是针对Oracle数据库系统的使用。
1. **选择特定部门的员工**
练习题:选择部门30中的所有员工。
解答:通过使用`SELECT`语句,可以查询`emp`表中`deptno`字段等于30的所有记录。例如:
```
SELECT * FROM emp WHERE deptno = 30;
```
结果显示了部门30的所有员工,包括他们的员工号、姓名、工作、上级编号、受雇日期、薪金、佣金和部门编号。
2. **按职位筛选员工信息**
练习题:列出所有办事员(CLERK)的姓名、编号和部门编号。
解答:使用`WHERE`子句过滤出`job`字段等于'CLERK'的记录:
```
SELECT empno, ename, deptno FROM emp WHERE job = 'CLERK';
```
这将返回所有职位为办事员的员工的编号、姓名和所在部门。
3. **查找佣金高于薪金的员工**
练习题:找出佣金高于薪金的员工,同时考虑佣金可能为空的情况。
解答:Oracle提供了`NVL`函数,用于处理NULL值。当`comm`字段为空时,将其替换为0再与`sal`进行比较:
```
SELECT * FROM emp WHERE NVL(comm, 0) > sal;
```
`NVL(comm, 0)`确保即使佣金为NULL,也会将其视为0进行比较,这样就能找到所有佣金高于薪金(包括佣金为空但薪金小于0的特殊情况)的员工。
这些练习涵盖了基础的SQL查询操作,包括选择特定列、筛选条件以及处理NULL值。通过这样的练习,你可以提高在Oracle环境中执行数据查询和分析的能力。在实际工作中,熟练掌握这些技巧对于数据查询和报表制作至关重要。记住,不断实践是提升技能的关键,可以尝试设计更多复杂的查询,如联接多表、分组统计、排序和限制结果集等。
点击了解资源详情
140 浏览量
169 浏览量
2021-10-27 上传
140 浏览量
2024-07-15 上传
2022-06-03 上传
1142 浏览量
2024-07-15 上传