SQL入門チュートリアルマニュ...login
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQLの主キー



SQL PRIMARY KEY 制約

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

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

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

すべてのテーブルには主キーが 1 つある必要があり、各テーブルは主キーを 1 つだけ持つことができます。


CREATE TABLE 時の SQL PRIMARY KEY 制約

次の SQL は、「persons」テーブルの作成時に「P_Id」列に PRIMARY KEY 制約を作成します。 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) が 1 つだけあります。ただし、pk_PersonID の値は 2 つの列 (P_Id と 苗字)。



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