データベース設計

【SQL入門】PRIMARY KEY(主キー)制約とは?

SQLのPRIMARY KEY (主キー)について学んでいきます。

PRIMARY KEYの使いかたを覚えると、高速にテーブルデータの検索が実行できたり、整合性の取れたデータを作成することが可能です。

この記事では、

  • PRIMARY KEY(主キー)とは?
  • PRIMARY KEY(主キー)の役割について理解しよう
  • PRIMARY KEY(主キー)の作成方法
  • PRIMARY KEY(主キー)を後から追加してみよう
  • PRIMARY KEY(主キー)を削除してみよう
  • 複数の列にPRIMARY KEY(主キー)を追加する方法

などの基礎的な使い方から応用的な使い方関しても解説していきます。

こちらの記事も併せて読んでいただけると、データベースに関する基礎知識が理解できます。

PRIMARY KEY(主キー)とは?

PRIMARY KEYは(主キー)とは、テーブルに登録するレコード(データ行)の全体のうち、ひとつのデータに特定することをデータベースが保証する列のことです。

例えば、従業員テーブルに「従業員番号、部署番号、姓、名」の項目があるとして、PRIMARY KEYである「従業員番号」で一人の従業員の姓名を特定するような場合です。

PRIMARY KEY(主キー)の役割について理解しましょう

PRIMARY KEYは、世の中にあるデータベースのテーブルのほとんどはPRIMARY KEYが設定されているといっていいほど、重要な役割があります。

そんなPRIMARY KEYの役割は、以下の通りです。

  • テーブル検索のスピードを格段に早くする
  • テーブルデータの整合性を保証する

PRIMARY KEYを設定すると「どこに何が登録されているか?」を探すためのインデックスと呼ばれる情報が自動的に作成されます。
また、PRIMARY KEYを設定した列は同じデータは登録できないためエラーとなり、NULL値も登録できません。

PRIMARY KEYの重要性について理解いただけたところで、次はPRIMARY KEYの作成方法について解説していきます。

PRIMARY KEY(主キー)の作成方法

PRIMARY KEYを作成するには、一般的にテーブル作成と同時に設定します。

テーブル作成と同時にPRIMARY KEYを設定するには、CREATE TABLE文の中に、PRIMARY KEY (列名) を追加します。

「従業員番号、部署番号、性、名」を持つテーブルを作成すると同時に「従業員番号」にPRIMARY KEYを設定するサンプルコードを確認してみましょう。

CREATE TABLE sample1_employees (
 number int NOT NULL, -- 従業員番号
 department_no int, -- 部署番号
 last_name varchar(255), -- 名
 first_name varchar(255), -- 姓
 PRIMARY KEY (number)
);

従業員番号(number) にPRIMARY Key が設定されます。

PRIMARY KEY(主キー)を後から追加する

作成したテーブルに、PRIMARY KEYを付け忘れた。。。という場合に、後から追加するには、次のコマンドで作成できます。

ALTER TABLE テーブル名 ADD PRIMARY KEY(列名);

テーブル定義の状態を確認するには、mysql> desc (テーブル名)

PRIMARY KEY(主キー)を削除する

PRIMARY KEYを削除するには、

ALTER TABLE テーブル名 DROP PRIMARY KEY;

で実行できます。

複数の列にPRIMARY KEY(主キー)を追加する方法

PRIMARY KEYは2つ以上の列に追加することもできます。

例えば、部署ごとに従業員番号を設定したい時は「従業員番号+部署番号」で一意になります。

このように、複数のPRIMARY KEYを作成するためには、以下のようにカンマ区切りで複数を設定します。

PRIMARY KEY (列名,列名...)

まとめ

いかかでしたか?

今回はSQLのPRIMARY KEY(主キー)について解説しました。

PRIMARY KEYは、テーブル検索のスピードを格段に早くしたり、テーブルデータの整合性を保証するため作成します。

PRIMARY KEYは、データベースのテーブル設計をする上で必須のスキルになります。
PRIMARY KEYの使い方を忘れてしまったらこの記事を確認していただけると幸いです。

学習書の紹介

SQLの絵本 第2版 データベースが好きになる新しい9つの扉

データベースは沢山のデータを管理するためのソフトで、データの登録/変更/削除を確実にし、多数のユーザーからの操作を受け付ける仕組みが備わっています。
このデータベースを操作するための言語がSQLです。
本書は「そもそもデータベース(リレーショナルデータベース)とは
どういうものであるか」から解説を始めます。基礎知識を身につけ、
データの操作を実際に試して学ぶことができる一冊です。
・絵を多用し短い解説で絵本のようにビジュアルに理解することができる
・2ページを単位とした説明、基礎に絞り込んだ内容でスピーディに習得
・予備知識は不要。「データベースの基本概念」から学べる。
・改訂版では、内容を最新にアップデートし、操作を中心に学べる。
・無料で試せる、最新のデータベースのインストール方法も紹介。

-データベース設計