IPA過去問ドリル

平成27年度 春期 応用情報技術者試験 午前 問28

テクノロジ/データベース

“学生”表が次のSQL文で定義されているとき,検査制約の違反となるSQL文はどれか。 CREATE TABLE 学生 (学生番号 CHAR(5) PRIMARY KEY,           学生名 CHAR(16),           学部コード CHAR(4),           住所 CHAR(16),           CHECK (学生番号 LIKE 'K%')) 学生 学生番号|学生名|学部コード|住所 K1001|田中太郎|E001|東京都 K1002|佐藤一美|E001|茨城県 K1003|髙橋肇|L005|神奈川県 K2001|伊藤香織|K007|埼玉県 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成27年度 春期 応用情報技術者試験 午前 問28

正解:イ

解説

CHECK制約は学生番号が'K'で始まることを要求しています。INSERT文で学生番号'J2002'を挿入しようとすると,'K'で始まらないためこの検査制約に違反します。

選択肢ごとの解説

  • 誤り。DELETEは既存の行を削除する操作であり,検査制約には抵触しません。
  • 正しい。学生番号'J2002'は'K'で始まらないため,CHECK制約(学生番号 LIKE 'K%')に違反します。
  • 誤り。SELECTはデータを検索するだけで,データの追加・変更を伴わないため制約違反にはなりません。
  • 誤り。UPDATEは学生番号がK%に一致する行の学部コードのみを変更しており,学生番号自体は変更していないため検査制約に抵触しません。
応用情報技術者の過去問を演習モードで解く