如何打败坑神 Null
- 2020 年 1 月 2 日
- 筆記
本文标识 : MQ0011
本文编辑 : 长安月下赏美人儿
编程工具 : MySQL
阅读时长 : 3分钟
在现实工作中,经常会遇到一个神奇的字眼 “NULL",这是啥?它有啥用?啥时候用?怎么用?着实令人头秃!!!
小编用目前浅薄的知识储备,来分享对 NULL 的理解!
1、NULL 的含义
Null 在数据库中表示“不知道的数据”,主要有3种意思:
(1)知道数据存在,但不知道具体值
(2)不知道数据是否存在
(3)数据不存在
2、NULL 和空值区别
(1)关于空间占用
- NULL,占用空间
- 空值,不占空间
举个例子吧,一个透明的塑料袋,那么
空值:表示塑料袋真空状态,没放东西,平平扁扁易收纳;
NULL:表示塑料袋里有空气,没放东西,但鼓鼓的充满空气,占地方。
(2)关于正确书写
- null,用 is 与 is not 例:select name from tbl_name where sex is null;
- 空值,用 = 与 <> 例:select name from tbl_name where sex =' ';
3、当其他语句遇到NULL
CONCAT 遇到 NULL:
- 当连接一个没有限定为空值的数列,则结果为 null
- 例子,select concat(‘a城市',null),显示结果为 null
COUNT 遇到 NULL:
- 会优先将 null 排除
- 例子,某数据共有128行数据,其中字段 price 有一个 null 值 则,count(price)=127、count(*)=128
AVG 遇到 NULL:
- 会优先将 null 排除
- 例子,一列数字1,2,3,4,null,求均值 则,avg=(1+2+3+4)/4
GROUP BY 遇到 NULL:
- 会单独列出一组,专门以 null 分组记录数据
- 例子,price 中含有 3 个数值,2 个数值是 66,一个数值为2,则以 price 为分组依据,则会分为两组,第一组名称为 66 ,第二组名称为 null。
写在后面,还会有很多遇到 null 的情况,如有后续,会继续分享,同时也欢迎小伙伴儿们积极留言讨论,分享遇到 null 的惊喜!