SQL:主キーと一意キーと外部キー

スポンサーリンク

お知らせ

2020.4.20 この記事は下記に移行しました。
https://cluese.com/tips/598/
cluese.com



f:id:cnoace:20171023100554p:plain


前:(準備中)

各キーの違い

重複 NULL値 表に設定できる数
主キー × × 1つのみ
一意キー × 複数可
外部キー 複数可

主キー

主キー(プライマリキー/PRIMARY KEY)とは、表の中で、行を一意に識別するための列(または組み合わせ)のことです。1つの表に1つのみ設定することができ、NULL値を含めることはできません。基本的に、一度主キー列に格納した値を後から変更することはありません。


USER表

ID USER_NAME USER_NAME_KANA ADDRESS_CODE
10001 佐藤 サトウ 013
10002 鈴木 スズキ 001
10003 高橋 タカハシ 047
10004 鈴木 スズキ 013


USER表のID列が主キーとなっている場合、ID列には重複した値やNULL値を格納することはできません。

一意キー

一意キー(ユニークキー/UNIQUE KEY)とは、表の中で、行を一意に識別するための列(または組み合わせ)のことです。
1つの表に複数設定することができ、NULL値を含めることができます。


USER表

ID USER_NAME USER_NAME_KANA ADDRESS_CODE
10001 佐藤 サトウ 013
10002 鈴木 スズキ 001
10003 高橋 タカハシ 047
10004 鈴木 スズキ 013
(null) 田中 タナカ 027


USER表のID列が一意キーとなっている場合、ID列には重複した値を格納することはできませんが、NULL値を格納することはできます。

外部キー

外部キーとは、表の中の主キー、または別の表の主キーを参照する列のことです。
NULL値を含めることができ、値を入れる場合には、参照する列にある値のみ格納することができます。


USER表

ID USER_NAME USER_NAME_KANA ADDRESS_CODE
10001 佐藤 サトウ 013
10002 鈴木 スズキ 001
10003 高橋 タカハシ 047
10004 鈴木 スズキ 013


ADDRESS表

CODE NAME
001 北海道
013 東京都
027 大阪府
047 沖縄県


USER表ADDRESS_CODE列は、ADDRESS表CODE列を参照する外部キーに設定されています。そのため、ADDRESS表にないものを格納することはできません。
また、ADDRESS表CODE列は、ADDRESS表の主キーに設定されています。


次:http://simplebook.hatenablog.com/entry/2017/10/24/213853

スポンサーリンク