10月23日(木)3コマ目

今日、やったこと

制約

今日のホワイトボード

テーブルを作ってみた

以下のSQLでグループマスタテーブルを作成した。

図 グループマスタテーブル作成

作成したグループマスタテーブルにデータを登録、確認した。

図 グループマスタテーブルにデータ登録 正常系


マズい状態のテーブル

このグループマスタテーブルは

  • ID列は主キー列
  • 空白のグループ名はない

にしたい。下図の状態になるとマズい。

図 グループマスタテーブル マズい状態


試しにNGなデータを登録してみる。

図 グループマスタテーブルにデータ登録 異常系

登録後、検索すると、マズい状態になっている。

図 NGなデータ登録後のグループマスタテーブル検索結果

マズい状態にならないために

テーブルのデータがマズい状態にならないようにするために、制約がある
制約は、テーブル作成時に設定するが、以下の2種類の方法がある。
  • 列定義時に、列を対象に指定する列制約構文
  • 列定義後、表全体を対象に指定する表制約構文
この授業では、最終的には表制約構文で指定することにする。

列制約構文

テーブル作成時に、各列の定義(列名、データ型)と一緒に、列を対象に制約を指定する方法。
図 列制約構文

グループマスタテーブルを、列制約構文で制約を含めて作り直し。
図 列制約構文で制約指定

作成したグループマスタテーブルに問題がないデータを登録する。 => 登録できる。
図 グループマスタテーブルにデータ登録 正常系

続いて、グループマスタテーブルに問題があるデータを登録する。 => エラー発生。
図 グループマスタテーブルに問題があるデータを登録してみる

制約に違反するため、エラーになり、データは登録されない。
図 グループマスタテーブル確認

制約に名前をつける

制約名は
  • どのテーブルの
  • どの列に
  • どんな内容の制約を設定したか
に対してつける名前。
キーワードconstraintで制約名を指定する

図 列制約構文で制約名をつけて制約指定

 
図 列制約構文で制約名をつけて制約指定 実行例

正常なデータを登録してみる。=>登録できる。
図 グループマスタテーブルにデータ登録 正常系

問題のあるデータを登録してみる。=>エラー発生。
図 グループマスタテーブルに問題のあるデータを登録

表制約構文

テーブル作成時に、各列の定義(列名、データ型)後、表全体を対象に制約を指定する方法。
図 表制約構文

表制約構文は、複数列の組み合わせに対して1つの制約を指定することができるところがポイント。

図 グループマスタテーブルを表制約構文で作成

正常なデータを登録。=> 登録できる。
図 グループマスタテーブルにデータ登録 正常系

問題のあるデータを登録してみる。=>エラー発生。
図 グループマスタテーブルに問題のあるデータを登録

次回は

制約のつづき。check制約と参照整合性制約。








このブログの人気の投稿

10月30日(木)3コマ目

1月22日(木)3コマ目

12月4日(木)3コマ目