Oracle入門第7章 実習課題
7−2 制約の指定方法
- 設問1
- 「学籍」という名前の表を作成しなさい。列名、データ型、列制約は次のような順番で設定します。なお、表領域は「USERS」に作成すること。
※DESCRIBEコマンドで列を確認すること。
| 列名 | データ型 | 列制約 |
| 学生NO | 数値(4byte) | 主キー制約 |
| 学生氏名 | 可変長文字列(10byte) | NOT NULL制約 |
| 担任 | 数値(2byte) |
|
| 入学日 | 日付 |
|
| 科NO | 数値(2byte) |
|
- 設問2
- 「学籍」表に次のデータを挿入し、3、4件目は挿入されないことを確認しなさい。
| 学生NO | 学生氏名 | 担任 | 入学日 | 科NO |
| 1001 | 加古 | 10 | 1999-04-10 | 10 |
| 1002 | 白井 | 12 | 2000-04-10 | 20 |
| 1002 | 神岡 | 20 | 2001-04-10 | 10 |
| 1003 |
| 15 | 2001-04-10 | 20 |
- 設問3
- 「科名」という名前の表を作成しなさい。列名とデータ型は次のような順番で設定します。なお、表領域は「USERS」に作成すること。
※DESCRIBEコマンドで列を確認すること。
| 列名 | データ型 | 列制約 |
| 科NO | 数値(2byte) | 主キー制約 |
| 科名 | 可変長文字列(14byte) | 一意キー制約 |
- 設問4
- 「科名」表に次のデータを挿入し、3、4、5件目は挿入されないことを確認しなさい。
| 科NO | 科名 |
| 10 | コンピュータ |
| 20 | ビジネス |
| 20 | 経理 |
| 電気 |
| 30 | コンピュータ |
7−4 エンティティ整合性制約 (その2)
- 設問1
- 「定期試験結果」という名前の表を作成しなさい。列名、データ型、列制約は次のような順番で設定します。なお、表領域は「USERS」に作成すること。
| 列名 | データ型 | 列制約 |
| 試験NO | 数値(2byte) | 主キー制約 |
| 学生NO | 数値(4byte) |
|
| 科目NO | 数値(2byte) |
|
| 点数 | 数値(3byte) | チェック制約(0<=点数<=100) |
- 設問2
- 「定期試験結果」表に次のデータを挿入し、2件目は挿入されないことを確認しなさい。
| 試験NO | 学生NO | 科目NO | 点数 |
| 1 | 1001 | 1 | 90 |
| 2 | 1002 | 1 | 101 |
7−6 参照整合性制約 (その2)
- 設問1
- 「教員」という名前の表を作成しなさい。列名、データ型、列制約、参照整合性制約、デフォルト値は次のような順番で設定します。なお、表領域は「USERS」に作成すること。
| 列名 | データ型 | 列制約 | 参照整合性制約 | デフォルト値 |
| 教員NO | 数値(2byte) | 主キー制約 |
|
|
| 教員名 | 可変長文字列(14byte) |
|
|
|
| 所属科NO | 数値(2byte) |
| 科名表(科NO) |
|
| 入社日 | 日付 |
|
| SYSDATE |
7−7 制約の確認
- 設問1
- user_constraintsデータディクショナリから制約定義の所有者、制約名、制約の種類、表名を確認しなさい。
- 設問2
- user_constraintsデータディクショナリから制約名、表名、参照する制約名、制約の状態を確認しなさい。
- 設問3
- user_cons_columnsデータディクショナリから制約定義の所有者、表名、列名、表の検査条件を確認しなさい。
7−8 データの整合性と制約のまとめ
- 設問1
- 「科名」表を削除しなさい。「科名」表に対する子表の制約も削除すること。