如何打敗坑神 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 的驚喜!