本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成31年度 春期 基本情報技術者試験問題と解説

問29

学生”表と“学部”表に対して次のSQL文を実行した結果として、正しいものはどれか。

  学生          学部
 ┌────┬──┬──┐┌───┬──┐
 │ 氏名 │所属│住所││学部名│住所│
 ┝━━━━┿━━┿━━┥┝━━━┿━━┥
 │応用花子│理 │新宿││工  │新宿│
 ├────┼──┼──┤├───┼──┤
 │高度次郎│人文│渋谷││経済 │渋谷│
 ├────┼──┼──┤├───┼──┤
 │午前桜子│経済│新宿││人文 │渋谷│
 ├────┼──┼──┤├───┼──┤
 │情報太郎│工 │渋谷││理  │新宿│
 └────┴──┴──┘└───┴──┘


〔SQL文〕
 SELECT 氏名 FROM 学生, 学部
  WHERE 所属=学部名 AND 学部.住所 = '新宿'

ア    氏名
  ------------
   応用花子

イ    氏名
  ------------
   応用花子
   午前桜子

ウ    氏名
  ------------
   応用花子
   情報太郎

エ    氏名
  ------------
   応用花子
   情報太郎
   午前桜子


正解


解説

SELECT 氏名 FROM 学生, 学部
  WHERE 所属=学部名 AND 学部.住所 = '新宿'
は、学生と学部の表から所属と学部名の値が同じ行で、学部表の住所の値が“新宿”の行を取り出し、氏名を表示するというSQLである。

例えば、“情報太郎”の所属は“工”であるから、学部表の学部名の値が“工”の行を取り出し、住所が“新宿”なので、情報太郎は表示される。

問28 目次 問30