SQL NULL 值– IS NULL 和IS NOT NULL
NULL 值代表遺漏的未知數據。
默認地,表的列可以存放NULL 值。
本章講解IS NULL 和IS NOT NULL 操作符。
SQL NULL 值
如果表中的某個列是可選的,那麼我們可以在不向該列添加值的情況下插入新記錄或更新已有的記錄。 這意味著該字段將以NULL 值保存。
NULL 值的處理方式與其他值不同。
NULL 用作未知的或不適用的值的佔位符。
註釋:無法比較NULL和0;它們是不等價的。
SQL 的NULL 值處理
請看下面的"Persons" 表:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Stavanger |
假如"Persons" 表中的"Address" 列是可選的。 這意味著如果在"Address" 列插入一條不帶值的記錄,"Address" 列會使用NULL 值保存。
那麼我們如何測試NULL 值呢?
無法使用比較運算符來測試NULL 值,比如=、< 或<>。
我們必須使用IS NULL 和IS NOT NULL 操作符。
SQL IS NULL
我們如何僅僅選取在"Address" 列中帶有NULL 值的記錄呢?
我們必須使用IS NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL
WHERE Address IS NULL
結果集如下所示:
LastName | FirstName | Address |
---|---|---|
Hansen | Ola | |
Pettersen | Kari |
提示:請始終使用IS NULL來查找NULL值。
SQL IS NOT NULL
我們如何僅僅選取在"Address" 列中不帶有NULL 值的記錄呢?
我們必須使用IS NOT NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL
WHERE Address IS NOT NULL
結果集如下所示:
LastName | FirstName | Address |
---|---|---|
Svendson | Tove | Borgvn 23 |
在下一節中,我們了解ISNULL()、NVL()、IFNULL() 和COALESCE() 函數。