目录
结论
- B树索引时是不存储 NULL 值的,所以如果索引的字段可以为 NULL,索引的效率会下降很多,可以使用 NOT NULL 约束及默认值
- 在 MySQL 中,''为空字符串或者叫做零长度字符串,其数据类型是明确的,它属于字符型。空值是不占用空间的,NULL其实并不是空值,而是要占用空间
- 在进行 count() 统计某列的记录数的时候,如果采用的 NULL 值,系统会自动忽略掉,但是空值是会进行统计到其中的。
- 判断 NULL 用 IS NULL 或者 IS NOT NULL, SQL 语句函数中可以使用 ifnull() 函数来进行处理,判断空字符用 ='' 或者 <>'' 来进行处理
- 对于 MySQL 特殊的注意事项,对于 timestamp 数据类型,如果往这个数据类型插入的列插入 NULL 值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00
- 使用 IS NULL 来判断 NULL ;使用 ='' 来判断0长度字符串。
- 查询空值的运行速度基本上为IFNULL()>is NULL>ISNULL()
相关函数
isnull(parm)
常用在 where 后面,用来判断某字段是否为null,空字符串不为 null
ifnull(parm1,parm2)
类似判断参数是否空的二元函数,如果第一个参数为空,返回第二个参数
select id,ifnull(name, '无名') as name from student
nullif(parm1,parm2)
类似判断参数是否相等的二元函数;如参数相等,返回null;不相等,返回第一个参数值
select id, nullif(id, gender) as gender from student
select id, nullif(name, '张三') as nam