概要:このチュートリアルでは、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)
このチュートリアルでは、新しいテーブルの主キーを作成する方法、または既存のテーブルに主キーを追加する方法を学習しました。
- このチュートリアルは役に立ちましたか?
- はいいいえ