10月23日(木)3コマ目
今日、やったこと
制約
今日のホワイトボード
テーブルを作ってみた
以下のSQLでグループマスタテーブルを作成した。
![]() |
| 図 グループマスタテーブル作成 |
作成したグループマスタテーブルにデータを登録、確認した。
![]() |
| 図 グループマスタテーブルにデータ登録 正常系 |
マズい状態のテーブル
このグループマスタテーブルは
- ID列は主キー列
- 空白のグループ名はない
にしたい。下図の状態になるとマズい。
![]() |
| 図 グループマスタテーブル マズい状態 |
試しにNGなデータを登録してみる。
![]() |
| 図 グループマスタテーブルにデータ登録 異常系 |
登録後、検索すると、マズい状態になっている。
![]() |
| 図 NGなデータ登録後のグループマスタテーブル検索結果 |
マズい状態にならないために
テーブルのデータがマズい状態にならないようにするために、制約がある。
制約は、テーブル作成時に設定するが、以下の2種類の方法がある。
- 列定義時に、列を対象に指定する列制約構文
- 列定義後、表全体を対象に指定する表制約構文
この授業では、最終的には表制約構文で指定することにする。
列制約構文
テーブル作成時に、各列の定義(列名、データ型)と一緒に、列を対象に制約を指定する方法。
![]() |
| 図 列制約構文 |
グループマスタテーブルを、列制約構文で制約を含めて作り直し。
作成したグループマスタテーブルに問題がないデータを登録する。 => 登録できる。
続いて、グループマスタテーブルに問題があるデータを登録する。 => エラー発生。
問題のあるデータを登録してみる。=>エラー発生。
表制約構文は、複数列の組み合わせに対して1つの制約を指定することができるところがポイント。
![]() |
| 図 列制約構文で制約指定 |
作成したグループマスタテーブルに問題がないデータを登録する。 => 登録できる。
![]() |
| 図 グループマスタテーブルにデータ登録 正常系 |
続いて、グループマスタテーブルに問題があるデータを登録する。 => エラー発生。
![]() |
| 図 グループマスタテーブルに問題があるデータを登録してみる |
制約名は
- どのテーブルの
- どの列に
- どんな内容の制約を設定したか
に対してつける名前。
正常なデータを登録してみる。=>登録できる。
![]() |
| 図 グループマスタテーブルにデータ登録 正常系 |
問題のあるデータを登録してみる。=>エラー発生。
![]() |
| 図 グループマスタテーブルに問題のあるデータを登録 |
表制約構文
テーブル作成時に、各列の定義(列名、データ型)後、表全体を対象に制約を指定する方法。
![]() |
| 図 表制約構文 |
表制約構文は、複数列の組み合わせに対して1つの制約を指定することができるところがポイント。

















