この記事では、SQL サーバー に関する関連知識を提供します。主に SQL Server の主キー制約 (PRIMARY KEY) について紹介します。主キーは、テーブル内の各行を一意に識別する列またはグループです。コラムでは、このトピックについて詳しく展開しています。一緒に見てみましょう。皆様のお役に立てれば幸いです。
推奨学習:「SQL チュートリアル 」
主キー テーブル内の各行を一意に識別する列または列のセットです。主キー制約を使用して、テーブルの主キーを作成できます。
主キーに列が 1 つだけ含まれている場合は、列制約として PRIMARY KEY
制約を使用できます。
CREATE TABLE table_name ( pk_column data_type PRIMARY KEY, ... );
主キーに 2 つ以上の列がある場合は、次のようにする必要があります。主キー制約を使用する テーブル制約:
CREATE TABLE table_name ( pk_column_1 data_type, pk_column_2 data type, ... PRIMARY KEY (pk_column_1, pk_column_2) );
各テーブルには主キーを 1 つだけ含めることができ、1 つの主キーには複数の列を含めることができます。つまり、複数の列の組み合わせを繰り返すことはできません。主キーに含まれるすべての列は、NOT NULL
として定義する必要があります。すべての主キー列に NOT NULL
制約が指定されていない場合、SQL Server はこれらの列に非 NULL 制約を自動的に設定します。
次の例では、1 つの列で構成される主キーを持つテーブルを作成します。
CREATE TABLE dbo.activities ( activity_id INT PRIMARY KEY IDENTITY,--主键 activity_name VARCHAR (255) NOT NULL, activity_date DATE NOT NULL );
In tabledbo.activities
では、activity_id
列が主キー列であり、この列の値を繰り返すことはできないことを意味します。
次の例では、外部キーを形成する 2 つの列を持つ新しいテーブルを作成します:
CREATE TABLE dbo.participants( activity_id int, customer_id int, PRIMARY KEY(activity_id, customer_id) );この例では、
activity_id または customer_id
列の値は繰り返すことができますが、2 つの列の値の組み合わせはそれぞれ一意である必要があります。通常、主キーはテーブルの作成時に常に定義されます。ただし、既存のテーブルに主キーが定義されていない場合があります。この場合、
ALTER TABLE ステートメントを使用してテーブルに主キーを追加できます。例:
最初に主キー列のないテーブルを作成します:
CREATE TABLE dbo.events( event_id INT NOT NULL, event_name VARCHAR(255), start_date DATE NOT NULL, duration DEC(5,2) );次に、
event_id 列を主キーにします:
ALTER TABLE sales.events ADD PRIMARY KEY(event_id);
sales.events
テーブルに既にデータがある場合は、
列を主キーに昇格する前に、## の値が正しいことを確認する必要があることに注意してください。 #event_idは繰り返されません。
推奨学習: 「
SQL チュートリアル」
以上がSQL Server の主キー制約 (PRIMARY KEY) を簡単に理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。