定义:
-
空值:表示一个空字符或零长度的字符串,可以使用空引号
""
来表示; -
NULL
值:MySql中,NULL表示缺少一个已知或适当的值。 除了整数类型的列外,所有其他类型的列(包括字符串、日期、时间和二进制类型)都可以包含NULL值。
区别:
- 空值是已经被定义了的值,但在具体情况下没有实际的值填入;而NULL值表示该值不存在或未知,也即没有定义。(零和空字符串其实是值,而 NULL 意味着“没有值”。)
- 当使用
IS NOT NULL
或者IS NULL
时,只能查出字段中没有不为NULL
的或者为NULL
的,不能查出空值。 - 判断
NULL
用IS NULL
或者S NOT NULL
,SQL 语句函数中可以使用IFNULL()
函数来进行处理,判断空字符用"="
或者"<"、">"
来进行处理。 - 在进行
COUNT()
统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。
补充:
- 在使用 ORDER BY 进行排序时,对于升序排序,NULL 值会排在其他值之前;对于降序排序,NULL 值会排在其他值之后。
- 在 SQL 中,NULL 值与任何其他值进行比较时都不会为真,即使是 NULL 与 NULL 进行比较也是如此。