問題

13
SQL

主キーと外部キー制約を追加しよう

主キーとは、その値が表の行を一意的に識別する制約で、 外部キーは、親テーブルに存在しないデータを子テーブルが持つことが無いようにするための制約のことです。

SQLの問題に挑戦しよう!

問題

主キーと外部キー制約を追加しよう

費目テーブルの「ID」に主キー制約、家計簿テーブルの費目IDに外部キー制約を設定しましょう。

期待する画面

解答の画像

解答と解説(主キーと外部キー制約を追加しよう)

解説

LINE登録して解答を見る

※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます

主キーは「行を一意に識別する」ための列を指します。
そのため今回主キーに該当するのは費目テーブルの「ID」となります。
家計簿テーブルの「費目ID」は参照するためのものである為、外部キーに該当します。
主キー制約(PRIMARY KEY)を設定するには、データ型の後に'PRIMARY KEY'を記述しましょう。
テーブルを作成していない場合はCREATE TABLE文に続けて記述しますが、今回はすでにあるテーブルのカラムに追加するのでCHANGEを使用して書きます。
CHANGEは「変更前のカラム 変更後のカラム名 カラムの型」という構文に従って書きましょう。

次に外部キー制約(FOREIGN KEY)の設定です。
外部キーを後から追加する場合、CHANGEでは対応できない為、ADDを使って追加しましょう。
追加する際の構文は「ALTER TABLE 子テーブル名 ADD FOREIGN KEY(子の列名) REFERENCES 親テーブル名(親の列名)」となります。

補足

主キー制約をかけることで、UNIQUE制約とNOT NULL制約の両方の役割「'NULL'も重複も許されない列」を満たします。
ただ単に「'NULL'も重複も許されない列」ではなく、主キーとしての役割が期待されているというセマンティクスを持ちます。

さらにスキルアップしたい方は公式LINEから「SQL」と送信すると動画が見れます。

LINE登録して動画を視聴する
あなたに合った学習プランは?LINE適正コース診断はこちら