【Oracle】NULLの扱いを理解する【過去問修行】
目標
このブログでは、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 資格取得を目指す方向けに、過去問の解説やポイントを共有するためのものです。
最近のコメント