【しゅきー】

主キー とは?

最終更新:
💡 重複とNULLを許さず、行を一意に識別する

データベースのテーブルで、各行を一意に識別するために指定する列、または列の組み合わせ。主キーの値は重複できず、NULLも認められない。一つのテーブルに定義できる主キーは一つ。

📌 このページのポイント
主キーで行を識別する ID(主キー) 名前 部署 1 田中 開発 2 田中 営業 3 佐藤 開発 ID = 1 を追加 重複 → 拒否 ID = NULL 値なし → 拒否 主キーは複数列の組み合わせでもよい
IDを主キーにした例。同じ名前の行も区別でき、主キーの重複とNULLは認めない。
ひよこ ひよこ
主キーは、テーブルのID列のこと?
ペンギン先生 ペンギン先生
ID列が主キーの例としてよく使われるね。ただし列名で決まるのではなく、主キーとして指定することで、値の重複とNULLを禁止して行を一意に識別するんだ。
ひよこ ひよこ
名前では識別できない?
ペンギン先生 ペンギン先生
同じ名前の人がいると、名前だけでは行を区別できないよ。主キーは各行を区別できる値にする。ほかの列の値が重複しても、主キーで区別できればよいんだ。
ひよこ ひよこ
主キーは一つの列だけ?
ペンギン先生 ペンギン先生
複数の列を組み合わせる複合主キーもあるよ。学生IDと科目IDを組み合わせれば、同じ学生が同じ科目に重複登録されることを防げる。それぞれの列は別の組み合わせの行で同じ値を使えるんだ。
ひよこ ひよこ
自動で番号が付く列なら、主キーになる?
ペンギン先生 ペンギン先生
自動採番と主キーの指定は別だよ。値を生成する仕組みと、その値の重複やNULLを防ぐ制約を分けて考える。一つのテーブルに主キーは最大一つだけど、その一つが複数列から成ることもあるんだ。
ひよこ ひよこ
外部キーは、別のテーブルの主キーを参照するの?
ペンギン先生 ペンギン先生
それが代表的な使い方だよ。ただし、対応するUNIQUE制約などで一意性が保証された列を参照できる場合もある。同じテーブル内の行を参照する外部キーもあり、使える条件はデータベースで確認するんだ。
もっと詳しく知りたい人へ

NULLを禁止するなら、空文字も禁止される?

NULLは、値がないことを表す特別な状態です。空文字を通常の文字列として扱うデータベースでは、主キーだけで空文字そのものを禁止するわけではありません。文字列を識別子にする場合は、必要に応じて形式や長さなどの制約も定義します。NULLと空文字の扱いは、使うデータベースで確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「主キー」って出てきたら「重複とNULLを許さず、テーブルの行を識別するキー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Primary Key」 = 行を識別するために指定した主なキー
💬 Primaryは主要な、Keyは識別や参照に使う値を表す言葉だよ。同じ名前の人が複数いても、主キーの値によって別の行として識別できるんだ。

参考資料

← 用語集にもどる