MYSQL | 'NULL' 对查询的影响

在创建表时,经常要给某些列设置 NOT NULL 的约束。可是为什么我们尽量不使用 NULL 呢?这里记录几个简单的例子

一、排重时

在使用 DISTINCT 时,NULL 也被视为一类数据,NULL 存在于多行中时,也会被合并为一条 NULL 的数据.

二、算术运算

所有包含 NULL 的计算,结果必然是 NULL。如:

1)5 + NULL

2)1 * NULL

3)NULL / 0 (数字除以 0 会报错,只有 NULL 除以 0 结果仍然是 0)

三、比较运算

因为 NULL是不确定值,所以 SQL 无法判断其是否符合条件,故不会入选。如:

SELECT  
    student_id,
    student_name
FROM
    Studens
WHERE
    student_id <>10;

若有同学的 student_id 为空(NULL),无法判断是否为 10,所以改同学不会被取出(只会取出 SQL 已知 student_id 不等于 10 的记录)

四、逻辑运算

NULL 的存在,会使 逻辑运算除了 TRUE 与 FALSE,增加第三种值:NUKNOWN(不确定)

其中需要注意的情况是:

1)真 AND 不确定:不确定

2)假 AND 不确定:假

3)真 OR 不确定:真

4)假 OR 不确定:不确定

原文地址:https://www.cnblogs.com/ykit/p/15543637.html