【Oracle】NULLの扱いを理解する【過去問修行】

2025年2月10日

目標

このブログでは、Oracle Silver 資格取得を目指す方のために、過去問の解説やポイントを共有し、理解を深めることを目的としています。

勉強方法

  • 実際の過去問を解いて、現在の理解度を把握する。
  • 間違えた問題をチェックし、解説を通して理解を深める。
  • 理解した内容を実際のSQL環境で試してみる。
  • 類似問題を解くことで、知識を定着させる。

問題

次のSQLの実行結果として正しいものを選択してください。

SELECT COUNT(column_name) FROM employees WHERE department_id = 10;

選択肢

  • A. 部門IDが10の従業員の総数を返す
  • B. 部門IDが10の従業員のうち、NULL以外の値を持つcolumn_nameの数を返す
  • C. エラーが発生する
  • D. NULL を返す

正解

B. 部門IDが10の従業員のうち、NULL以外の値を持つcolumn_nameの数を返す

 

解説

COUNT(column_name) はNULLを除いた行の数をカウントする関数です。 WHERE department_id = 10 の条件に一致する行のうち、column_name にNULL以外の値がある行数を返します。

間違い選択肢の解説

  • 選択肢A: COUNT(column_name) はNULLを含まないため、総数とは異なる。
  • 選択肢C: COUNT(column_name) はエラーを発生させないため誤り。
  • 選択肢D: COUNT(column_name) は該当するデータがなかった場合 0 を返すため誤り。

ポイント

  • COUNT(*) はNULLを含む全行をカウントする
  • COUNT(カラム名) はNULLを除いた行数をカウントする
  • WHERE で条件を指定した場合、その条件に合致するデータのみカウントされる

実践例

-- employees テーブルのサンプルデータ
SELECT COUNT(column_name) FROM employees WHERE department_id = 10;

まとめ

COUNT(column_name) は、指定したカラムのNULL以外の値を持つ行をカウントする関数であり、NULLの取り扱いを理解するのに重要な概念です。


このブログは Oracle Silver 資格取得を目指す方向けに、過去問の解説やポイントを共有するためのものです。