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円 |
開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。
標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。
チューニングテクニックやリレーショナルデータベースの歴史なども網羅。SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。
SQL実践入門──高速でわかりやすいクエリの書き方 (WEB DB PRESS plus) [ ミック ] 価格:2838円 |
SQLはデータベース操作に特化した言語で、柔軟にデータを操作できます。ただし、独自のロジックに基づいているため、それを正しく理解しなければ、読みづらくパフォーマンスの出ないSQLになってしまいます。本書では、「条件分岐」「集約」「ループ」「結合」「更新」など日常的に実行する処理の良い書き方・悪い書き方を解説します。その際、データベース内部でどう処理が実行されているかを示す実行計画を読み解くことで、「なぜそう書くと効率が良いのか」「可読性や保守性が向上するのか」を実感を持って理解することを目指します。
学習書のお求めはこちらから → IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』