何謂 Null 空值?
Null 為空值,即無任何資料,不佔任何儲存空間,拿來計算會出錯。
-
空值說明
- 主索引鍵 欄位設為不允許
Null bit欄位設為不允許Null,因不是 0 就是 1int/decimal數字欄位設為不允許Null- 主檔的外來鍵關聯欄位 設為不允許
Null - 避免
NULL產生可設定 預設值 T-SQL語法中可使用IS [NOT] NULL來判斷是否NULLT-SQL語法中可使用ISNULL(陳述式1, 陳述式2)來避免NULL值的出現T-SQL語法中可使用NULLIF(陳述式1, 陳述式2)來顯示兩陳述式值若相同則出現NULL,反之出現陳述式1的值

- 主索引鍵 欄位設為不允許
-
在
ASP.NET MVC Core中的建議bit為布林值, 不允許Nullint,decimal為數值,不允許Nulldate,datetime一定要輸入的為不允許Null, 不一定要輸入的則允許Null
日期資料需判斷有些需填(如: 員工基本資料的到職日期必填),有些可不填(如: 離職日期無法預知所以可以為NULL)
Default 預設值
為了避免 NULL 產生時可設定預設值,不同的資料型別其預設值不同。
| 資料類型 | 預設值 | 說明 |
|---|---|---|
文字(如 char) | space(0) | 空白 |
'M' | 一個 M 字元 | |
數字(如 int) | 0 | 數值 0 |
100 | 數值 100 | |
布林(如 bit) | 0 | False 假 |
1 | True 真 | |
日期(如 date) | getdate() | 系統日期 |
'2023-01-01' | 指定2023/01/01 |
實作:
使用 DataTypeDemo 資料表。
-
chardata預設值給字元M

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

-
修改數值資料型別為不允許空值,但須給預設值
bitdata預設值: 0, bit 資料不是 0 就是 1

intdata預設值: 0,

decimaldata預設值: 100.05

- 存檔
- 輸入欄位
chardata為空白資料按下Enter後

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