主キーと一意キーの違い

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

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

主キーとは

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

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

ユニークキーとは?

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

一意キーは主キーと同じですが、テーブル列に対して 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)
)
主キー 一意のキー
テーブルには主キーが XNUMX つ存在できます テーブル内には複数の一意のキーが存在する可能性があります
NULL 列は許可されません。 NULL 列を許可します。
デフォルトのインデックスはクラスタ化されています デフォルトのインデックスはクラスタ化されていません
主キーの目的は、エンティティの整合性を強制することです。 一意のキーの目的は、一意のデータを強制することです。
主キーは次の構文を使用して作成できます。 一意のキーは次の構文を使用して作成できます。
これは、データベース テーブル内の各レコードまたは行を一意に識別できるようにする SQL 制約です。 データベース テーブル内の XNUMX つの孤立レコードに同じ値を割り当てることを許可しないのは SQL 制約です。
主キーでは、重複キーは許可されません。 一意のキーでは、XNUMX つ以上のキー部分が null の場合、重複キーが許可されます。

主キーを使用する理由

主キー

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

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

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

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

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

主キーの特徴

主キーの重要な機能は次のとおりです。

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

ユニークキーの特徴

一意キーの重要な機能は次のとおりです。

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

主キーの作成例

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

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

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

一意のキーの作成例

属性が 1) StudID、2) Roll No、3) First Name、4) Last Name、5) E である同じ学生テーブルを考えます。mail.

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

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

主キーと一意キー: どちらが優れていますか?

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