学生”表と“学部”表に対して次のSQL文を実行した結果として、正しいものはどれか。
学生 学部
┌────┬──┬──┐┌───┬──┐
│ 氏名 │所属│住所││学部名│住所│
┝━━━━┿━━┿━━┥┝━━━┿━━┥
│応用花子│理 │新宿││工 │新宿│
├────┼──┼──┤├───┼──┤
│高度次郎│人文│渋谷││経済 │渋谷│
├────┼──┼──┤├───┼──┤
│午前桜子│経済│新宿││人文 │渋谷│
├────┼──┼──┤├───┼──┤
│情報太郎│工 │渋谷││理 │新宿│
└────┴──┴──┘└───┴──┘
〔SQL文〕
SELECT 氏名 FROM 学生, 学部
WHERE 所属 = 学部名 AND 学部.住所 = '新宿'
ア 氏名
------------
応用花子
イ 氏名
------------
応用花子
午前桜子
ウ 氏名
------------
応用花子
情報太郎
エ 氏名
------------
応用花子
情報太郎
午前桜子
ウ
SELECT 氏名 FROM 学生, 学部
WHERE 所属 = 学部名 AND 学部.住所 = '新宿'
は、学生と学部の表から所属と学部名の値が同じ行で、学部表の住所の値が“新宿”の行を取り出し、氏名を表示するというSQLである。
例えば、“情報太郎”の所属は“工”であるから、学部表の学部名の値が“工”の行を取り出し、住所が“新宿”なので、情報太郎は表示される。
問28 | 目次 | 問30 |