您的位置:首页 > 数据库 > MySQL

5、MySQL 8.0参考手册 3.3.4.6使用NULL值

2018-03-19 13:39 344 查看

3.3.4.6使用NULL值

NULL
您习惯之前,这个值可能会令人惊讶。从概念上来说,
NULL
意思是 “ 缺少一个未知的价值 ”,它与其他价值观有所不同。要进行测试
NULL
,请使用 
IS NULL
IS NOT NULL
运营商,如下所示:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
|         0 |             1 |
+-----------+---------------+
你不能使用算术比较操作符,如 
=
, 
<
或 
<>
以测试
NULL
。为了证明这一点,请尝试以下查询:
mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
|     NULL |      NULL |     NULL |     NULL |
+----------+-----------+----------+----------+
因为任何算术比较的结果 
NULL
也是这样
NULL
,你不能从这种比较中获得任何有意义的结果。在MySQL中,
0
或者
NULL
 意味着false和其他任何事情都意味着真实。布尔操作的默认真值是
1
。这种特殊的处理方式
NULL
就是为什么在上一节中,有必要确定哪些动物不再活着,
death IS NOT NULL
而不是使用
death <> NULL
。a中的两个
NULL
值被认为是相等的 
GROUP BY
。在做时
ORDER BY
NULL
如果你这样做, 价值观首先被呈现,如果你这样做
ORDER BY ... ASC
,则 首先呈现值 
ORDER BY ... DESC
。处理时的一个常见错误
NULL
是假设不可能将零或空字符串插入定义为的列中
NOT NULL
,但事实并非如此。这些实际上是价值,而 
NULL
意味着“ 没有价值。“你可以使用
IS [NOT] NULL
如下所示的方式轻松测试 :
mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
+-----------+---------------+------------+----------------+
| 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
+-----------+---------------+------------+----------------+
|         0 |             1 |          0 |              1 |
+-----------+---------------+------------+----------------+
因此,完全可以在列中插入一个零或空字符串
NOT NULL
,因为实际上这些字符串是可能的
NOT NULL
。本文由北大青鸟学校开发小组翻译
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: