テーブルには多くのデータが格納されています。格納されたすべてのデータの中から1つのデータを特定したいときには、そのデータが一意に識別できなくてはなりません。つまり他のデータの値と重複しないことが前提です。この仕組みとして、データベースにはユニークカラムという仕組みがあります。このユニークカラムの中で最も大切なキーとしてプライマリーキー(主キー)という仕組みがあります。
カラムにプライマリーキー制約を設定すると、カラムには他のデータの値と重複することのない値しか格納することができなくなります。またNULLも格納することができません。その結果、プライマリーキー制約が設定されたカラムの値を検索することで、テーブルの中でただ一つのデータを特定することができるのです。プライマリーキーはテーブルに1つしか設定することができませんが、対象となるカラムは1つだけではなく 複数のカラムの組み合わせに対して設定することができます。例えば2つのカラムの組み合わせに対して設定した場合、 2つのカラムに格納されている値の組み合わせが他のデータと重複することはできなくなります。
プライマリーキーの設定
プライマリーキーの設定がない場合
プライマリーキーの設定がない状態で、テーブルにデータをセットしてみます。
データの挿入(新規)
表示タブをクリックすると
データの挿入(追加)
IDにどのような数字を入れるかは、何らのチェックもありませんので、間違って同じ数字をidとして入力することができます。そのため、2番が「安藤なつ」なのか?「浅田哲也」なのかの識別がつかず、idとして意味をなさなくなります。
プライマリーキーの設定がある場合
プライマリーキーの設定
①テーブルを空にする。
プライマリーキーの設定は空の状態でおこないますので、既に入っている場合は、「操作」というタブをクリックして、「テーブルを空にする」を選択します。
②「構造」タブのクリック
プライマリーキーを設定する為に、「構造」タブをクリックします。
③「主」のクリック
idの右端のその他の「主」をクリックします。
④プライマリーキーの設定完了
正常に実行されると、「主」がグレーとなり、リンクではなくなっています。idのとなりに鍵のマーク、そして、インデックスとしてidがプライマリーになっていることを示す表が表示されています。
これで、プライマリーkeyの設定が有効となりました。
データの挿入(新規)
プライマリーキーが設定されている状態でデータを入力してみます。
データの挿入(追加)
このようにエラー表示されますので、idを重複して入力することができなくなります。id=2に変えれば、正しく追加されます。
プライマリーキーの設定のタイミング
プライマリーキーはテーブルを作成する時に設定できます。
新規作成のクリック
プライマリーキーの設定
カラムの右のインデックスでpraimaryをクリックすると、最初から、このカラムをプライマリーとすることができます。
オートインクリメントの設定
オートインクリメントとは、テーブルにレコードが追加された際に自動的に連番をつけてくれる機能です。インクリメントとは、加算するという意味の英語で、つまり自動で加算するという事です。消したレコードは永久欠番となり、最後の一番大きい値に続けて連番がつくられます。
設定
「構造」タブのクリック
「操作」タブをクリック
「操作」タブをクリックして、idの「変更」をクリックします。
するとidというカラムの内容を変更する画面が表示されます。
A_Iにチェックを入れて「保存」をクリック
これでオートインクリメントが設定されました。idカラムのその他欄に「AUTO_INCREMENT」と表示されます。
データの挿入
オートインクリメントを設定した状態で、データを挿入してみます。
「挿入」タブのクリック
①id,nameの入力
これまではidのところに数字を入力していましたが、今回は必要ありません。
nameを入力して「実行」をクリックすると
②入力結果
「id 3の行を挿入しました」と表示されました。
③「表示」タブのクリック
「表示」をクリックすると
データを削除後、データの挿入
オートインクリメントで採番されたデータを削除してみます。
id=2を削除した後、データを追加するとidは何番がふられるか?というと、id=2は永久欠番となり、4番が採番されます。
データの削除
①id=2のレコード削除
id=2、name=小野妹子さんのレコードを削除してみます。
②削除結果
データの挿入
①「挿入」タブをクリック
nameを入力して、「実行」をクリック
②入力結果
「id 4の行を挿入しました」と表示されました。
③「表示」タブのクリック
「表示」をクリックすると
id=4が採番されて、id=2は欠番となっています。
タイムスタンプの設定
カラム(タイムスタンプ)の追加
コンピューターが内蔵している時計を使いtimestampとして登録することで、データベースにその時点の日付と時刻を記録することができます。
データベース(jinji)の選択
テーブル(staff_list)の選択
staff_listの構造をクリックします。
カラム数と位置の指定
追加するカラムの数と位置を指定して、実行をクリックします。
カラム設定画面の表示
タイムスタンプの設定
名前=stampとして、データ型=TIMESTAMPとして「保存する」をクリックします。
「表示」タブのクリック
データの追加
データを1件追加してみます。
timestampのところは、何も変更せず「実行」をクリックします。
データを挿入した日時が、オートインクリメントと同じ様に格納されます。
留意:
timestamp型は、日付と時刻の両方を含む型で、表現できる範囲は「1970-01-01 00:00:01」から「2038-01-19 03:14:07」までです。これはtimestampの2038年問題と言われ、MySQLのtimestampが1970年1月1日を0として32ビットの整数で計算している為、2038年になると32ビットを使い切って時計が1970年に戻ってしまうという現象です。