今天总结一下数据库NULL的一些特性。
NULL不等于0,也不等于空字符串,而是一个特殊的标志位。大小是1字节。
NULL不支持比较,无法和数据比较大小。
常见的逻辑:
NULL > 0 返回FALSE。
NULL <0 返回FALSE。
NULL == ‘NULL’,返回FALSE。
NULL == ‘’ ,FALSE
NULL == NULL 返回 FALSE。
NULL != NULL 返回FALSE。
当比较不同值的时候NULL值也不显示。当比较相同值的时候NULL也不显示。
当调用这个字段的时候,必须要 is NULL 或者 is NOT NULL。
当使用GROUP BY 的时候,NULL单独为一组。
当使用表连接的时候,如果关联的键值为NULL,那么左右链接都没有数据。
所以,多表联查索引发现列数不一致,可能是因为关联的列有NULL这个列。
count(*)的时候即使有NULL不影响计数。
即使不允许重复的主键,也允许多个字符串重复为NULL。但是当创建索引的时候,不支持其中有一些列为NULL。