Oracle数据库中空值的默认处理方式(oracle 默认值 空)
随着人们的生活节奏越来越快,大量的信息一代代传承下来,我们需要一种能够解决海量数据这类问题的解决方案,而Oracle数据库便成为了最常用的数据库管理系统之一。Oracle对于空值的处理使用了比较特殊的处理方式,今天就来谈谈 Oracle 数据库中空值的默认处理方式。
Oracle 将 NULL 值看作是未知的值。在两个的表的联结中,NULL值不会参与计算,因此也不会进行任何 AND 或OR操作。NULL 值总是以 False 值来计算,因此NULL与任何值想比较都不会有结果。 下面的代码段说明:
“`sql
SQL> SELECT * FROM emp WHERE comm > 0;
no rows selected
但是运行下面的代码段:
```sqlSQL> SELECT * FROM emp WHERE comm > 0 OR comm is NULL;
id name job mgr hire_date sal comm-- ---- --------- --- --------- ---- ----
77 SCOTT ANALYST 7566 19-APR-87 3000 78 FORD ANALYST 7566 03-DEC-81 3000
79 JONES MANAGER 7839 02-APR-81 2975 80 BLAKE MANAGER 7839 01-MAY-81 2850
以上代码段中,利用OR操作将comm is NULL 加入,即可返回comm为NULL的记录,而如果不加入comm is NULL 条件将不会返回记录,这正好说明了这一原理。
此外,运算符IS NULL 用于查找值为NULL的记录,相反的运算符查找非NULL的记录即IS NOT NULL。
在Oracle中,可以利用NVL和COALESCE函数处理空值,其中 NVL(col, val)函数可以将表中的字段值替换为指定的值val,而COALESCE函数返回第一个非NULL值。
例如:
“`sql
SELECT NVL(comm,0)
FROM emp;
最后,ORACLE数据库中空值的特殊处理,也能用来处理空值插入,只需要使用insert … select with Clause,它可以将两个字段中存在的空值替换成指定的值。
总的来说,ORACLE数据库中空值的特殊处理有很多种,从它的设计中可以看出,它都更着眼于易用性与功能强大。