何謂 Null 空值?

Null 為空值,即無任何資料,不佔任何儲存空間,拿來計算會出錯。

  1. 空值說明

    • 主索引鍵 欄位設為不允許Null
    • bit 欄位設為不允許Null,因不是 0 就是 1
    • int/decimal 數字欄位設為不允許Null
    • 主檔的外來鍵關聯欄位 設為不允許Null
    • 避免NULL產生可設定 預設值
    • T-SQL語法中可使用IS [NOT] NULL 來判斷是否 NULL
    • T-SQL語法中可使用ISNULL(陳述式1, 陳述式2)來避免NULL值的出現
    • T-SQL語法中可使用NULLIF(陳述式1, 陳述式2)來顯示兩陳述式值若相同則出現 NULL,反之出現陳述式1的值

  2. 在 ASP.NET MVC Core 中的建議

    • bit 為布林值, 不允許Null
    • int,decimal 為數值,不允許Null
    • date,datetime 一定要輸入的為不允許 Null, 不一定要輸入的則允許 Null
      日期資料需判斷有些需填(如: 員工基本資料的到職日期必填),有些可不填(如: 離職日期無法預知所以可以為NULL)

Default 預設值

為了避免 NULL 產生時可設定預設值,不同的資料型別其預設值不同。

資料類型預設值說明
文字(如 char)space(0)空白
 'M'一個 M 字元
數字(如 int)0數值 0
 100數值 100
布林(如 bit)0False 假
 1True 真
日期(如 date)getdate()系統日期
 '2023-01-01'指定2023/01/01

實作:

使用 DataTypeDemo 資料表。

  1. chardata預設值給字元M

  2. vchardata預設值給字元 。 給 space(0)

  3. 修改數值資料型別為不允許空值,但須給預設值

    • bitdata 預設值: 0, bit 資料不是 0 就是 1
    • intdata預設值: 0,
    • decimaldata 預設值: 100.05
    • 存檔
    • 輸入欄位chardata 為空白資料按下Enter 後

    善用預設值,避免為 NULL值,產生問題。