データ操作 (全67問中24問目)

No.24

"学生"表が次のSQL文で定義されているとき,検査制約の違反となるSQL文はどれか。

CREATE TABLE 学生 (
 学生番号 CHAR(5) PRIMARY KEY,
 学部名 CHAR(16),
 学部コード CHAR(4),
 住所 CHAR(16),
 CHECK (学生番号 LIKE 'K%'))
28.png/image-size:314×113
  • 28a.png/image-size:438×13
  • 28i.png/image-size:438×16
  • 28u.png/image-size:438×14
  • 28e.png/image-size:438×13

分類

テクノロジ系 » データベース » データ操作

正解

解説

検査制約は、テーブルに格納されるデータの種類を一定の範囲や種類に限定するための方法です。

検査制約を設けるには、CREATE TABLE文でテーブルを作成するときの属性(列)の定義を

 CHECK(属性名 検査式)

という形式で記述することで、特定の列の値が任意の式を満たすように指定できます。

設問では"学生番号"列に LIKE 'K%'(Kから始まる任意の文字列)という制約が定義されているので、各SQL文がこれに反する操作を行っていないかを検証します。
  • "学生番号"が"K1002"の行を削除する操作です。問題はありません。
  • 正しい。追加されるデータの1つ目(学生番号になる)が"J2002"で、先頭が"K"ではないため検査制約違反となります。
  • "学生番号"が"K1001"の行のすべての列を抽出する操作です。問題はありません。
  • "学生番号"が"K"で始まる行の"学部コード"をN001に更新する操作です。問題はありません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop