NULLの取り扱い方
NULLの判定には「IS NULL」や「IS NOT NULL」を使用します。本記事では、NULLの取り扱い方について解説しています。
また「product テーブル」には、次のようなデータが格納されていることを前提としています。
【product テーブル】
ID (id) ※PK | 商品名 (name) | 価格 (price) | カテゴリ (category) |
1 | 商品A | 1980 | 本 |
2 | 商品B | 4980 | 家具 |
3 | 商品C | 7200 | 家具 |
4 | 商品D | 500 | NULL |
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版 初級者で終わりたくないあなたへ (CodeZine BOOKS) [ ミック ] 価格:2,750円 |
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。
第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンなSQL機能を駆使した書き方」を徹底解説しています。
標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。
チューニングテクニックやリレーショナルデータベースの歴史なども網羅。
SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。
学習書のお求めはこちらから → IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』