Questão nº 56
Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 56)
O banco de dados de uma empresa de investimentos financeiros possui as seguintes tabelas:
Empresa (CNPJ, razaoSocial, endereco)
UF (sigla, nome)
O que o comando SQL SELECT CNPJ, sigla FROM Empresa, UF recupera desse banco de dados?
- AA sigla da UF das sedes das empresas cadastradas.
- BAlguns pares de CNPJ e sigla, onde o nome da UF é igual à razão social da empresa.
- CO CNPJ das empresas cadastradas cuja sigla de UF esteja na tabela UF.
- DPares de CNPJ e sigla de todas as empresas cadastradas com as UFs de suas respectivas sedes.
- ETodos os pares de CNPJ e sigla possíveis, de todas as empresas e de todas as UFs cadastradas. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
O comando SELECT CNPJ, sigla FROM Empresa, UF sem cláusula WHERE ou JOIN gera um produto cartesiano: cada linha da tabela Empresa é combinada com cada linha da tabela UF. Ou seja, o resultado não relaciona a empresa à sua UF de sede; ele simplesmente lista todas as combinações possíveis entre os CNPJs e as siglas existentes.
- (A) Incorreta: A consulta não filtra nem relaciona as empresas às suas UFs de sede; ela apenas cruza todas as linhas das duas tabelas, sem qualquer condição de igualdade ou vínculo.
- (B) Incorreta: Não há nenhuma condição comparando
nomeda UF comrazaoSocialda empresa; o produto cartesiano ignora qualquer relação lógica entre os dados. - (C) Incorreta: A consulta não verifica se a sigla da UF está na tabela
UF— ela simplesmente usa todas as siglas dessa tabela, combinando-as com todos os CNPJs, sem filtro. - (D) Incorreta: Para recuperar as UFs das sedes, seria necessário um
JOIN(ex.:WHERE Empresa.UF = UF.sigla), o que não existe aqui; a consulta não sabe qual UF pertence a qual empresa. - (E) Correta: Sem cláusula
WHEREouJOIN, o SQL executa um produto cartesiano entreEmpresaeUF, retornando todos os pares possíveis de CNPJ e sigla (ex.: se há 10 empresas e 27 UFs, o resultado terá 270 linhas). A armadilha da banca está em sugerir que a consulta "adivinha" a relação entre as tabelas, mas o SQL só faz isso se você especificar a condição de junção — caso contrário, ele combina tudo com tudo.
Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.