データ操作 (全50問中8問目)

No.8

"学生"表が次のSQL文で定義されているとき,検査制約の違反となるSQL文はどれか。
28_1.gif/image-size:352×98
28_2.gif/image-size:314×113

分類

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

正解

解説

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

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

 CHECK(属性名 検査式)

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

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

Pagetop