【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である「従業員番号」で一人の従業員の姓名を特定するような場合です。

sql_primary_key_1

そんな、PRIMARY KEYの役割について次項で確認していきましょう。

なお、SQL開発環境の準備がまだの場合は、こちらで詳しく解説していますので、ぜひ参考にしてください!

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を設定するサンプルコードを確認してみましょう。

PRIMARY KEYが設定されたかを確認してみましょう。Sequel Proを使った場合は次のように確認できます。

sql_primary_key_2png (1)

このように「従業員番号(no)」にPRIMARY KEYが定義されたことが確認できました。

もしも、MySQLのコマンドで確認したい場合は、DESCコマンドを使ってKey列を確認します。

“PRI”が設定されていれば、その列はPRIMARY KEYです。

次項では、PRIMARY KEYを後から追加する方法について解説していきます!

PRIMARY KEY(主キー)を後から追加してみよう

作成したテーブルに、PRIMARY KEYを後から追加するには、次のコマンドで作成できます。

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


従業員テーブルの「従業員番号(no) 」にPRIMARY KEYを設定するサンプルコードを確認してみましょう。

はじめに、従業員テーブルをPRIMARY KEYの設定なしで作成します。

テーブル定義の状態:

「Key列」に”PRI”がないため、PRIMARY KEYは定義されていないことが確認できます。

つづいて、ALTER TABLE文で「従業員番号(no)」にPRIMARY KEYを設定します。

テーブルの定義:

このように、ALTER TABLE 文でPRIMARY KEYを後から追加できることを確認することができました。

次は、PRIMARY KEYを削除する方法について解説します。

PRIMARY KEY(主キー)を削除してみよう

PRIMARY KEYを削除するには、

  • ALTER TABLE テーブル名 DROP PRIMARY KEY;


で実行できます。

次のサンプルコードで実行して見ましょう。

テーブル定義の状態:

このように、「no列」のPRIMARY KEYを削除したことが確認できました。

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

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

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

このように、複数のPRIMARY KEYを作成するためには、

  • PRIMARY KEY (列名,列名…)


とカンマ区切りで複数を設定します。

サンプルコードで「従業員番号(no)+部署番号(department_no)」にPRIMARY KEYを定義するサンプルコードを確認してみましょう。

テーブルの定義:

このように、複数のPRIMARY KEYを設定することができました。

まとめ

いかかでしたか?

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

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

PRIMARY KEYは、データベースのテーブル設計をする上で必須のスキルなので、ぜひ取得してみてください。そして、PRIMARY KEYの使い方を忘れてしまったらこの記事を確認してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

オオイシ

オオイシ

システムエンジニア歴15年のオオイシです!好物は Java と Ruby。プログラミング、システムアーキテクトからマネジメントに到るまでなんでも食べます。
システム開発の相談やお困りごとがあればお気軽に
[email protected] まで連絡頂けると幸いです

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説