ウカマル応用情報技術者ログイン

平成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埼玉県
選択肢
正解と解説

正解 イ

CHECK制約は学生番号がKで始まることを求めるので、Jで始まる学生番号を挿入するINSERT文が違反します。

CHECK(検査制約)は、表の行が満たすべき条件を定める制約です。この表では「学生番号 LIKE 'K%'」により、学生番号はKで始まる文字列でなければなりません。イのINSERT文は学生番号に'J2002'を指定しているので、条件を満たさず違反になります。検査制約が調べられるのは、行を追加・更新するときです。

ア:DELETEは行を削除するだけです。残る行の学生番号は変わらないので、検査制約に違反しません。

ウ:SELECTはデータを参照するだけで、表の内容を変えません。検査制約の対象になりません。

エ:更新するのは学部コードだけで、学生番号は変わりません。学生番号はKで始まったままなので違反しません。

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

全年度から出題。10問で実力を判定します。登録不要。

出典:平成27年度 春期 応用情報技術者試験 問28(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方