SQL PRIMARY KEY: 既存のテーブルを作成して追加する方法
SQLの主キーとは何ですか?
主キー レコードを一意に識別するフィールド、またはフィールドの組み合わせです。 主キーは、一意の列または列のセットです。 つまり、主キーのすべての値は一意です。
主キーの規則
- 各テーブルは SQL 主キーを XNUMX つだけ持つことができます。
- すべての値は一意であり、主キー SQL 値は各行を一意に識別できます。
- システムでは、テーブルに既に存在する SQL Server 主キーを持つ行を挿入することはできません。
- 主キーを NULL にすることはできません。
以下の図は、SQL 主キーに関する上記のすべてのポイントをまとめたものです。
SQL Server で主キーを作成する方法
主キーを作成できます 2通りの方法:
1. SQL Server Management Studio
2. T-SQL: 新しいテーブルの作成中にプライマリを作成する
SQL Server Management Studio
ステップ1) テーブル名を右クリックします。 クリック デザイン。
ステップ2) 列名を右クリックします。 クリック '主キーを設定します」
結果: Course_Id は現在、 主キー。
T-SQL: 新しいテーブルの作成時に主キーを作成します。
以下は、T-SQL から主キーを持つテーブルを作成する構文です。
構文:
CREATE TABLE <Table_Name> ( Column1 datatype, Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name) . );
SQL の主キーとして XNUMX つの列を持つテーブルを作成しましょう。
クエリ:
CREATE TABLE COURSE_TSQL_PK (Course_ID Int not Null, Course_name Varchar(20) CONSTRAINT PK PRIMARY KEY (Course_ID) )
ステップ1) をクリックしてクエリを実行します。 '実行する。'
結果: Course_Id は現在、 主キー。
例: 同じコース ID で複数のレコードを入力できるかどうかを確認してみましょう。
ステップ1) を使用して 4 行を挿入します 異なるコースID
Insert into COURSE_TSQL_PK values (1,'SQL'); Insert into COURSE_TSQL_PK values (2,'Python'); Insert into COURSE_TSQL_PK values (3,'SQL'); Insert into COURSE_TSQL_PK values (4,'C');
ステップ2) 選択クエリを実行して、すべてのデータが正常に挿入されたことを確認します。
注意: 非主キーに重複した値を挿入できます。
ステップ3) 次に、主キーである既存の Course_ID を使用して新しいレコードを挿入してみましょう。
Insert into COURSE_TSQL_PK values (4,'JAVA');
結果: 4 主キーである Course_ID 列があるため、システムは新しい値の挿入を許可しません。
SQLで既存のテーブルに主キーを追加するにはどうすればよいですか?
次に、SQL で既存のテーブルに主キーを追加する方法を見てみましょう。
ALTER ステートメントを使用して主キーを作成できます。 ただし、主キーは NOT NULL として定義された列にのみ作成できます。 NULL を許可する列に主キーを作成することはできません。 必要な場合は、テーブルを削除して再作成する必要があります。
構文は次のとおりです。
ALTER TABLE tableName ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);
例:
ALTER TABLE students ADD CONSTRAINT students_pk PRIMARY KEY (admission);
既存のテーブルに主キー制約を追加しました。 制約は入学列に追加され、students_pk という名前が割り当てられています。
興味深い事実!
- 主キーには複数の列を組み合わせることもできます。 この組み合わせはとして知られています 複合主キー.
- 主キーには最大 16 列を含めることができます。
まとめ
- 各テーブルには主キーを XNUMX つだけ持つことができます
- すべての値は一意であるため、 各行を一意に識別します。