ゼロから始めるPHP講座Vol25 PrimaryKeyとは


ゼロから始めるPHP講座Vol25 PrimaryKeyとは
目次
  1. ゼロから始めるPHP講座PrimaryKeyとは
  2. PRIMARYKEY
  3. 補足:その他の制約

ゼロから始めるPHP講座PrimaryKeyとは

PRIMARYKEY

「重複した値がなく」かつ「必ずデータが入力されている」場合、そのカラムだけで「必ずレコードが特定」できるため、重複した値がないカラムを設定することは重要です。

重複がない状態を「ユニーク(unique)ユニーク(unique)一意一意

例えば社員情報を管理しているemp_tableでは、emp_idカラムはユニークである必要があります。

emp_table

emp_name、job、ageのカラムは、どれも値が重複する可能性がある情報のため、emp_idがユニークでないと、全てのカラムが同じデータのレコードが出来てしまう可能性があります。

emp_table1山田太郎manager505山田太郎manager50

もし上記のように、同姓同名で職種も年齢emp_id

このようにユニークなデータを作りたいときには「PRIMARYKEY

PRIMARYKEYには以下の特徴があります。

  • 値の重複がない(ユニーク)- データは必ず入力しなければならない。(NULLにはならない)

PRIMARYKEYはカラムに対して設定を行います。

phpMyAdminで既に作成したテーブルには、PRIMARYKEYを設定してあるカラムがあります。

例えばgoods_tableの場合、goods_idに対して以下のような設定をしました。

PRIMARYKEY1-639

PRIMARYKEYを設定してあるカラムに既に存在する値を追加しようとした場合、エラーが発生し、SQLが失敗します。

実際にgoods_tableに既に存在するgoods_idを追加してみましょう。

PRIMARYKEY2-639

PRIMARYKEY3-639

「#1062Duplicateentry‘1’forkey‘PRIMARY’」と、既に’1’というデータがあるのでPRIMARYに違反するという旨のエラーが表示されます。

補足:その他の制約

PRIMARYKEYというカラムに設定する制約を紹介しましたが、その他にも様々な制約があります。

データは必ず入力しなければならない。(NULLにはならない)NOT NULLUNIQUEFOREIGN KEY

NOTNULLはカラム内のデータに値なし(NULL)を不可とします。phpMyAdminでテーブル作成する場合、デフォルトではNOTNULLの制約がついています。

UNIQUEはカラム内のデータがユニークであることを保証しますが、PRIMARYKEYと異なり、値なし(NULL)を入力することは可能です。

FOREIGNKEYは、データの不整合を防ぐための制約で、詳細については別な章にて説明します。

正しい制約をつけることでトラブル発生を未然に防ぐことができ、リレーショナルデータベースを使うことによる利点の1つとなります。

テーブル作成の際には、適切な制約を設定するようにしましょう。

NEXTLESSONAutoIncrement(A_I)とはAutoIncrement(A_I)とは

PREVLESSONデータの変更・削除データの変更・削除


CodeCampus編集部
この記事を書いた人
CodeCampus編集部
まずは7日間お試し!人気プログラミング講座を無料公開中
オンライン・プログラミングレッスンNo.1のCodeCamp