SQL の基本 | DDL: データ定義言語 | Primary Key: 主キー

主キー (Primary Key) の各値は、テーブル内で一意である。つまり、主キーは 1 つのテーブルで各行のデータを一意に識別するために使用される。主キーには、元のデータ内の 1 つのフィールド、または元のデータとは関係なく作成されたフィールドを使用できる。主キーは 1 つ以上のフィールドを含むことができる。主キーが複数のフィールドを含む場合は、複合キー (Composite Key) という。

主キーは、新しいテーブルを作成するときに CREATE TABLE 句で設定できる。また、既存テーブルの構造を変更するときに ALTER TABLE で設定することもできる。

テーブル作成時の主キー設定方法

次に、新しいテーブルを作成するときに使用する主キー設定方法の例をいくつか示す。

MySQL:

CREATE TABLE customer  (
  sid INTEGER,
  last_name VARCHAR(30),
  first_name VARCHAR(30),
  PRIMARY KEY (sid)
);

Oracle:

CREATE TABLE Customer (
  sid integer PRIMARY KEY,
  last_name VARCHAR(30),
  first_name VARCHAR(30)
);

SQL Server:

CREATE TABLE Customer (
  sid INTEGER PRIMARY KEY,
  last_name VARCHAR(30),
  first_name VARCHAR(30)
);

テーブル構造変更時の主キー設定方法

次に、既存テーブルの構造を変更するときに使用する主キー設定方法を示す。

MySQL:

ALTER TABLE customer ADD PRIMARY KEY (sid);

Oracle:

ALTER TABLE customer ADD PRIMARY KEY (sid);

SQL Server:

ALTER TABLE customer ADD PRIMARY KEY (sid);

ALTER TABLE 句で主キーを設定する前に、主キーとして使用するフィールドが NOT NULL に設定されていることを確認する必要がある。つまり、そのフィールドには常にデータが入っていなければならない。