ywork2020.com

Title

NULL 値がないかを判定する

目次 (INDEX)

IS NOT NULL とは

ここで説明する IS NOT NULL とは次の語句からなる SQL の演算子です。
is
読み: イズ
意味: ~です。 ここでは疑問文となる (~ですか。)
not
読み: ノット
意味: ~ではない。~じゃない。否定の意味
null
読み: ヌル
意味: 何もない、何も示さないもの

目次に戻る

IS NOT NULL 演算子の概要

データベースの既定ではレコードのカラムに登録される値が無い場合、自動的に NULL という値が登録されます。

この演算子は、指定したカラム ( 列 ) の値が NULL でないかどうかを判定します。

WHERE 句のレコード抽出条件に使用した場合、以下のようになります。
列名 IS NOT NULL
指定した列の値が NULL でなければ TRUE が返り、NULL ならば FALSE が返ります。

また、この演算子と逆の働きをする演算子に、IS NULL があります。
列名 IS NULL
指定した列の値が NULL ならば TRUE が返り、NULL でなければ FALSE が返ります。

目次に戻る

サンプルデータベースとテーブルの構造

データ抽出用のサンプルテーブルが必要でしたので事前に作成しています。

現在、データベースにはサンプルとして以下に示す構造の test テーブルを作成しており、 そのテーブルに 6人のペーパーテストの成績を登録した状態になっています。

サンプルコード: テーブルの作成

サンプルテーブルを以下のクエリで作成しました。

CREATE TABLE test(
	id int(11),
	氏名 varchar(20),
	国語 int(11),
	算数 int(11),
	理科 int(11),
	社会 int(11),
	英語 int(11)
);
id氏名国語算数理科社会英語
データデータデータデータデータデータデータ
データデータデータデータデータデータデータ

目次に戻る

サンプルコードと実行結果

ここからは実際に稼働しているデータベースに接続してクエリを実行していきます。 下記に配置された各ボタンをクリックすると、ボタンに書かれているサンプルクエリを実行して結果を表示します。

サンプルコード: SQL (SELECT 文の基本的な使い方)

SELECT * FROM テーブル名;

これはテーブルデータを抽出するための基本構文です。
指定したテーブルのデータを全件、全フィールドで抽出します。 この単純なクエリはデータ量が少ない場合や開発段階では利用することが多いと思いますが、実際の運用では使いません。

実行:

サンプルコード: SQL (IS NOT NULL 演算子の使い方)

SELECT * FROM テーブル名 WHERE カラム名 IS NOT NULL;
実行:

説明:
上記の実行サンプルでは算数のテスト結果が登録されていない人のレコードは無視するという結果になります。

サンプルコード: SQL (IS NULL 演算子の使い方)

SELECT * FROM テーブル名 WHERE カラム名 IS NOT NULL;
実行:

説明:
上記のサンプルは算数のテストを受けていない人を検索した例です。
例えば体調不良などでテストを受けていない人を探すには、点数が NULL 値の人を検索すれば探すことができます。

目次に戻る

SQL の仕様上の注意点

※ SQL の予約句はアルファベットの大文字と小文字を区別しませんが、 任意で作成したデータベースやテーブル、カラムの名前などは区別されるので注意が必要です。

目次に戻る