① MySQL資料庫的表中 NULL 和 空值 到底有什麼區別呢
NULL 和 空值 在MySQL資料庫的表中,往往被誤解為相似的概念。實際上,它們之間存在顯著的區別。本文將淺談NULL與空值的區別。
首先,NULL表示欄位中存儲的值為NULL狀態,而空字元串值表示欄位中存儲的是空字元('')。
通過測試可以看出,字元串空值('')的長度是0,不佔用空間,而NULL值的長度是NULL,實際佔用空間。NULL列在行中需要額外空間記錄值是否為NULL。
NULL值和空值的插入方式也不同。NULL值查詢通常使用is NULL,而空值('')查詢可以使用=、!=、等算術運算符。
在count()統計函數中,NULL值不會被計算在內,而空值('')會被計入。
在實際開發中,NULL值和空值('')的選擇取決於具體業務場景。在沒有特殊需求的情況下,建議使用空字元串值('')。
總結來說,NULL與空值('')在MySQL資料庫中各自有著獨特的意義與用途。理解它們的區別,有助於在編寫代碼時更加精準地處理數據。
② 資料庫中空值的含義
資料庫中空值的含義, 就是相當於 「不知道」 的含義。
例如有一個 員工表。
包含下面這些列:
員工代碼 NOT NULL,
員工姓名 NOT NULL,
員工生日,
員工籍貫,
......
其中, 員工代碼 與 員工姓名 是 非空的, 那麼必須有數據。 不能說 「不知道」。
而 員工生日 與 員工籍貫 是 可以為空的, 那麼 允許不寫數據, 也就是 可以 「不知道」
例如數據:
員工代碼 員工姓名 員工生日 員工籍貫
TESTSH01 張三 NULL 上海
TESTSH02 李四 1988-8-8 NULL