3.4 NULL值操作

作者: 笑Skr人啊 | 来源:发表于2017-04-07 15:35 被阅读0次

NULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 操作符例如=、<或!=。为了说明它,试试下列查询:

mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
|     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 |
+-----------+---------------+

请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。

  • 对NULL的特殊处理即是在前面的章节中,为了决定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL的原因。

  • 在GROUP BY中,两个NULL值视为相同。

  • 执行ORDER BY时,如果运行 ORDER BY ... ASC,则NULL值出现在最前面,若运行ORDER BY ... DESC,则NULL值出现在最后面。

NULL操作的常见错误是不能在定义为NOT NULL的列内插入0或空字符串,但事实并非如此。在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的列内插入0或空字符串,实际是NOT NULL。

相关文章

  • 3.4 NULL值操作

    NULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了...

  • 《JavaScript高级程序设计》学习(第六天)

    3.4.3Null类型 null值表示一个空对象指针。定义准备用于保存对象的值时最好将变量初始化为null 3.4...

  • Javascript 数据类型Null

    Null类型是只有一个值的数据类型,这个特殊的值为null。 null值表示一个空对象指针,使用typeof操作符...

  • 五、ORACLE高级查询

    消除重复行 DISTINCT NULL 操作 如果某条记录中有缺少数据值,就是空值(null值),空值不等于0或...

  • 空值操作

    oracle中空值操作 1)、null:空值,是数据库中重要的角色。①、null不是数据类型,但是任何类型的数据。...

  • Java中null的注意事项

    1.你可以使用==或者!=操作来比较null值,但是不能使用其他算法或者逻辑操作。 2.null是Java中的关键...

  • HashMap源码详解

    HashMap实现了Map接口,提供对key-value的键值对操作,允许null值和null key。HashM...

  • php7新特性的理解和比较

    null合并运算符(??)??语法: 如果变量存在且值不为NULL,它就会返回自身的值,否则返回它的第二个操作数....

  • 基本包装类型

    (1)值类型:数值、布尔值、null、undefined。 (2)引用类型:对象、数组、函数。 为了方便操作,Ja...

  • 03HashMap源码解析 - 草稿

    HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null...

网友评论

    本文标题:3.4 NULL值操作

    本文链接:https://www.haomeiwen.com/subject/mcphattx.html