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