Oracle查询语句实践与技巧

需积分: 3 2 下载量 173 浏览量 更新于2024-09-09 1 收藏 46KB DOC 举报
"Oracle笔记" 这篇Oracle笔记主要涵盖了SQL查询的基础操作,通过实例展示了如何使用Oracle数据库进行数据查询和过滤。以下是对这些知识点的详细说明: 1. **查询条件过滤**:在SQL中,我们可以使用`WHERE`子句来指定查询的条件,例如`WHERE salary > 12000`,这将返回所有工资大于12000的员工的姓名和工资。 2. **基于特定字段的查询**:如`WHERE employee_id = 176`,这将返回员工号为176的员工的姓名和部门号。 3. **不满足范围条件的查询**:`WHERE salary NOT BETWEEN 5000 AND 12000`用于选取工资不在5000到12000之间的员工的姓名和工资。 4. **日期范围查询**:`WHERE hire_date BETWEEN '1-2月-1998' AND '1-5月-1998'`可以找到特定日期区间内雇用的员工,注意Oracle中的日期格式通常为'YYYY-MM-DD',但这里的格式可能是用户自定义的。 5. **多值条件查询**:`WHERE department_id IN (20, 50)`用于选取在特定部门(如20号或50号)工作的员工的姓名和部门号。 6. **模糊匹配查询**:`WHERE hire_date LIKE '%-94'`用于选取1994年雇用的员工,这里的`LIKE`关键字结合通配符`%`实现了年份部分的模糊匹配。 7. **空值判断**:`WHERE manager_id IS NULL`可以找出没有直接上级(即没有管理者)的员工的姓名和职位ID。 8. **非空值查询**:`WHERE commission_pct IS NOT NULL`用于选取有奖金的员工,显示他们的姓名、工资和奖金百分比。 9. **字符串模式匹配**:`WHERE last_name LIKE '__a%'`选取名字第三个字母是'a'的员工,`LIKE`关键字配合通配符`_`表示单个字符,`%`表示任意数量的字符。 10. **复合条件查询**:`WHERE last_name LIKE '%a%' AND last_name LIKE '%e%'`选取姓名中同时包含字母'a'和'e'的员工。 11. **获取当前系统时间**:`SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd')`显示系统当前日期,`TO_CHAR`函数用于将日期转换为指定格式的字符串。 这些基础查询是Oracle数据库操作的基础,对于理解和处理日常的数据查询任务至关重要。通过练习和掌握这些技能,可以有效地从Oracle数据库中提取所需信息。