ホームページ > データベース > mysql チュートリアル > 主キーと一意キーの単純な比較

主キーと一意キーの単純な比較

青灯夜游
リリース: 2019-01-29 14:33:49
オリジナル
8683 人が閲覧しました

キーと一意キーの両方は、タプルを一意に識別し、列または列の組み合わせ内で一意性を強制するために使用されます。では、それらをどのように区別すればよいのでしょうか?次の記事では、主キーと一意キーの簡単な比較と、主キーと一意キーの違いについて紹介しますので、ご参考になれば幸いです。

主キーと一意キーの単純な比較

主キーとは何ですか?

主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キーはテーブルに整合性制約を適用します。テーブル内で許可される主キーは 1 つだけです。主キーは重複値や null 値を受け入れません。テーブル内の主キーの値はほとんど変更されないため、主キーを選択するときは注意し、ほとんど変更されない場所を選択する必要があります。あるテーブルの主キーは、別のテーブルの外部キーによって参照できます。 [ビデオチュートリアルの推奨: MySQL チュートリアル]

主キーをよりよく理解するために、roll_number、name、batch、phone_number、citizen_id などの属性を持つ Student という名前のテーブルを作成します。 、など。

主キーと一意キーの単純な比較

上記の例では、各大学に登録されている学生は一意の Roll_number を持っているため、roll_number 属性が同じ NULL 値を持つことはできません。そのため、2 人の学生が同じ Roll_number を持つことはできません。 、テーブル内の各行は、学生の roll_number 属性によって一意に識別できます。したがって、この場合は、Roll_number 属性を主キーとして作成できます。

一意のキーとは何ですか?

#一意キー制約により、リレーションシップまたはテーブル内の単一のタプルを一意に識別できます。主キーとは異なり、テーブルには複数の一意のキーを持つことができます。一意キー制約は、列に対して null 値のみを受け入れることができます。一意キー制約は、別のテーブルの外部キーによっても参照されます。これは、主キーではない列および列グループに一意の制約を適用する場合に使用されます。

一意のキーをよりよく理解するために、Roll_number、Name、Batch、Phone_number、および Citizen_ID 属性を持つ Student テーブルを使用します。ここでは、Roll_number 属性が主キーに与えられています。

主キーと一意キーの単純な比較

この例では、Citizen_ID に一意の制約を割り当てることができます。ここで、Citizen_ID 列の各エントリは一意であり、重複してはなりません。なぜなら、国のすべての国民は次のことを行う必要があるからです。固有の識別番号を持っています。ただし、学生が別の国から移住した場合、その学生は Citizen_ID を持たず、一意性制約では NULL が許可されているため、エントリには NULL 値が含まれる可能性があります。

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

主キーと一意キーの単純な比較

1.プロパティが主キーとして宣言されている場合、NULL 値は受け入れられません。一方、プロパティが Unique として宣言されている場合は、NULL 値を受け入れることができます。

2. テーブル内に存在できる主キーは 1 つだけですが、一意のキーは複数存在する可能性があります。

3. 主キーを定義するときにクラスター化インデックスを自動的に作成します。対照的に、一意のキーは非クラスター化インデックスを生成します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上が主キーと一意キーの単純な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート