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 不确定:不确定