SQL 速習チュートリアル

SQL NULL 値

1. NULL値とは?

テーブル内のフィールドが任意(オプショナル)である場合、そのフィールドに値を追加せずにレコードを挿入または更新することが可能です。この場合、フィールドは NULL 値として保存されます。

NULL 値は、データベースフィールドにおける「不明(unknown)」「欠損(missing)」「適用不能(inapplicable)」なデータを表します。それ自体は値ではなく、データが存在しないことを示すプレースホルダーです。

注意: NULL値は、ゼロ(0)や空の文字列('')とは異なります。NULL値を持つフィールドとは、レコード作成時に空白のままにされたフィールドのことです。

2. NULL値をテストする方法は?

=<<> などの比較演算子を使用して NULL 値をテストすることはできません。

代わりに、IS NULL および IS NOT NULL 演算子を使用する必要があります。

3. IS NULL の構文

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

4. IS NOT NULL の構文

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

5. デモ用データベース

以下は、例題で使用する Customers テーブルの抜粋です。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

6. IS NULL 演算子

IS NULL 演算子は、空の値(NULL値)をテストするために使用されます。

次のSQLは、"Address" フィールドが NULL 値であるすべての顧客をリストします。

6.1 例

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

       ヒント: NULL値を探すときは、常に IS NULL を使用してください。

7. IS NOT NULL 演算子

IS NOT NULL 演算子は、空ではない値(NULLではない値)をテストするために使用されます。

次のSQLは、"Address" フィールドに値が入っているすべての顧客をリストします。

7.1 例

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;