【Oracle】結合(JOIN)の基本を理解する【過去問修行】
目標
このブログでは、Oracle Silver 資格取得を目指す方のために、過去問の解説やポイントを共有し、理解を深めることを目的としています。
勉強方法
- 実際の過去問を解いて、現在の理解度を把握する。
- 間違えた問題をチェックし、解説を通して理解を深める。
- 理解した内容を実際のSQL環境で試してみる。
- 類似問題を解くことで、知識を定着させる。
問題
次のうち、Oracle の JOIN 操作の特徴として誤っているものを選択してください。
選択肢
- A.
INNER JOIN
は、両方のテーブルに一致するデータがある場合のみ結果を返す - B.
LEFT JOIN
は、左側のテーブルのデータをすべて含み、一致しない場合でも NULL を返す - C.
FULL OUTER JOIN
は、結合条件が一致しない場合でもすべての行を結果に含める - D.
CROSS JOIN
は、結合条件を指定しなくても共通カラムがある場合のみ結合される
正解
D. CROSS JOIN
は、結合条件を指定しなくても共通カラムがある場合のみ結合される
解説
CROSS JOIN
は、結合条件を指定しなくてもすべての組み合わせ(直積)を作成するため、共通カラムの有無に関係なく全レコードの組み合わせが結果に含まれます。
間違い選択肢の解説
- 選択肢A: 正しい。
INNER JOIN
は、両方のテーブルで一致するデータのみ結果に含める。 - 選択肢B: 正しい。
LEFT JOIN
は、左側のテーブルのデータをすべて含み、対応するデータがない場合は NULL を返す。 - 選択肢C: 正しい。
FULL OUTER JOIN
は、一致しないデータも含める。
ポイント
INNER JOIN
は、両テーブルに一致するデータがある場合のみ結果を返す。LEFT JOIN
は、左テーブルのすべてのデータを含み、一致しない場合は NULL を返す。FULL OUTER JOIN
は、一致する・しないにかかわらずすべてのデータを含める。CROSS JOIN
は、結合条件なしですべての組み合わせ(直積)を作成する。
実践例
-- CROSS JOIN の例
SELECT a.employee_id, b.department_name
FROM employees a
CROSS JOIN departments b;
まとめ
CROSS JOIN
は、共通カラムがなくてもすべての組み合わせを返すため、誤解しないように注意が必要。
このブログは Oracle Silver 資格取得を目指す方向けに、過去問の解説やポイントを共有するためのものです。
最近のコメント