修了試験 2020-07-26実施分 基本情報技術者試験 問28
"学生"表と"学部"表に対して次のSQL文を実行した結果として,正しいものはどれか。 〔学生〕 |氏名|所属|住所/応用花子|理|新宿/高度次郎|人文|渋谷/午前桜子|経済|新宿/情報太郎|工|渋谷 〔学部〕 |学部名|住所/工|新宿/経済|渋谷/人文|渋谷/理|新宿 〔SQL文〕 SELECT 氏名 FROM 学生, 学部 WHERE 所属 = 学部名 AND 学部.住所 = '新宿'
正答3
解説
正解は3です。 二つの表を結合して、条件で絞り込むSQL文の実行結果を求める問題です。 WHERE句の「所属=学部名」で、学生表と学部表を結合します。 さらに「学部.住所='新宿'」で、学部の所在地が新宿の行に絞り込みます。 学生表にも住所列があるので、学生の住所ではなく学部の住所で判定する点に注意します。 【結合の手順】 応用花子の所属は理で、学部名が理の住所は新宿なので、条件を満たします。 高度次郎の所属は人文で、人文の住所は渋谷なので、条件を満たしません。 午前桜子の所属は経済で、経済の住所は渋谷なので、条件を満たしません。 情報太郎の所属は工で、工の住所は新宿なので、条件を満たします。 結果は、応用花子と情報太郎です。 【選択肢別解説】 1:× 応用花子だけでは、住所が新宿である工に所属する情報太郎が抜けています。 2:× 応用花子と午前桜子は、学生自身の住所が新宿である学生です。 学生の住所で判定した誤りで、条件は学部.住所です。 3:○ 住所が新宿である学部(理と工)に所属する、応用花子と情報太郎です。 4:× 午前桜子が所属する経済の住所は渋谷なので、条件を満たしません。 【ポイント】 同じ列名が複数の表にあるときは、「表名.列名」の形でどちらの列かを区別します。 結合の問題では、条件を満たすかを1行ずつ確かめると確実です。まとめて解く
修了試験 2020-07-26実施分を通しで解く(80問)→