主キーと一意キーの違い

主キーと一意キーの主な違い

  • テーブル内には主キーが XNUMX つ存在することも、テーブル内に複数の一意キーが存在することもできます。
  • 主キーの目的は、エンティティの整合性を強制することです。一方、一意キーの目的は、一意のデータを強制することです。
  • 主キーではデフォルトのインデックスはクラスター化されていますが、一意キーではデフォルトのインデックスはクラスター化されていません。
  • 主キーでは null 列は許可されませんが、一意キーでは null 列が許可されます。
  • 主キーでは重複キーは許可されませんが、一意キーでは XNUMX つ以上のキー部分が null の場合、重複キーは許可されます。

主キーと一意キーの違い
主キーと一意キーの違い

ここでは、主キーと一意キーの違いを分析し、それぞれの長所と短所を総合的に評価します。

主キーとは

主キー制約は、テーブル内のすべての行を一意に識別するテーブル内の列または列のグループです。主キーは重複することはできません。つまり、同じ値がテーブル内に複数回出現することはできません。

テーブルには主キーを 1 つだけ持つことができます。 主キー 列またはテーブルレベルで定義できます。複合主キーを作成する場合は、テーブル レベルで定義する必要があります。

主キーの作成例

次の例は、student というテーブルがあることを示しています。このテーブルには、1) StudID、2) Roll No.、3) First Name、4) Last Name、5) Email の XNUMX つの属性が含まれています。

Roll No 属性には重複値や null 値を含めることはできません。これは、大学に登録するすべての学生が固有のロール番号を持つことができるためです。学生のロール番号を使用すると、表の各行を簡単に識別できます。したがって、これは主キーとみなされます。

主キーの作成例
主キーの例

主キーの特徴

私の観察に基づくと、主キーの重要な特徴は次のとおりです。

  • 主キーはテーブルのエンティティの整合性を実装します。
  • テーブル内に保持できるプライマリは XNUMX つだけです。
  • 主キーには 1 つ以上のテーブル列が含まれます。
  • 列は null ではないものとして定義されます。

主キーを使用する理由

主キー

私の実践的な知識を振り返ると、主キーを使用する重要な理由は次のとおりです。

  • 主キーの主な目的は、データベース テーブル内のすべてのレコードを識別することです。
  • NULL 値の入力を許可しない場合は、主キーを使用できます。
  • レコードを削除または更新すると、データベース データの整合性を確保するために指定したアクションが実行されます。
  • 親テーブルの削除または更新操作を拒否するには、制限操作を実行します。
  • DBMS テーブルを物理的に編成するたびに、データはクラスター化インデックスの順序で編成されます。

ユニークキーとは?

一意のキーは、データベース レコードを一意に識別するテーブル内の 1 つ以上のフィールドまたは列のグループです。

一意キーは主キーと同じですが、テーブル列に対して XNUMX つの NULL 値を受け入れることができます。 また、同じ値を含めることはできません。 一意制約は、他のテーブルの外部キーによって参照されます。

一意のキーの作成例

次の属性を持つ同じ学生テーブルを検討してください: 1) StudID、2) ロール番号、3) 名、4) 姓、および 5) 電子メール。

大学の各学生は一意の ID 番号を持つ必要があるため、スタッド ID には一意の制約があり、スタッド ID 列のエントリは一意になる可能性があります。学生が大学を転校する場合、学生証はありません。一意キー制約では null が 1 つだけ許可されるため、エントリには null 値が含まれる可能性があります。

一意のキーの作成例
ユニークなキーの例

ユニークキーの特徴

ここでは、一意のキーの重要な機能の概要を説明します。

  • テーブル内に複数の一意のキーを定義できます。
  • デフォルトでは、一意のキーは非クラスター化一意インデックス内にあります。
  • 1 つ以上のテーブル列で構成されます。
  • テーブルの列は NULL にすることもできますが、列ごとに NULL を XNUMX つだけ指定することをお勧めします。
  • 一意制約は、外部キー制約によって簡単に参照できます。

一意のキーを使用する理由

一意のキーの使用を推奨する重要な理由は次のとおりです。

  • 一意キーの目的は、各テーブル レコードの列の情報が一意であることを確認することです。
  • ユーザーに null 値の入力を許可する場合。
  • 一意のキー デフォルトで非クラスター化インデックスを作成するため使用されます。
  • 一意のキーは、列に null 値を保持する必要がある場合に使用できます。
  • テーブルの 1 つまたは複数のフィールド/列がデータベース テーブル内のレコードを一意に識別する場合。

主キーと一意キーの違い

私の分析では、主キーと一意キーの主な違いは次のとおりです。

主キーと一意キーの違い
主キーと一意のキー
比較基準 主キー 一意のキー
キーの数 テーブルには主キーが XNUMX つ存在できます テーブル内には複数の一意のキーが存在する可能性があります
NULL NULL 列は許可されません。 NULL 列を許可します。
目次 デフォルトのインデックスはクラスター化されています デフォルトのインデックスは非クラスター化です
目的 主キーの目的は、エンティティの整合性を強制することです。 一意のキーの目的は、一意のデータを強制することです。
  これは、データベース テーブル内の各レコードまたは行を一意に識別できるようにする SQL 制約です。 これは、データベース テーブル内の 2 つの独立したレコードに同じ値を割り当てることを許可しない SQL 制約です。
値の変更 主キーでは、重複キーは許可されません。 一意のキーでは、XNUMX つ以上のキー部分が null の場合、重複キーが許可されます。
構文

主キーは次の構文を使用して作成できます。

CREATE TABLE Employee
(
ID int PRIMARY KEY, 
Name varchar(255), 
City varchar(150)
)

一意のキーは次の構文を使用して作成できます。

CREATE TABLE Employee
(
ID int UNIQUE.
Name varchar(255) NOT NULL. City varchar(150)
)

以下を探索することもできます。 主キーと外部キーの違い

主キーと一意キーのどちらかを選択する方法

  • 重複を含めるべきではないことがわかっている列がある場合は、一意のキーの方が適しています。
  • 主キーは、テーブル内に null を保持できない場合に最適です。別のテーブルに外部キーを持ってリレーションシップを作成する場合にも使用できます。