3-2 テーブルの構成要素
行と列
横を行 = レコード
縦を列 = カラム
キー
ある特定のデータを引き出すための鍵
あるレコードを特定するための列の組み合わせ
主キー
テーブルにおいて必ず1つ存在しなければならず、かつその値は一意ではなくてならない
テーブルに1つでも存在しなければいけないということ = テーブル内でレコードの完全な重複は許されない
完全な重複が存在してしまうときは、新しいキーを追加して重複を避けなければならない
複数列を組み合わせて作る主キーを複合キーと言う
外部キー
2つのテーブル間の列同士を紐付けて設定する
親テーブルを参照するためのキー
役割は、親テーブルに存在しない情報が子テーブルに登録されるのを防ぐ = 参照整合性制約
親テーブルのレコードを削除するときに、それに紐づいている子テーブルのレコードをまとめて全削除する設定をカスケードという
制約
NOT NULL制約
データの値をNULL(空欄)にできることを禁止する
列単位で指定できる
NULLはSQL上で厄介な問題を引き起こすため、可能な限りデータはNULLにしたくない
主キーには、自動的にNOT NULL制約が付与されている
一意制約
ある列の組み合わせに一意であることを求める
主キーとの違いは、主キーは1つテーブルにつき、1つまでであるが、一意制約はいくつでも設定できる
check制約
ある列の値がとる範囲を強制する
1つのテーブルに、いくつでも設定できる
テーブルと列の名前
ルール1️⃣ 名前に使える文字集合
半角アルファベット
半角数字
アンダーバー
ルール2️⃣ 先頭はアルファベット
名前の先頭はアルファベットのみ
ルール3️⃣ 名前は重複してはならない
テーブルは、DBMSが設定する範囲内(ドメイン)においては、同じ名前を使うことはできない
1つテーブル内で、同じカラム名を設定することはできない