DBデータベーススペシャリスト試験 午前Ⅱ

平成27年度春期 データベーススペシャリスト 午前Ⅱ 問8

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

“社員取得資格”表に対し,SQL文を実行して結果を得た。SQL文のaに入る字句はどれか。 SELECT C1.社員コード,C1.資格 AS 資格1,C2.資格 AS 資格2 FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2 a
社員コードと資格から成る社員取得資格表,及び社員コード・資格1・資格2から成るSQL実行結果表。
社員コードと資格から成る社員取得資格表,及び社員コード・資格1・資格2から成るSQL実行結果表。

選択肢

  1. ア
    ON C1.社員コード = C2.社員コード AND C1.資格 = 'FE' AND C2.資格 = 'AP' WHERE C1.資格 = 'FE'
  2. イ
    ON C1.社員コード = C2.社員コード AND C1.資格 = 'FE' AND C2.資格 = 'AP' WHERE C1.資格 IS NOT NULL
  3. ウ
    ON C1.社員コード = C2.社員コード AND C1.資格 = 'FE' AND C2.資格 = 'AP' WHERE C2.資格 = 'AP'
  4. エ
    ON C1.社員コード = C2.社員コード WHERE C1.資格 = 'FE' AND C2.資格 = 'AP'
解き方のヒントを見る

抽出条件と結果を照らす視点

SQLの抽出条件と得られる行の対応を考えるときは、条件がどの行に適用され、複数の条件や欠損値の扱いが結果の範囲にどう影響し得るかを、処理の流れに沿って整理しましょう。

この問題で問われていること

確認する観点を、抽出対象を決める条件の評価単位に絞ります。各条件が列・行・組合せのどこを見ているかを整理し、条件同士の関係と境界の扱いを画面の選択肢と比較してください。

視点

抽出結果を読む際は、対象となるデータの単位、条件が参照する値、条件が重なった場合の関係を順に整理します。構文の細部を暗記するより、各条件が結果に与える影響を独立に捉えることが大切です。

確認ポイント

  • 抽出対象がどのデータ単位として評価されるかを確認する
  • 各条件が参照する列や値の範囲を画面上の選択肢と照合する
  • 複数条件の組合せと境界値・未設定値の影響を分けて整理する
正解と解説を見る

正解

ア

解説

LEFT OUTER JOINは左表の行を残す結合であり、結合相手に関する条件をON句へ置くかWHERE句へ置くかで結果が変わります。左側の資格を限定しつつ、対応する資格がない社員も残す構文を選びます。

理由

結果には、FEを持ちAPも持つS001がAP付きで表示され、FEだけを持つS002とS003は資格2がNULLで残っています。したがって、C1側をFEに限定し、C2側のAPは結合条件として扱う必要があります。

比較

C2の条件をWHERE句に置くと、対応行がなくNULLになったS002とS003が除外されます。一方、C1の条件をWHERE句でFEに限定し、C2のAP条件をON句に置けば、左外部結合の行保持を維持できます。

選択肢ア(正解)

これは正解だよ。ON句で社員コードが同じで、C1がFE、C2がAPの場合だけ対応付け、WHERE句で左側のC1をFEに限定しています。対応するC2がないS002とS003は、LEFT OUTER JOINによって資格2がNULLのまま残るため、示された結果と一致します。

選択肢イ

これは不正解だよ。ON句の結合条件は適切ですが、WHERE句がC1の資格をIS NOT NULLとしているため、FE以外の資格を持つ左側の行も抽出対象になります。その結果、APやDB、SMの行まで残り、FEだけを表示する結果とは一致しません。

選択肢ウ

これは不正解だよ。C2の資格をWHERE句でAPに限定しているため、C2に対応行がなく資格2がNULLになるS002とS003が除外されます。LEFT OUTER JOINで左側の行を残す効果が失われ、提示された結果のNULL行を得られません。

選択肢エ

これは不正解だよ。ON句では社員コードだけを結合条件にし、C1がFE、C2がAPという条件をWHERE句で適用しています。C2がNULLの行はWHERE条件を満たさないため、S002とS003が除外され、結果に必要な左外部結合の行保持ができません。

学習のポイント

ON句とWHERE句の役割、および外部結合でNULLになる列の扱いを学びます。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 データベーススペシャリスト試験 午前Ⅱ 問8(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針