SQL PRIMARY KEY: 既存のテーブルを作成して追加する方法

SQLの主キーとは何ですか?

主キー レコードを一意に識別するフィールド、またはフィールドの組み合わせです。 主キーは、一意の列または列のセットです。 つまり、主キーのすべての値は一意です。

主キーの規則

  • 各テーブルは SQL 主キーを XNUMX つだけ持つことができます。
  • すべての値は一意であり、主キー SQL 値は各行を一意に識別できます。
  • システムでは、テーブルに既に存在する SQL Server 主キーを持つ行を挿入することはできません。
  • 主キーを NULL にすることはできません。

以下の図は、SQL 主キーに関する上記のすべてのポイントをまとめたものです。

SQL の主キーの規則
主キー SQL の仕組み

SQL Server で主キーを作成する方法

主キーを作成できます 2通りの方法:

1. SQL Server Management Studio

2. T-SQL: 新しいテーブルの作成中にプライマリを作成する

SQL Server Management Studio

ステップ1) テーブル名を右クリックします。 クリック デザイン。

SQL Serverで主キーを作成する

ステップ2) 列名を右クリックします。 クリック '主キーを設定します」

SQL Serverで主キーを作成する

結果: Course_Id は現在、 主キー。

SQL Serverで主キーを作成する

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);

SQLで既存のテーブルに主キーを追加する

既存のテーブルに主キー制約を追加しました。 制約は入学列に追加され、students_pk という名前が割り当てられています。

興味深い事実!

  • 主キーには複数の列を組み合わせることもできます。 この組み合わせはとして知られています 複合主キー.
  • 主キーには最大 16 列を含めることができます。

まとめ

  • 各テーブルには主キーを XNUMX つだけ持つことができます
  • すべての値は一意であるため、 各行を一意に識別します。