データベース

主キー(primary key)とは

2021年1月5日

主キー(primary key)

主キーとは

主キー(英:primary key、略:PK)とは、関係データベースのテーブル内で行(レコード)を一意に特定するための項目(カラム)のことです。

テーブルには、大量のデータが保存されています。その大量データの中から、行(レコード)を特定するには「鍵となる情報」が必要です。それが主キーです。

例えば、次のようなテーブルがあるとします。このテーブルの主キーは「社員番号」であり、「社員番号」がわかればデータを一意に識別することができます。

社員番号

社員番号を主キーとしているため、テーブル内に同じ社員番号を持つの社員を登録することはできません。(一意制約)

このように「社員番号」や「製造番号」といった重複しないユニークな値を主キーとして扱います。また一意となる項目がない場合は、一意性を確保するために「通し番号」のような項目(カラム)を新たに設ける場合もあります。

複合キー

1つの項目ではなく、複数の項目を主キーとして組み合わせデータを一意に識別することもできます。

このように、主キーを複数の項目の組み合わせとして定義することを「複合キー」(複合主キー)といいます。

例えば、次のようなテーブルがあるとします。

複合キー

上記のようなテーブルでは、1つの項目でデータを一意に識別することができません。(学年は重複する、組も重複する、出席番号も重複する、名前は同姓同名がいる可能性がある)

このような場合は、一意性を確保するために「通し番号」のような項目を新たに設けるか、複合キーを使用するかのどちらかです。

上記の例では「学年」「組」「出席番号」を主キー(複合キー)とすることで、データを一意に識別しています。

整合性制約

整合性制約とは、テーブルに格納されているデータの整合性を保つために定められた制約のことです。

主キーの項目(カラム)には、次の制約が課せられます。

制約説明
一意制約データに重複がなく、必ず一意であること。主キーの項目(カラム)に同じデータが登録された場合、この一意制約でエラーとなる。
NOT NULL制約NULLを許可しない。主キーの項目(カラム)にNULLが登録された場合、このNOT NULL制約でエラーとなる。
主キーの項目は重複する値は設定できず(一意制約)、値を必ず設定する必要があります(NOT NULL制約)

helpful