【Oracle】FOREIGN KEYの基本を理解する【過去問修行】

2025年2月11日

目標

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

勉強方法

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

問題

次のうち、FOREIGN KEY 制約の特徴として誤っているものを選択してください。

選択肢

  • A. FOREIGN KEY は、参照先のテーブルの PRIMARY KEY または UNIQUE キーを参照する
  • B. FOREIGN KEY は、NULL 値を許可しない
  • C. FOREIGN KEY に設定されたカラムの値は、参照先のテーブルに存在する必要がある
  • D. FOREIGN KEY は、テーブル間のリレーションシップを維持するために使用される

正解

B. FOREIGN KEY は、NULL 値を許可しない

解説

  • 参照先のカラムは、PRIMARY KEY または UNIQUE キーである必要がある。
  • 参照元のカラムには NULL 値を含めることができる(必ずしも値を指定する必要はない)。
  • 参照元のカラムの値は、必ず参照先テーブルに存在しなければならない(整合性を保つため)。

間違い選択肢の解説

  • 選択肢A: 正しい。FOREIGN KEY は、PRIMARY KEY または UNIQUE 制約のあるカラムを参照する。
  • 選択肢C: 正しい。FOREIGN KEY の値は、参照先のテーブルの PRIMARY KEY または UNIQUE キーと一致する必要がある。
  • 選択肢D: 正しい。FOREIGN KEY は、テーブル間のリレーションシップを維持するための制約。

ポイント

  • FOREIGN KEY は、NULL を許可する。
  • FOREIGN KEY は、参照先テーブルの PRIMARY KEY または UNIQUE キーを参照する。
  • 参照元のカラムの値は、必ず参照先テーブルに存在しなければならない。

実践例

-- FOREIGN KEY を設定する例
CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    name VARCHAR2(100),
    department_id NUMBER,
    FOREIGN KEY (department_id) REFERENCES departments(department_id)
);

まとめ

FOREIGN KEY 制約は、テーブル間のリレーションを維持し、データの整合性を保つ重要な制約です。NULL を許可する点に注意が必要です。


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