Latest web development tutorials

SQL PRIMARY KEY制約

SQL PRIMARY KEY制約

PRIMARY KEY制約は一意にデータベーステーブル内の各レコードを識別する。

主キーは、一意の値が含まれている必要があります。

主キー列はNULL値を含めることはできません。

各テーブルには主キーを持っている必要があり、各テーブルには1つのプライマリキーを持つことができます。


SQL PRIMARY KEY制約はTABLE時のCREATE

「人」の表は、「P_ID」列にPRIMARY KEY制約を作成するために作成され、以下のSQL:

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アクセス:

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アクセス:

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

注:上記の例では、1つのプライマリキーPRIMARY KEY(pk_PersonID)。しかし、値pk_PersonIDは、その2列(P_IDおよびLastName)で構成されています。


SQL PRIMARY KEY制約は、ALTER TABLEとき

テーブルが作成されている場合、「P_ID」でカラムのPRIMARY KEY制約を作成し、次のSQLを使用してください:

MySQLの/ SQL Serverの/ Oracleの/ MSアクセス:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

PRIMARY KEY制約に名前を付け、複数の列にPRIMARY KEY制約を定義するには、次のSQL構文を使用します。

MySQLの/ SQL Serverの/ Oracleの/ MSアクセス:

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アクセス:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID