SQL NULL 值
NULL 值是遺漏的未知數(shù)據(jù)。
默認(rèn)地,表的列可以存放 NULL 值。
本章講解 IS NULL 和 IS NOT NULL 操作符。
SQL NULL 值
如果表中的某個(gè)列是可選的,那么我們可以在不向該列添加值的情況下插入新記錄或更新已有的記錄。這意味著該字段將以 NULL 值保存。
NULL 值的處理方式與其他值不同。
NULL 用作未知的或不適用的值的占位符。
注釋:無(wú)法比較 NULL 和 0;它們是不等價(jià)的。
SQL 的 NULL 值處理
請(qǐng)看下面的 "Persons" 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | London | |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Beijing |
假如 "Persons" 表中的 "Address" 列是可選的。這意味著如果在 "Address" 列插入一條不帶值的記錄,"Address" 列會(huì)使用 NULL 值保存。
那么我們?nèi)绾螠y(cè)試 NULL 值呢?
無(wú)法使用比較運(yùn)算符來(lái)測(cè)試 NULL 值,比如 =, <, 或者 <>。
我們必須使用 IS NULL 和 IS NOT NULL 操作符。
SQL IS NULL
我們?nèi)绾蝺H僅選取在 "Address" 列中帶有 NULL 值的記錄呢?
我們必須使用 IS NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL
結(jié)果集:
LastName | FirstName | Address |
---|---|---|
Adams | John | |
Carter | Thomas |
提示:請(qǐng)始終使用 IS NULL 來(lái)查找 NULL 值。
SQL IS NOT NULL
我們?nèi)绾芜x取在 "Address" 列中不帶有 NULL 值的記錄呢?
我們必須使用 IS NOT NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL
結(jié)果集:
LastName | FirstName | Address |
---|---|---|
Bush | George | Fifth Avenue |
在下一節(jié)中,我們了解 ISNULL()、NVL()、IFNULL() 和 COALESCE() 函數(shù)。