NULL 値は、欠落した未知のデータを表します。
デフォルトで、テーブルの列は NULL 値を格納できます。
この章では、IS NULL および IS NOT NULL 演算子を説明します。
テーブルの列が optional の場合、この列に値を追加することなく、新しいレコードを挿入したり、 既存のレコードを更新したりできます。これは、フィールドに NULL 値が保存されることを意味します。
NULL 値は、他の値とは別に取扱われます。
NULL は、不明または適用不可能な値のプレースホルダとして使用されます。
注: NULL と 0 を比較することはできません:この2つは同値ではありません。
次の "Persons" テーブルを見てください:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Stavanger |
"Persons" テーブルの "Address" 列が optional であるとします。これは、"Address" 列に値なしでレコードを挿入した場合、 "Address" 列には NULL 値で保存されることを意味しています。
どのように NULL 値をテストできますか?
比較演算子 =、< または <> などで NULL 値をテストすることはできません。
代わりに、IS NULL および IS NOT NULL 演算子を使用しなければなりません。
どのようにして "Address" に NULL 値を持つレコードだけを選択できますか?
IS NULL 演算子を使用しなければなりません:
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL
結果セットは次のようになります:
LastName | FirstName | Address |
---|---|---|
Hansen | Ola | |
Pettersen | Kari |
チップ: NULL 値を検索するには、常に IS NULL を使用します。
どのようにして "Address" から NULL でない値を持つレコードだけを選択できますか?
IS NOT NULL 演算子を使用しなければなりません:
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL
結果セットは次のようになります:
LastName | FirstName | Address |
---|---|---|
Svendson | Tove | Borgvn 23 |
次の章では、ISNULL()、NVL()、IFNULL() および COALESCE() 関数を見ていきます。