Microsoft SQL Server のプライマリーキー(主キー)とは?

Microsoft SQL Server のプライマリーキー(主キー)とは?

Microsoft SQL Server のプライマリーキー(主キー)とは、そのテーブルの各行を一意に特定するためのカラムやカラムのコンビネーションのことで、各テーブルにひとつだけ設定できます。

プライマリーキーをつけるカラムやカラムのコンビネーションは、ユニークで、かつ Null を許容しないカラムでなくてはなりません。


プライマリーキーを設定すると、クラスター化インデックス (clustered index) というインデックが作られ、データはプライマリーキー順に物理的に格納されます。

※ インデックスとはテーブルやビューからの行の取得を高速化するための、キーの構造です。

物理的な順序はひとつしか指定できないので、プライマリーキーは各テーブルにひとつだけしか指定できないということになります。


非クラスター化インデックス (nonclustered index) はひとつのテーブルに複数作ることができますが、実際のデータとは別の構造になっています。

そこにキー情報も保持されていて、キー情報を通じてデータを探すような構造になっています。

ですので、プライマリーキーのカラムを指定してデータを抽出すると、他のカラムを指定してデータを抽出するよりも、速くデータを抽出することができます。


実際はプライマリーキー以外のカラムをクラスター化インデックス (clustered index) に指定することもできますが、他の開発者の混乱をまねくと思います。

また、プライマリーキーなしにテーブルを作ることも可能ですが、プライマリーキーは大事な役割を果たしていて、設定しないとパフォーマンスに悪い影響がでますので、必ずプライマリーキーを設定するようにしましょう。

© 2010-2024 SQL Server 入門