ORACLE官方SQL语言参考笔记之Oracle SQL的基本元素篇(第三章-第五节-NULL)

本文简述

此书下载方法:加入群技术交流群(免费)699712384,文件夹为ORACLE官方文档中 
CSDN技术网址 
简书技术网址 
ORACLE官网教程地址 
书名:

中文名:《SQL语言参考笔记》

英文名:《SQL Language Reference》

作者:二次猿

时间:阅读于2018年3月21日

准备工作:详情见:具体可以参考简书和二次猿公众号常用表

注意事项:跳过基本概念和非重要内容,重点举例说明,并且加粗,部分内容可能在其他章节会再次详细介绍,表格如果排版不美观,可以复制到excle进行直观展示,代码部分根据实际情况注释和说明


null

如果行中的列没有值, 则表示该列为null, 或者包含 null。null 可以出现在任何不受NOT NULLPRIMARYKEY完整性约束限制的数据类型的列中。当实际值未知或值没有意义时, 请使用 null。

Oracle 数据库将长度为零的字符值视为 null。但是, 不要使用 null 表示零的数值, 因为它们不是等价的。

注意:

Oracle 数据库当前将长度为零的字符值视为 null。 但是, 在将来的版本中可能不会继续这样做, Oracle 建议您不要将空字符串视为 null。

任何包含 null 的算术表达式总是计算为 null。例如, 添加到10的 null 为 null。实际上, 当给定 null 操作数时, 所有运算符 (串联除外) 都返回 null。

SQL 函数中的 null

有关 sql 函数中的 null 处理的信息, 请参见"sql 函数中的 null".

具有比较条件的空值

若要测试 null, 请只使用比较条件IS NULL ,ISNOT NULL如果使用 null 的任何其他条件, 并且结果取决于空值, 则结果为UNKNOWN由于 null 表示缺少数据, 因此 null 不能等于或不相等于任何值或其他 null。但是, 在计算DECODE函数时, Oracle 认为两个空值相等。有关语法和其他信息, 请参阅解码

如果在复合键中出现, Oracle 还认为两个空值相等。即, 如果键的所有非 null 组件相等, 则 Oracle 认为包含 null 的两个复合键是相同的。

条件中为空

计算结果为UNKNOWN的条件几乎与FALSE类似。例如, SELECT语句的WHERE子句中的条件在计算为UNKNOWN时不返回任何行。但是, 评估UNKNOWN的条件与FALSE不同, 因为UNKNOWN条件计算的进一步操作将计算为UNKNOWN因此,NOT FALSE计算为TRUE, 但NOTUNKNOWN计算为UNKNOWN.

表 3-20显示了在条件中包含 null 的各种评估的示例。如果在SELECT语句的WHERE子句中使用了计算为UNKNOWN的条件, 则不会为该查询返回任何行。

表3-20 包含 null 的条件

条件 值的 评价

a IS NULL

10

FALSE

a IS NOT NULL

10

TRUE

a IS NULL

NULL

TRUE

a IS NOT NULL

NULL

FALSE

a = NULL

10

UNKNOWN

a != NULL

10

UNKNOWN

a = NULL

NULL

UNKNOWN

a != NULL

NULL

UNKNOWN

a = 10

NULL

UNKNOWN

a != 10

NULL

UNKNOWN


有关显示包含 null 的逻辑条件结果的事实数据表, 请参见表 7-5表 7-6表 7-7.

猜你喜欢

转载自blog.csdn.net/huyingzuo/article/details/80334739