重要なポイント

null」は何も無し?「空(カラ)」は空というデータがある?

説明

「null」と「空(カラ)」では、イメージ的には近いですが、具体的には異なる意味のものになります。

  • null
    そもそも何も無い状態を表します。図でいうと、コップの中には何も入っていません。
  • 空(カラ)
    空というデータ(ゼロバイトデータ)が入っています。図でいうと、空というメモが入っているようなイメージです。

構文

nullを抽出

select * from [テーブル名] [別名]
 where [別名].[カラム名] is null;

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学籍番号(student_cd)が「null」である
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where sm.student_cd is null;

null以外を抽出

select * from [テーブル名] [別名]
 where [別名].[カラム名] is not null;

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学籍番号(student_cd)が「null」ではない
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where sm.student_cd is not null;

空(カラ)を抽出

select * from [テーブル名] [別名]
 where [別名].[カラム名] = '';

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学生番号(student_cd)が空」である
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where sm.student_cd = '';

空(カラ)以外を抽出

select * from [テーブル名] [別名]
 where [別名].[カラム名] <> '';

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学生番号(student_cd)が空」ではない
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where sm.student_cd <> '';

記述の注意点

  • MySQLでは、「null」と「空(カラ)」を判別しますが、データベースソフトによっては、判断しないものもありますので、注意が必要です。