Oracle SQL与函数精华:单行函数与NULL处理

需积分: 10 3 下载量 134 浏览量 更新于2024-08-02 收藏 85KB DOC 举报
"ORACLE中的经典SQL及函数" 在Oracle数据库管理中,SQL(Structured Query Language)和PL/SQL是核心工具,用于数据查询、管理和操纵。本资源主要聚焦于两个关键方面:ORACLE常用经典SQL查询和Oracle最常用功能函数的经典汇总。 **一、ORACLE常用经典SQL查询** SQL查询是获取、分析数据库信息的基础。以下是一些常见的SQL子句: 1. **SELECT**:用于从表中选择特定的列和行。示例中展示了如何使用SELECT语句结合单行函数TO_CHAR、UPPER和SOUNDEX。TO_CHAR用于格式化日期,UPPER将文本转换为大写,SOUNDEX则用于根据发音对文本进行排序。 2. **WHERE**:用于过滤满足特定条件的行。在示例中,WHERE子句用于筛选以"AL"开头的名字。 3. **ORDER BY**:用于按指定列对结果集进行排序。示例中,SOUNDEX函数被用作排序依据。 **二、Oracle最常用功能函数** Oracle提供了一系列内置函数,用于处理不同类型的数据: 1. **单行函数**:作用于单个数据项。包括字符函数(如TO_CHAR、UPPER)、数字函数、日期函数以及转换和混合型函数。这些函数可在多种SQL语句中使用,如SELECT、WHERE、ORDER BY等。 2. **NULL处理**:在SQL中,NULL代表未知或无值。大多数运算符与NULL操作时,结果也是NULL。但有些函数如CONCAT、DECODE、DUMP、NVL和REPLACE能处理NULL值。NVL函数尤其重要,它在第一个参数为NULL时返回第二个参数的值,否则返回第一个参数。 **实例:计算总补偿** 在数据库表`emp`中,存在`salary`(薪水)和`bonus`(奖金)两列。计算员工的总补偿时,如果奖金为NULL,直接相加会得到NULL。为此,可以使用NVL函数确保在奖金为空时将其替换为0,从而避免计算错误。正确的更新语句如下: ```sql UPDATE emp SET salary = (salary + NVL(bonus, 0)) * 1.1 ``` 这个语句会将每个员工的工资和非NULL奖金的10%作为额外的补偿添加到原始工资上。如果奖金为NULL,NVL函数会将奖金设为0,保证了计算的准确性。 总结来说,理解和熟练运用ORACLE中的经典SQL查询和函数是数据库管理的关键技能,它们能够帮助我们高效地检索、处理和分析数据。无论是基本的查询操作还是复杂的逻辑判断,掌握这些函数和技巧都能极大地提升工作效率。