平成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 埼玉県

 ア  DELETE FROM 学生 WHERE 学生番号 = ‘K1002’
 イ  INSERT INTO 学生 VALUES (‘J2002’, ‘渡辺次郎’, ‘M006’, ‘東京都’)
 ウ  SELECT * FROM 学生 WHERE 学生番号 = ‘K1001’
 エ  UPDATE 学生 SET 学部コード = ‘N001’ WHERE 学生番号 LIKE ‘K%’


答え イ


解説
“学生”表を定義したSQL文で検査制約となるのは、“CHECK (学生番号 LIKE ‘K%’)”で、これは学生番号が‘K’から始まる4桁の文字列である必要ということなので、これに沿っていないのは
 INSERT INTO 学生 VALUES (‘J2002’, ‘渡辺次郎’, ‘M006’, ‘東京都’)
(イ)です。


キーワード
・検査制約

キーワードの解説

戻る 一覧へ 次へ