主キーとは?データを一意に識別する仕組みをやさしく解説

主キーとは?データを一意に識別する仕組みをやさしく解説のサムネイル

主キーとは、データベースの1行1行を、重ならずに見分けるための列です。人でいえば社員番号、学校なら出席番号のようなものです。まずはテーブルとレコードを思い出すと、表の1行をあとで迷わず扱うための目印だと考えやすくなります。

検索意図に先に答えると、主キーがあると「このデータは誰のものか」「どの商品なのか」をすぐ決められます。逆に主キーがないと、同じ名前や同じ商品名が出たときに、どの行を指しているのか分かりにくくなります。

目次

主キーの基礎

主キーには大事な条件があります。1つ目は、同じ値が2回入らないこと。2つ目は、空欄にできないことです。なぜなら、主キーは1行を特定するための番号札だからです。番号札が重なったり、空欄だったりすると、どの行なのか決められません。

たとえば会員テーブルなら、会員IDを主キーにします。名前は同じ人がいてもおかしくありませんし、結婚や入力ミスで変わることもあります。メールアドレスも変更されることがあるので、主キーに向かない場面があります。

主キーは1列だけで作ることもあれば、複数の列を組み合わせて作ることもあります。これを複合主キーといいます。たとえば「注文番号」と「明細番号」を組み合わせて、1行を一意にする考え方です。

SQLでは、主キーを設定するときに「PRIMARY KEY」と書きます。ここは細かい文法を今すぐ覚えるより、「この列は表の代表で、他と重ならない」と理解するほうが先です。

身近なたとえで考える

主キーは、クラスの出席番号に近いです。名前は同じ人がいても不思議ではありませんが、出席番号は1人ずつ違います。先生は「山田さん」と呼ぶだけでは誰か迷うことがありますが、「12番の山田さん」と言えばすぐ分かります。

お店の会員カードも似ています。会員番号があれば、同じ名前の人がいても区別できます。ポイントの残高、購入履歴、住所変更の記録などを、1人分ずつ正しくつなげられるからです。

ただし、主キーは「見た目が分かりやすいから選ぶ」ものではありません。大事なのは、変わりにくく、重ならず、空欄にならないことです。ここをおさえると、名前や商品名ではなく、番号を主キーにする理由が見えてきます。

よくある疑問:主キーって、名前が同じ人がいても大丈夫ですか?

大丈夫です。主キーは、同じ値が入らない列を使って、1行を見分けるための目印です。

実務ではこう使う

実際の開発では、主キーはデータの土台になります。ユーザー、商品、注文、問い合わせ、勤怠など、ほとんどのテーブルに「その行を見分けるためのキー」を置きます。これがあると、修正や削除、検索を安全にしやすくなります。

たとえば会員テーブルで会員IDを主キーにしておけば、名前が同じ人が2人いても問題ありません。画面で「田中さん」と表示していても、裏側では会員IDで1人に絞っています。人の目には見えにくくても、システムは主キーで正確に判断しています。

注文テーブルでは、注文IDを主キーにすることが多いです。注文日は同じでも、注文IDは別です。これにより、特定の注文だけを検索したり、配送情報と結びつけたりできます。逆に、注文日のような値を主キーにすると、同じ日に複数注文があった時点で困ります。

外部キーという言葉も、主キーと一緒によく出ます。外部キーは「ほかのテーブルの主キーを参照する列」です。たとえば注文テーブルの会員IDが、会員テーブルの主キーを指す、という関係です。主キーがあるから、テーブルどうしを正しくつなげられます。

会員テーブル
- 会員ID(主キー)
- 氏名
- メールアドレス

注文テーブル
- 注文ID(主キー)
- 会員ID(外部キー)
- 注文日

この形にしておくと、あとから「この注文は誰のものか」をたどりやすくなります。データが増えても、行の迷子を減らせるのが主キーの大きな役目です。

図解で整理:主キーは行の住所札

主キーがある表とない表
1行を迷わず見つけるには、主キーがあると探しやすい

主キーをひとことでいうと、データ1件に貼る「住所札」のようなものです。住所札があれば、同じ建物名が並んでも、どの部屋かをたどれます。データベースでも、似た名前が並んでいても、主キーで1行をぴたりと指定できます。

左は主キーがある表です。1行を1つの番号で見分けられるので、更新や削除の対象がはっきりします。右は主キーがない状態です。見た目は表でも、同じ名前や同じ商品名が重なると、どれを指すのか分かりにくくなります。

ここで大切なのは、「主キーはデータそのものの意味ではなく、見分けるための仕組み」という点です。たとえば商品名は商品を表しますが、主キーはその商品レコードを1件だけ指すための目印です。意味のある名前と、識別のための番号を分けて考えると混乱しません。

また、主キーは後から変えないほうが安全です。もし主キーが変わると、関連するテーブルのつながりも直さなければならないからです。だから実務では、自然に変わりにくいIDを主キーにしておくことが多いです。

3問クイズ

第1問:主キーの役割として、いちばん近いものはどれでしょう。

A. データを見た目よく並べるための飾り
B. 1行を重ならずに見分けるための目印
C. 文字を大きくする設定
D. テーブルを消すための命令

答えを見る

答え:B. 1行を重ならずに見分けるための目印です。

第2問:主キーに向いていないものはどれでしょう。

A. 変わらず、重ならない会員ID
B. 空欄になる可能性がある番号
C. 1人ごとに違う社員番号
D. 1行を一意にできる管理番号

答えを見る

答え:B. 空欄になる可能性がある番号です。

第3問:1つのテーブルの主キーについて、正しい説明はどれでしょう。

A. 主キーは必ず3列以上にする
B. 主キーは1つの表に設定しない
C. 基本は1つだが、複数列を組み合わせることはある
D. 主キーは同じ値をいくつでも入れてよい

答えを見る

答え:C. 基本は1つだが、複数列を組み合わせることはある、です。

まとめ

主キーとは、テーブルの1行を一意に見分けるための仕組みです。重複しない、空欄にできない、変わりにくい。この3つを押さえると、主キーの考え方はかなりすっきりします。次は、外部キーやリレーションを学ぶと、テーブル同士のつながりがもっと見えやすくなります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次