本文简述
此书下载方法:加入群技术交流群(免费)699712384,文件夹为ORACLE官方文档中
CSDN技术网址
简书技术网址
ORACLE官网教程地址
书名:中文名:《SQL语言参考笔记》
英文名:《SQL Language Reference》
作者:二次猿
时间:阅读于2018年3月21日
准备工作:详情见:具体可以参考简书和二次猿公众号常用表
注意事项:跳过基本概念和非重要内容,重点举例说明,并且加粗,部分内容可能在其他章节会再次详细介绍,表格如果排版不美观,可以复制到excle进行直观展示,代码部分根据实际情况注释和说明
null
如果行中的列没有值, 则表示该列为null, 或者包含 null。null 可以出现在任何不受NOT
NULL
或PRIMARY
KEY
完整性约束限制的数据类型的列中。当实际值未知或值没有意义时, 请使用 null。
Oracle 数据库将长度为零的字符值视为 null。但是, 不要使用 null 表示零的数值, 因为它们不是等价的。
注意:
Oracle 数据库当前将长度为零的字符值视为 null。 但是, 在将来的版本中可能不会继续这样做, Oracle 建议您不要将空字符串视为 null。任何包含 null 的算术表达式总是计算为 null。例如, 添加到10的 null 为 null。实际上, 当给定 null 操作数时, 所有运算符 (串联除外) 都返回 null。
SQL 函数中的 null
有关 sql 函数中的 null 处理的信息, 请参见"sql 函数中的 null".
具有比较条件的空值
若要测试 null, 请只使用比较条件IS
NULL
,IS
NOT
NULL
。如果使用 null 的任何其他条件, 并且结果取决于空值, 则结果为UNKNOWN
。由于 null 表示缺少数据, 因此 null 不能等于或不相等于任何值或其他 null。但是, 在计算DECODE
函数时, Oracle 认为两个空值相等。有关语法和其他信息, 请参阅解码。
如果在复合键中出现, Oracle 还认为两个空值相等。即, 如果键的所有非 null 组件相等, 则 Oracle 认为包含 null 的两个复合键是相同的。
条件中为空
计算结果为UNKNOWN
的条件几乎与FALSE
类似。例如, SELECT
语句的WHERE
子句中的条件在计算为UNKNOWN
时不返回任何行。但是, 评估UNKNOWN
的条件与FALSE
不同, 因为UNKNOWN
条件计算的进一步操作将计算为UNKNOWN
。因此,NOT
FALSE
计算为TRUE
, 但NOT
UNKNOWN
计算为UNKNOWN
.
表 3-20显示了在条件中包含 null 的各种评估的示例。如果在SELECT
语句的WHERE
子句中使用了计算为UNKNOWN
的条件, 则不会为该查询返回任何行。
表3-20 包含 null 的条件
条件 | 值的 | 评价 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
有关显示包含 null 的逻辑条件结果的事实数据表, 请参见表 7-5、表 7-6和表 7-7.