Questão nº 58
Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 58)
A CNAE (Classificação Nacional de Atividades Econômicas), de responsabilidade do IBGE, possui códigos que são utilizados para caracterizar as atividades econômicas das empresas no Brasil. Por exemplo: empresas da área de construção de edifícios utilizam o CNAE de código 4120-4/00 para caracterizar a sua atividade econômica principal. Considere que existe um banco de dados em uma empresa, que concede empréstimos a outras empresas, com as seguintes tabelas:
Empresa (CNPJ, razaoSocial, endereco, atividade)
CNAE (codigo, descricao)
A coluna "atividade" da tabela Empresa é uma chave estrangeira que referencia a coluna "codigo" da tabela CNAE.
Que comando SELECT do SQL retorna apenas o CNPJ e a razão social das empresas cuja atividade econômica principal é a construção de edifícios (código 4120-4/00)?
- A```sql
SELECT *
FROM Empresa E, CNAE C
WHERE E.atividade = C.codigo
``` - B```sql
SELECT *
FROM Empresa
WHERE atividade = 'construção de edifícios'
``` - C```sql
SELECT CNPJ, razaoSocial
FROM CNAE
WHERE codigo = '4120-4/00'
``` - D```sql
SELECT CNPJ, razaoSocial
FROM Empresa E, CNAE C
WHERE E.atividade = C.codigo
AND C.codigo = 'construção de edifícios'
``` - E```sql
SELECT CNPJ, razaoSocial
FROM Empresa
WHERE atividade = '4120-4/00'
``` (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Para acertar essa questão, lembre-se: a tabela Empresa já guarda o código da atividade (a chave estrangeira atividade). Para filtrar empresas de um CNAE específico, basta comparar essa coluna com o valor '4120-4/00' — não é preciso juntar com a tabela CNAE, pois o código já está disponível na própria tabela Empresa. A tabela CNAE só seria necessária se quiséssemos trazer a descrição da atividade.
- (A) Incorreta: Retorna todas as colunas (
*) de todas as combinações entreEmpresaeCNAEque tenham atividade correspondente, sem filtrar pelo código'4120-4/00'— traz empresas de qualquer atividade. - (B) Incorreta: Compara
atividadecom o texto'construção de edifícios', masatividadearmazena o código (ex.:'4120-4/00'), não a descrição — nenhuma linha seria retornada. - (C) Incorreta: Consulta a tabela
CNAE, que não possui colunasCNPJnemrazaoSocial— erro de sintaxe (colunas inexistentes). - (D) Incorreta: Faz o
JOINcorretamente, mas comparaC.codigocom'construção de edifícios', ou seja, compara o código com a descrição — condição sempre falsa. Armadilha da banca: misturar código e descrição, além de usarJOINdesnecessário. - (E) Correta: A coluna
atividadeda tabelaEmpresajá contém o código CNAE; o filtroWHERE atividade = '4120-4/00'seleciona exatamente as empresas com essa atividade, retornando apenasCNPJerazaoSocial, conforme pedido.
Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.