如何打败坑神 Null

本文标识 : 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 的惊喜!