主キー(しゅきー、primary key)とは、
リレーショナルデータベースにおいて、組(
レコード)の識別子として利用するのにもっとも好ましいものとして、リレーション(
テーブル)毎にただ一つ設計者により選択・定義された候補キーをいう。つまり、リレーションに格納された
レコードを一意に識別するための属性(
列、アトリビュート)またはその集合のうち、そのために通常利用されるべき特定の一つをいう。
リレーショナルデータベース管理システム (
RDBMS) や
ミドルウェア、アプリケーションなどで
レコードの識別子が必要な場合、
主キーがそのために使われることが多い。ただ、そうしなければならない必然性はなく、他の候補キーを使っても良い。したがって、
主キーの理論上の意義は大きくないが、実務上は、そのわかりやすさなどから広く使われている概念である。ただし、
主キーにはNULLの存在が許されないが、候補キーには許されるという差があるとする立場もある。(
レコードの追加、更新時の制約として
主キーを考える場合、一意性制約に
NOT NULL制約を加えたものが
主キー制約であると考えることができる。)
リレーションに存在する候補キーが一つであるときは、その候補キーが当然に
主キーとなる。
なお、
主キーでない候補キーは代理キー(alternate key)という。