平成31年度 春期 基本情報技術者試験 午前 問29
テクノロジ/データベース“学生”表と“学部”表に対して次のSQL文を実行した結果として,正しいものはどれか。 学生表(氏名,所属,住所):応用花子,理,新宿/高度次郎,人文,渋谷/午前桜子,経済,新宿/情報太郎,工,渋谷 学部表(学部名,住所):工,新宿/経済,渋谷/人文,渋谷/理,新宿 〔SQL文〕 SELECT 氏名 FROM 学生, 学部 WHERE 所属 = 学部名 AND 学部.住所 = '新宿' (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成31年度 春期 基本情報技術者試験 午前 問29
- ア氏名:応用花子
- イ氏名:応用花子,午前桜子
- ウ氏名:応用花子,情報太郎
- エ氏名:応用花子,情報太郎,午前桜子
正解:ウ
解説
SQL文は,学生表と学部表を所属=学部名で結合し,学部の住所が'新宿'である行の氏名を取得します。学部表で住所が新宿なのは工学部と理学部なので,所属が工または理の学生(情報太郎,応用花子)が該当します。
選択肢ごとの解説
- ア誤り。応用花子だけでなく,所属が工である情報太郎も条件を満たすため,結果から漏れています。
- イ誤り。午前桜子の所属は経済で,学部表で経済の住所は渋谷なので,条件(住所=新宿)を満たさず結果に含まれません。
- ウ正しい。学部の住所が新宿なのは工と理なので,所属が理の応用花子と所属が工の情報太郎が結果に含まれます。
- エ誤り。午前桜子の所属は経済で学部の住所は渋谷のため,新宿という条件を満たさず結果には含まれません。