Pular para o conteúdo principal

Questão de Arquitetura de Software — Banco de Dados — FCC 2023

Arquitetura de SoftwareBanco de Dados
Código
fc070440
Banca
FCC
Órgão
TRT - 21ª Região (RN)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Tecnologia da Informação
No MySQL, com o banco de dados aberto e em condições ideais, para contar quantos funcionários pertencem ao departamento com idDep igual a 'Dep1' e para listar 05 nomes desses funcionários em ordem alfabética ascendente, separados por vírgulas, utiliza-se o comando
  1. ASELECT COUNT (F.emailFun) AS Quantidade Funcionarios, CONCAT(F.nomeFun ORDER EY F.nomeFun ASC SEPARATOR ', ') AS Nomes_Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep = D.idDep;
  2. BSELECT COUNT (F.emailFun) AS Quantidade Funcionarios, GROUP CONCAT(F.nomeFun ORDER BY F.nomerFun ASC SEPARATOR ', ') AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep = D.idDep WHERE D.idDep = 'Depl';
  3. CSELECT COUNT (F.emailFun) AS Quantidade Funcionarios, GROUP CONCAT(F.nomeFun ORDER BY F.nomeFun ASC SEPARATOR ', 'j AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idFun = D.idDep WHERE D.idDep = 'Depl';
  4. DSELECT COUNT (F.emailFun) AS Quantidade Funcionarios, CONCAT(F.nomerun ORDER BY F.nomeFun ASC SEPARATOR ', ') AS Nomes Funcionarios FROM funcionario F WHERE D.idDep = 'Depl';
  5. ESELECT COUNT (F.emailFun) AS Quantidade Funcionarios, CONCAT(F.nomerun ORDER EY F.nomeFun ASC, BEPARATOR ', ') AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D OM F.idDep = D.idDep WHERE D. idDep = 'Depl';
Revelar gabarito e comentário

GabaritoB — SELECT COUNT (F.emailFun) AS Quantidade Funcionarios, GROUP CONCAT(F.nomeFun ORDER BY F.nomerFun ASC SEPARATOR ', ') AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep = D.idDep WHERE D.idDep = 'Depl';

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comando MySQL: COUNT e GROUP_CONCAT

Gabarito: letra B. A alternativa B é a única que combina a função correta para concatenação com separador (GROUP_CONCAT), a cláusula ORDER BY interna, a condição de junção correta (ON F.idDep = D.idDep) e o filtro WHERE D.idDep = 'Dep1' (apesar do pequeno erro de digitação 'Depl' e do espaço em 'GROUP CONCAT', que seriam aceitos como variações em condições ideais). As demais alternativas contêm erros de sintaxe mais graves, como uso de CONCAT (que não suporta ORDER BY nem SEPARATOR), ausência de WHERE, junção por coluna inexistente, ou referência a tabela sem alias.

Alternativa

Função correta?

JOIN correto?

WHERE?

Observação

A

❌ CONCAT não tem SEPARATOR

Typo "ORDER EY"

B

✅ GROUP_CONCAT (com espaço, mas aceitável)

Typo "nomerFun" e "Depl"

C

✅ (GROUP_CONCAT)

❌ (F.idFun inexistente)

Typo na sintaxe

D

❌ CONCAT

❌ (sem JOIN)

❌ (ref. D.idDep)

Vários erros

E

❌ CONCAT

❌ (OM)

Vários typos

Alternativa A — ❌ Incorreta

Utiliza CONCAT em vez de GROUP_CONCAT. A função CONCAT não aceita cláusulas ORDER BY ou SEPARATOR. Além disso, não há filtro WHERE, o que faria o comando contar e listar funcionários de todos os departamentos, não apenas do 'Dep1'.

Alternativa B — ✅ Correta ⟵ GABARITO

Apesar dos pequenos erros de digitação (espaço em GROUP CONCAT e nomerFun em vez de nomeFun; 'Depl' em vez de 'Dep1'), a estrutura está correta: usa a função GROUP_CONCAT com ORDER BY interno e SEPARATOR, faz o JOIN correto e filtra pelo departamento desejado. Em condições ideais, esses detalhes seriam considerados aceitáveis ou facilmente ajustados.

Alternativa C — ❌ Incorreta

A condição de junção ON F.idFun = D.idDep está errada: a tabela funcionario não possui a coluna idFun. O correto seria F.idDep = D.idDep. Ademais, há um erro de sintaxe no fechamento do GROUP_CONCAT.

Alternativa D — ❌ Incorreta

Usa CONCAT (que não suporta as cláusulas), não faz JOIN e referencia D.idDep sem a tabela D estar no escopo (falta FROM com JOIN).

Alternativa E — ❌ Incorreta

Utiliza CONCAT com ORDER EY e BEPARATOR, erros de digitação grosseiros, e OM em vez de ON. Apesar do WHERE, a função e a junção estão inválidas.

PEGA ESSA DICA!

Para concatenar valores de várias linhas em uma única string no MySQL, use GROUP_CONCAT (função de agregação). Dentro dela, é possível ordenar com ORDER BY e definir o separador com SEPARATOR. Lembre-se de que CONCAT apenas junta valores de uma mesma linha.

Gabarito: letra B

Link permanente: /questoes/fc070440