アリクイのデータベース勉強記録

データベースやプログラミングについて勉強した内容を発信していきます。

【SQL入門編】作成したテーブルに色々な設定をしてみよう

前回作ったテーブルに情報を追加する前に、色々と細かい設定をしていきたいと思います。

前回の記事はこちら db-arikui.hatenablog.com

今回は以下の設定を行います。 ・IDのカラムに重複を排除する設定をする ・退社日のカラムのデフォルト値を1111-11-11で設定する

PRIMARY KEY(主キー)の設定

主キー設定方法は以下の通りです。 ALTER TABLE テーブル名 ADD PRIMARY KEY(列名);

PRIMARY KEY(主キー)とは?

PRIMARY KEYは(主キー)とは、テーブルに登録するレコード(データ行)の全体のうち、ひとつのデータに特定することをデータベースが保証する列のこと……というと難しい 主キーに設定するカラムは一意であり、Nullがあってはいけない……これでもちょっとまだ難しいですね

例えば、今回のように従業員テーブルに「社員ID、氏名、部署コード、入社日、退社日」の項目があるとして、 「社員ID」がわかると一人の従業員の情報を簡単に特定できるようになります。 そして「社員ID」は重複も空白もあり得ないカラム(一意)なので条件を満たしている……というイメージです。 こういったカラムをPRIMARY KEYに設定することが多いようです。

ポイント 社員IDは重複しておらず(一意)、空白(Null)ではないため設定ができる ただし一つのテーブルに一つしか設定できない。 主キーを作成すると自動的にインデックスが貼られる(知らなかった…)

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

主キー以外にもUNIQUEキーを設定することができますが、今回主キーで設定したいと思います。 ・重複を許さない(e-mailアドレスや電話番号を入力するとき便利) ・Nullは許容する ・複数のカラムで設定が可能

補足:インデックスとは? データベースにおけるインデックスとは、目的のレコードを効率よく取得するための「索引」のことです。 インデックスを貼ることででテーブルを本に例えると、アリクイの情報は社員の本のページ1のように検索しやすくなる(データが増えたときに検索が早くなる) 本当はもっと細かい内容もありますが、今回は本当に軽くそういものもあるぐらいの感覚でOKです。

主キー設定

ALTER TABLE テーブル名 ADD PRIMARY KEY(列名); ALTER TABLEはテーブル自体の構造とか設定を変更するときに使うことが多いです。

ALTER TABLE animals ADD PRIMARY KEY(id);
テーブルのデフォルト値を設定

以下のSQLでカラムにデフォルトの値を設定することができます。 設定しておけばレコードを追加したときにいちいち入力しなくてもデフォルト値を入れてくれます。 ALTER TABLE テーブル名 COLUMN カラム名 SET DEFAULT 設定する値 ;

ALTER TABLE animals ALTER COLUMN out_day SET DEFAULT '1111-11-11' ;
-- ※設定前に作成されたレコードで既にNULLになっているカラムはそのまま残る

テーブルの設定を確認すると…… DESC テーブル名;

DESC animals;

idのKeyの所にPRIとout_dayのDefaultの所に先ほど設定したデフォルト値が入っていればOK!

最初にこういった細かい設定をしておくと後々作業の手戻りが少なくて便利なのでぜひマスターしてみてください! 設定内容も不要であれば削除することができるので練習だと思って挑戦してみましょう!