データベース設計

【SQL入門】NULLの取り扱い方(IS NULL)

NULLの取り扱い方

NULLの判定には「IS NULL」や「IS NOT NULL」を使用します。本記事では、NULLの取り扱い方について解説しています。

また「product テーブル」には、次のようなデータが格納されていることを前提としています。

【product テーブル】

ID (id) ※PK商品名 (name)価格 (price)カテゴリ (category)
1商品A1980
2商品B4980家具
3商品C7200家具
4商品D500NULL

NULLを判定する(IS NULL)

「IS NULL演算子」を使うことで、NULLを判定することができます。

IS NULLの基本構文

SELECT  *  FROM  テーブル名  WHERE  列名  IS NULL;

次の例では、「product」テーブルから「カテゴリ(category)」がNULLのデータを抽出しています。

IS NULLの使用例

SELECT  * FROM  product
WHERE
  category IS NULL;

NULL以外を判定する(IS NOT NULL)

「IS NOT NULL演算子」を使うことで、NULL以外を判定することができます。

IS NOT NULLの基本構文

SELECT  *  FROM  テーブル名  WHERE  列名  IS NOT NULL;

次の例では、「product」テーブルから「カテゴリ(category)」がNULL以外のデータを抽出しています。

SELECT  * FROM  product
WHERE
  category IS NOT NULL;

INSERT文でNULLを登録する

INSERT文で指定列にNULLを登録するには、VALUESの値に「NULL」を設定することで登録することができます。

次の例では、「prduct」テーブルに「カテゴリ(category)」がNULLのレコードを新しく追加しています。

INSERT文でNULLを登録する例

INSERT INTO ITEM
    (ID, NAME, PRICE, CATEGORY)
VALUES
    ('5', '商品E', '980', NULL);

UPDATE文でNULLに更新する

UPDATE文で指定列をNULLに更新するには、SETの値に「NULL」を設定することで更新することができます。

次の例では、「product」テーブル「id = '3'」のレコードの「カテゴリ(category)」をNULLに更新しています。

UPDATE文でNULLに更新する例

UPDATE
    product
SET
    CATEGORY = NULL
WHERE ID = '3';

学習書の紹介

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。

第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンなSQL機能を駆使した書き方」を徹底解説しています。

標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。
チューニングテクニックやリレーショナルデータベースの歴史なども網羅。
SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。

学習書のお求めはこちらから → IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』

-データベース設計