MYSQL NULL和 空 区别

MYSQL NULL和 空 区别

  • 首先、mysql处理NULL,是给 NULL字段一个特殊标记、即特殊处理 NULL != “”
    NULL 除了在每行的行首存有 NULL 标志位,实际存储不占有任何空间。如果表中所有字段都是非 NULL,就不存在这个标示位了。
NULL使用上的一些问题。
  • 在 min / max / sum / avg 中 NULL 值会被直接忽略掉
  • 对 NULL 做加减操作,如 1 + NULL,结果仍是 NULL
  • order by 以升序检索字段的时候 NULL 会排在最前面(倒序相反)会排在最前面(倒序相反)
  • group by / distinct 时,NULL 值被视为相同的值
  • 字段是字符时,你无法一目了然的区分这个值到底是 NULL ,还是字符串 ‘NULL’
  • 统计包含 NULL 字段的值,NULL 值不包括在里面
  • 如果你用 length 去统计一个 VARCHAR 的长度时,NULL 返回的将不是数字
为了发际线、提倡不用NULL。尽管索引性能略微高一些。