(1,0) 1 -
Uma agência de intercâmbios deseja mapear os interesses de estudantes que pretendem residir em uma dada cidade no exterior, com as famílias disponíveis para acolhê-los. Para isso, definiu as tabelas ESTUDANTES e RESIDENCIAS, descritas abaixo em SQL, contendo respectivamente estudantes com a cidade pretendida e as famílias com cidades de residência.
create table ESTUDANTES
(nome varchar(120) not null primary key,
cidade varchar(30) not null);
create table RESIDENCIAS
(familia varchar(120) not null primary key,
cidade varchar(30) not null);
Considere que estas tabelas possuem como conteúdo as instâncias resultantes dos oito comandos INSERT definidos em SQL abaixo.
insert into ESTUDANTES values ('clara', 'londres');
insert into ESTUDANTES values ('joao', 'londres');
insert into ESTUDANTES values ('magda', 'sidney');
insert into ESTUDANTES values ('pedro', 'paris');
insert into RESIDENCIAS values ('f1', 'londres');
insert into RESIDENCIAS values ('f2', 'paris');
insert into RESIDENCIAS values ('f3', 'toronto');
insert into RESIDENCIAS values ('f4', 'toronto');
A agência decidiu cruzar as informações das duas tabelas para investigar as opções de alojamento disponíveis. Considere as quatro consultas SQL abaixo, que representam opções de cruzamento de dados entre tabelas.
I - select *
from ESTUDANTES left join RESIDENCIAS using(cidade);
II - select *
from ESTUDANTES right join RESIDENCIAS using(cidade);
III - select *
from ESTUDANTES cross join RESIDENCIAS;
IV - select *
from ESTUDANTES inner join RESIDENCIAS using (cidade);
Quantas instâncias são recuperadas por cada comando SELECT acima, na ordem em que os comandos aparecem?