FC ConcursosFC Concursos

Questão FC372797

Para responder a questão, considere as instruções a seguir. Considere a existência das tabelas abaixo. Tabela departamento: idDep VARCHAR(10) primary key nomeDep VARCHAR(70) telefo

Linguagem SQL

FCC · 2023

Para responder a questão, considere as instruções a seguir.

 

Considere a existência das tabelas abaixo.

 

Tabela departamento: idDep VARCHAR(10) primary key nomeDep VARCHAR(70) telefoneDep VARCHAR(15)

 

Tabela funcionario emailFun VARCHAR(45) primary key nome Fun VARCHAR (70) telefoneFun VARCHAR(15) cargoFun VARCHAR(45) salarioFun DOUBLE idDep VARCHAR(10) foreign key

 

Tabela usuario: emailFun VARCHAR(45) primary key e foreign key senhausu VARCHAR(50)

 

A relação de departamento para funcionario é 1:n e de funcionario para usuario, 1:1.

 

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 os nomes desses funcionários em ordem alfabética ascendente, separados por virgulas, utiliza-se o comando

  1. SELECT COUNT (F.emailFun) AS Quantidade_Funcionarios, CONCAT (F.nomeFun ORDER BY F. nome Fun ASC SEPARATOR', ') AS Nomes_Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep D.idDep;
  2. SELECT COUNT(F. emailFun) AS Quantidade_Funcionarios, GROUP_CONCAT (F. nome Fun ORDER BY F.nomeFun ASC SEPARATOR',') AS Nomes_Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep D.idDep WHERE D.idDep = 'Dep1';
  3. SELECT COUNT (F. emailFun) AS Quantidade_Funcionarios, GROUP_CONCAT (F. nome Fun ORDER BY F.nome Fun ASC SEPARATOR', ') AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idFun D. idDep WHERE D.idDep= 'Dep1';
  4. SELECT COUNT (F. emailFun) AS Quantidade_Funcionarios, CONCAT (F.nomeFun ORDER BY F. nome Fun ASC SEPARATOR, ') AS Nomes_Funcionarios FROM funcionario F WHERE D. idDep 'Dep1';
  5. SELECT COUNT(F.emailFun) AS Quantidade_Funcionarios, CONCAT(F.nomeFun ORDER BY F.nomeFun ASC, SEPARATOR, AS Nomes Funcionarios FROM funcionario F INNER JOIN departamento D ON F.idDep D.idDep WHERE D.idDep= 'Dep1';
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A consulta apresentada usa corretamente as cláusulas e funções do MySQL para devolver uma única linha com a quantidade e os nomes dos funcionários do departamento Dep1.

SELECT agrega duas expressões: COUNT(F.emailFun) AS Quantidade_Funcionarios conta os registros (usar emailFun é seguro porque é chave primária, logo não nulo) e GROUP_CONCAT(...) AS Nomes_Funcionarios concatena os nomes em uma única string.

O INNER JOIN entre funcionario F e departamento D faz a ligação pelo campo idDep, garantindo que só sejam considerados funcionários daquele departamento. A cláusula WHERE D.idDep = 'Dep1' filtra o departamento desejado.

Dentro de GROUP_CONCAT usa-se ORDER BY F.nomeFun ASC para ordenar alfabeticamente e SEPARATOR ',' para separar por vírgulas. Como só há agregações, não é necessário GROUP BY, retornando uma única linha com os resultados.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo