SQL PRIMARY KEY 制約

❮ 前章へ 次章へ ❯

SQL PRIMARY KEY 制約

PRIMARY KEY 制約は、ユニークにデータベーステーブル内の各レコードを識別します。

主キーは、ユニークな値を含まなければなりません。

主キーの列には、NULL 値を含むことができません。

各テーブルは主キーを持つべきで、各テーブルはただ 1 つの主キーを持つことができます。


CREATE TABLE での SQL PRIMARY KEY 制約

次の SQL は、"Persons" テーブルを作るときに、"P_Id" 列に PRIMARY KEY を作成します:

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

PRIMARY KEY 制約のネーミングを可能にするため、および複数の列に PRIMARY KEY 制約を定義するためには、 次の SQL 構文を使用します:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

注: 記の例では、唯一の PRIMARY KEY(pk_PersonID)があります。 しかし、pk_PersonID の値は、2つの列(P_Id と LastName)で作られています。


ALTER TABLE での SQL PRIMARY KEY 制約

作成済みテーブルの "P_Id" 列に、PRIMARY KEY 制約を作成するためには、次の SQL を使用します:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

PRIMARY KEY 制約のネーミングを可能にするため、および複数の列に PRIMARY KEY 制約を定義するためには、 次の SQL 構文を使用します:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

注: 主キーを追加するのに ALTER TABLE 文を使用する場合、主キーの列は、 既に(テーブルを最初に作成した時点で)NULL 値が含まれないことを宣言していなければなりません<


PRIMARY KEY 制約の削除

PRIMARY KEY 制約の削除には、次の SQL を使用します:

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

❮ 前章へ 次章へ ❯