「主キーと外部キーって何が違うの?」
応用情報技術者試験でもデータベース分野で超頻出ですが、
- どっちもキー?
- IDみたいなもの?
- テーブルをつなぐ?
- SQL問題で混乱する…
でつまずく人がかなり多いテーマです。
この記事では、
- 主キーとは?
- 外部キーとは?
- 違い
- テーブルの関係
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
主キー
「レコードを一意に識別するキー」
外部キー
「他テーブルと関連付けるキー」
これが最大の違い!
超簡単にいうと
| キー | イメージ |
|---|---|
| 主キー | 学籍番号 |
| 外部キー | 他の名簿への参照番号 |
まず主キーとは?
超頻出!
主キー(Primary Key)
役割:
データを一意識別
例
社員テーブル
社員ID | 名前
1001 | 山田
1002 | 鈴木
1003 | 佐藤
主キーは?
社員ID
なぜ?
理由:
重複NG
さらに
NULL不可
主キー条件
超重要!
- 重複しない
- NULL不可
- 一意識別
外部キーとは?
超重要!
外部キー(Foreign Key)
役割:
他テーブル参照
例
注文テーブル
注文ID | 社員ID
1 | 1001
2 | 1002
この社員IDは?
外部キー
なぜ?
社員テーブルの:
主キー参照
テーブル関係
イメージ👇
社員テーブル
社員ID(PK)
↑
注文テーブル
社員ID(FK)
外部キーの目的
- 関係作成
- 整合性維持
- JOINしやすい
主キーと外部キーの違い
| 比較 | 主キー | 外部キー |
|---|---|---|
| 役割 | 一意識別 | 関係付け |
| 重複 | 不可 | 可 |
| NULL | 不可 | 可の場合あり |
| 個数 | 基本1つ | 複数可 |
参照整合性
超頻出!
意味
存在しないデータ禁止
NG例
注文
社員ID=9999
社員9999が無い。
↓
整合性崩壊
JOINとの関係
重要!
JOINでは
外部キー活躍
SQL例
SELECT *
FROM 注文
JOIN 社員
ON 注文.社員ID = 社員.社員ID;
複合主キー
発展知識!
特徴
複数列で識別
応用情報で超頻出
かなり狙われる👇
- 主キー制約
- 外部キー制約
- 参照整合性
- JOIN
- 正規化
よくあるひっかけ
「外部キーは重複禁止」
→ ❌違う!
外部キーは:
重複OK
1分で復習!
主キー
一意識別
外部キー
テーブル接続
主キー条件
- 重複NG
- NULL不可
外部キー
関係維持
練習問題
問題
外部キーの役割として最も適切なものはどれか。
ア
データを暗号化する
イ
レコードを一意識別する
ウ
他テーブルとの関連付けを行う
エ
IPアドレス管理をする
解答
正解:ウ
解説
外部キーは、他テーブルの主キーなどを参照し、テーブル間の関係を管理します。
まとめ
主キーとは
「一意識別」
外部キーとは
「関係付け」
超重要
- 重複可否
- NULL制約
- JOIN
- 参照整合性
まずは、
「主キー=本人確認番号」
「外部キー=参照番号」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント