Oracle数据库查询实践:emp表操作示例

需积分: 37 7 下载量 163 浏览量 更新于2024-09-10 1 收藏 70KB DOC 举报
"Oracle数据库查询练习提供了SQL查询的实例,主要涉及了scott/tiger用户下的emp表和dept表。emp表包含员工信息,如empno(员工号)、ename(员工姓名)、job(工作)、mgr(上级编号)、hiredate(受雇日期)、sal(薪金)、comm(佣金)和deptno(部门编号)。dept表则存储部门信息,包括deptno(部门编号)、dname(部门名称)和loc(地点)。练习内容涵盖不同条件的查询,如工资范围、特定日期区间、部门号等。" 在Oracle数据库中进行查询时,可以使用SQL语言来操作数据。以下是对给定文件中练习题涉及的SQL知识点的详细说明: 1. **筛选条件**:`WHERE`子句用于设置查询条件,如`sal>1200`用来筛选出工资大于1200的员工。 2. **函数使用**:`NVL2()`函数在查询中处理NULL值,例如`NVL2(comm, comm, 0)`,如果`comm`是NULL,则返回0,否则返回`comm`本身的值。 3. **BETWEEN操作符**:`BETWEEN`用于查询介于两个值之间的数据,如`sal BETWEEN 5000 AND 12000`,等价于`sal >= 5000 AND sal <= 12000`。 4. **日期操作**:`TO_DATE()`函数将字符串转换为日期类型,如`to_date('1981-02-01','yyyy-MM-dd')`。`BETWEEN`也可用于日期字段,如查询特定日期范围内的员工。 5. **IN操作符**:`IN`用于查询满足多个可能值之一的记录,如`deptno IN (20, 10)`,表示查询在20号或10号部门的员工。 6. **YEAR函数**:虽然在Oracle中没有内置的`YEAR`函数,但可以使用`TO_CHAR()`函数结合格式化字符串获取年份,如`to_char(hiredate, 'yyyy') = '1987'`。 7. **IS NULL操作符**:`IS NULL`用于查询某个字段值为空,如`mgr IS NULL`找出没有管理者的员工。 8. **比例计算与排序**:在查询中可以进行简单的数学运算,如`comm/sal`计算奖金比例,并使用`ORDER BY`进行排序。`DESC`表示降序,`ASC`表示升序。 通过这些练习,你可以熟悉Oracle SQL的基本查询语法,了解如何对数据进行筛选、排序、计算以及处理NULL值。这些技能对于日常数据库操作和数据分析至关重要。在实际工作中,你可能需要根据不同的业务需求,组合运用这些知识点,编写更复杂的SQL查询语句。