はじめに
プログラミング学習の序盤に理解に苦しんだ主キー、外部キー、特に複合キーについて
初学者向けにまとめた。
主キー
主キーはテーブル内のレコードひとつひとつを識別できるようにキーとなる情報を含んだカラムである。
例えば学籍番号やマイナンバーが挙げられる。
- 学生テーブル
学籍番号 | 氏名 |
---|---|
00001 | 野原しんのすけ |
00002 | 風間トオル |
00003 | 桜田ネネ |
00004 | 佐藤マサオ |
00005 | ボーちゃん |
外部キー
外部キーはテーブルとテーブルを関係づけるため、他のテーブルの主キーを参照するカラムである。
以下の例だと学生テーブルの学籍番号と学部テーブルの学部IDが主キー、学生テーブルの学部IDが外部キー
となる。
- 学生テーブル
学籍番号 | 氏名 | 学部ID |
---|---|---|
00001 | 野原しんのすけ | 1 |
00002 | 風間トオル | 2 |
00003 | 桜田ネネ | 3 |
00004 | 佐藤マサオ | 1 |
00005 | ボーちゃん | 3 |
- 学部テーブル
学部ID | 氏名 |
---|---|
1 | 経済学部 |
2 | 法学部 |
3 | 工学部 |
複合キー
主キーはひとつひとつのレコードを識別できるようでなければならないが、一つのカラムでは識別できないが
複数のカラムを組み合わせるて主キーとして識別できるようにしたのが複合キーである。
例えば、プロ野球チームの全球団の選手一覧のテーブルがあるしたら、背番号カラムだけでは他のチームに
同じ背番号の選手がいた場合に、識別できない。背番号カラムに加えて、球団を識別するための球団IDという
カラムと組み合わせることにより、選手個人を識別できる。