概要:このチュートリアルでは、MySQLプライマリキー制約を使用してテーブルのプライマリキーを作成する方法を学習します。
MySQLプライマリキーの概要
主キーは、テーブルの各行を一意に識別する列または列のセットです。主キーは次のルールに従います。
- 主キーには一意の値が含まれている必要があります。主キーが複数の列で構成されている場合、これらの列の値の組み合わせは一意である必要があります。
- 主キー列に
NULL値を含めることはできません。NULLを主キー列に挿入または更新しようとすると、エラーが発生します。 MySQLは暗黙的にNOT NULL制約を主キー列に追加することに注意してください。 - テーブルは主キーを1つだけ持つことができます。
MySQLの動作が速いため整数の場合、主キー列のデータ型は整数である必要があります(例:INT, BIGINT)。また、主キーの整数型の値の範囲が、テーブルに含まれる可能性のあるすべての行を格納するのに十分であることを確認する必要があります。
主キー列には多くの場合テーブルに新しい行を挿入するたびに順次整数を自動的に生成する属性。
テーブルの主キーを定義すると、MySQLは。
MySQL主キーの例
PRIMARY KEY制約を使用すると、テーブルの主キーを定義できます。テーブルを作成または変更するとき。
1)CREATETABLEでPRIMARYKEY制約を定義します
通常、テーブルのプライマリキーはステートメント。
主キーに1つの列がある場合は、PRIMARY KEY制約を列制約として使用できます。
Code language: SQL (Structured Query Language) (sql)
主キーに複数の列がある場合は、thを使用する必要がありますe PRIMARY KEY制約をテーブル制約として使用します。
この構文では、column_listの列をコンマ( 、)。
PRIMARY KEYテーブル制約は、主キーに1つの列がある場合に使用できます。
次の例では、次の名前のテーブルを作成します。 users主キーがuser_id列である:
このステートメントは、rolesテーブル制約としてPRIMARY KEY制約があるテーブル:
主キーが複数の列で構成されている場合は、最後にそれらを指定する必要がありますCREATE TABLEステートメントのPRIMARY KEYキーワードの後に続く括弧内に主キー列のコンマ区切りリストを配置します。
次の例では、user_roles主キーがuser_idとrole_idの2つの列で構成されるテーブル。 PRIMARY KEY制約をテーブル制約として定義します。
このステートメントは2つの外部キー制約も作成したことに注意してください。
2)PRIMARYを定義します。 ALTERTABLEを使用したKEY制約
何らかの理由でテーブルに主キーがない場合は、ALTER TABLEステートメントを使用して主キーをに追加できます。表は次のとおりです。
Code language: SQL (Structured Query Language) (sql)
次の例では、id列を主キーに追加します。
まず、主キーなしでpkdemosテーブルを作成します。
Code language: SQL (Structured Query Language) (sql)
次に、主キーを追加しますALTER TABLEステートメントを使用したpkdemosテーブルへのキー:
Code language: SQL (Structured Query Language) (sql)
すでにデータがあるテーブルに主キーを追加する場合。主キーに含まれる列のデータは一意であり、NULLではない必要があります。
主キーと一意キーとキー
KEYは、INDEXの同義語です。主キーまたは一意キーの一部ではない列または列のセットのインデックスを作成する場合は、KEYを使用します。
UNIQUEインデックスは、列の値が一意である必要があることを保証します。 PRIMARYインデックスとは異なり、MySQLではUNIQUEインデックスでNULL値を使用できます。さらに、テーブルには複数のUNIQUEインデックスを含めることができます。
emailとivid = “a8ac12086e usersテーブルのユーザーの “>
は一意である必要があります。これらのルールを適用するには、email列とusername列のUNIQUEインデックスを次のように定義します。 次のステートメント:
username列にUNIQUEインデックスを追加します。
Code language: SQL (Structured Query Language) (sql)
email列にUNIQUEインデックスを追加します。
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、新しいテーブルの主キーを作成する方法、または既存のテーブルに主キーを追加する方法を学習しました。
- このチュートリアルは役に立ちましたか?
- はいいいえ