资讯专栏INFORMATION COLUMN

MySQL™ 参考手册(使用NULL值)

NickZhou / 3401人阅读

使用NULL值

在你习惯之前,NULL值可能会令人惊讶,从概念上讲,NULL表示“缺失的未知值”,并且与其他值的处理方式略有不同。

要测试NULL,请使用IS NULLIS 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中,0NULL表示false,其他任何表示都是true,布尔运算的默认真值为1

GROUP BY中,两个NULL值被视为相等。

在执行ORDER BY时,如果你执行ORDER BY ... ASC,则首先显示NULL值,如果执行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


上一篇:日期计算

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49306.html

相关文章

  • MySQL参考手册(获取有关数据库和表的信息)

    获取有关数据库和表的信息 如果你忘记了数据库或表的名称,或者给定表的结构是什么(例如,它的列被称为什么),该怎么办?MySQL通过几个语句来解决这个问题,这些语句提供有关它支持的数据库和表的信息。 你之前已经看过SHOW DATABASES,它列出了服务器管理的数据库,要找出当前选择的数据库,请使用DATABASE()函数: mysql> SELECT DATABASE(); +---------...

    legendaryedu 评论0 收藏0
  • MySQL参考手册(模式匹配)

    模式匹配 MySQL提供标准的SQL模式匹配以及基于扩展的正则表达式的模式匹配形式,类似于Unix实用程序(如vi、grep和sed)使用的正则表达式。 SQL模式匹配使你可以使用_来匹配任何单个字符,使用%来匹配任意数量的字符(包括零个字符),在MySQL中,SQL模式默认情况下不区分大小写。这里显示了一些例子,使用SQL模式时不要使用=或,请改用LIKE或NOT LIKE比较运算符。 要查找以...

    Donne 评论0 收藏0
  • MySQL参考手册(字面

    字面值 本节描述如何在MySQL中编写字面值,这些参数包括字符串、数字、十六进制和位值、布尔值和NULL,本节还将介绍在MySQL中处理这些基本类型时可能遇到的各种细微差别。 字符串字面值 字符串是一个字节或字符序列,包含在单引号()或双引号()字符中,例如: a string another string 相互相邻的引用字符串连接为单个字符串,下列行是等价的: a string a stri...

    nodejh 评论0 收藏0
  • MySQL参考手册(日期计算)

    日期计算 MySQL提供了几个可用于在日期上执行计算的函数,例如,计算年龄或提取日期的部分。 要确定每只宠物的年龄,请使用TIMESTAMPDIFF()函数,它的参数是你想要表达结果的单位,以及两个可以取差的日期。以下查询显示了每只宠物的出生日期、当前日期和年龄,别名(age)用于使最终输出列标签更有意义。 mysql> SELECT name, birth, CURDATE(), ...

    lx1036 评论0 收藏0
  • MySQL参考手册(计数行)

    计数行 数据库通常用于回答表中某种类型的数据出现频率多少?的问题。例如,你可能想知道你拥有多少只宠物,或每个拥有者拥有多少只宠物,或者你可能想要对你的动物进行各种类型的普查操作。 计算你拥有的动物总数与pet表中有多少行?的问题相同。因为每只宠物有一条记录,COUNT(*)计算行数,因此计算动物的查询如下所示: mysql> SELECT COUNT(*) FROM pet; +---------...

    刘东 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<