打个比方:
空值 '' : 杯子是真空的
NULL : 杯子是装满空气的
NOT NULL 的字段是不能插入“NULL”的,只能插入“空值”
NULL 其实并不是空值,而是要占用空间
,mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响。
is not NULL 不能排除 ‘’ 空值
<> 能够排除 ‘’ 空值
1、在进行
count()
统计某列的记录数的时候,如果采用的NULL
值,系统会自动忽略掉,但是空值是会进行统计到其中的。2、判断
NULL
用IS NULL
或者IS NOT NULL
,SQL
语句函数中可以使用ifnull()
函数来进行处理,判断空字符用=''
或者<>''
来进行处理3、对于
MySQL
特殊的注意事项,对于timestamp
数据类型,如果往这个数据类型插入的列插入
NULL
值,则出现的值是 当前系统时间插入空值,则会出现
0000-00-00 00:00:00
4、对于空值的判断到底是使用
is null
还是=''
要根据实际业务来进行区分。
执行下面的语句可以看到 空值、null、空格 的不同长度
select length(''),length(null),length(' ');