Oracle SQL全攻略:查询、筛选与操作详解

4星 · 超过85%的资源 需积分: 9 18 下载量 121 浏览量 更新于2024-07-26 收藏 71KB DOC 举报
Oracle SQL语句大全是一份全面的文档,涵盖了在Oracle数据库中进行各种操作的SQL指令。该指南详细解释了如何有效地使用SQL语句在emp(员工)、dept(部门)和salgrade(薪水等级)等表中执行查询。 1. **表描述**:文档首先介绍了三个基础表,分别是emp表(包含员工信息),dept表(部门信息),以及salgrade表(薪水等级)。这对于理解后续查询中的字段来源至关重要。 2. **基本查询**:`SELECT * FROM table` 是一个通用的查询语句,用于获取表中的所有数据。在这里,table可以替换为emp、dept或salgrade。 3. **系统表DUAL**:DUAL是Oracle中的一个特殊表,只有一行一列,常用于演示SQL语句的基本语法和简单的计算。例如,`SELECT * FROM dual` 可以用来测试SQL查询语句。 4. **日期和别名**:`SELECT ename, sal * 12 AS 'annulsal' FROM emp`展示了如何使用别名对查询结果的列命名,以及如何进行简单的计算,如年薪的计算。 5. **空值处理**:Oracle SQL中的空值(NULL)在数学表达式中会被视为NULL值,如`SELECT ename, sal * 12 + comm FROM emp`,如果有NULL值参与运算,结果也是NULL。 6. **字符串操作**:使用`||`操作符可以连接字符串,如`SELECT ename || sal FROM emp`将数字转换为字符串。单引号的使用也有所提示,当遇到单引号时,需要用两个单引号包围实际的文本。 7. **去重查询**:`SELECT DISTINCT column_name(s)`可以从表中选择唯一的值,例如`SELECT DISTINCT deptno FROM emp`会返回部门编号的唯一列表,`SELECT DISTINCT deptno, job FROM emp`则去除这两个字段的所有重复组合。 8. **条件筛选**:通过`WHERE`子句可以根据特定条件过滤数据,如`SELECT * FROM emp WHERE ename = 'CLIRK'`获取ename为'CLIRK'的员工记录,`WHERE sal > 1500`用于筛选薪水大于1500的员工。 9. **范围查询**:`BETWEEN`关键字用于匹配处于指定范围内的值,如`SELECT * FROM emp WHERE sal BETWEEN 800 AND 1500`获取薪水在800到1500之间的员工。 10. **排除条件**:`WHERE ... <> ...`用于排除某个条件,如`SELECT * FROM emp WHERE deptno <> 10`选取部门号不等于10的记录,`WHERE ename > 'CBA'`按ASCII码比较,获取名字大于"CBA"的员工。 这些知识点提供了基本的SQL查询结构和在Oracle环境中操作数据的实用技巧,对于初学者和经验丰富的Oracle开发者来说都是有用的参考资料。通过理解和掌握这些内容,可以有效地管理和分析大量的Oracle数据库数据。