FC ConcursosFC Concursos

Questão FC90555

A respeito dos conceitos de linguagem de definição e manipulação de dados (SQL), julgue o próximo item. Considere a tabela de colaboradores e o script SQL a seguir. id| nome |chefi

Linguagem SQL

CEBRASPE (CESPE) · 2022

A respeito dos conceitos de linguagem de definição e manipulação de dados (SQL), julgue o próximo item.

Considere a tabela de colaboradores e o script SQL a seguir.

id| nome |chefia|
--+--------+------+
1 |Pedro   | 2    |
2 |Maria   |      |
3 |Fernanda| 2    |
4 |Gabriela| 3    |
5 |Mariana | 3    |

with recursive cola (id, nome, chefia ) as (
SELECT id, nome, chefia
FROM colaborador c1
where chefia is null
union all
SELECT c1.id, c1.nome, c1.chefia
FROM colaborador c1, cola c2
where c1.chefia = c2.id
)
select * from cola


Nesse caso, executando-se a expressão SQL, tem-se o seguinte resultado.

Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

Comentário: 

Análise da Tabela e dos Dados

A tabela colaboradores contém os seguintes dados:



  • A coluna chefia indica qual colaborador é chefe de outro.
  • Maria (id = 2) é a única que não possui chefia (NULL), indicando que ela está no topo da hierarquia.

  • Entendendo a Consulta SQL

    A consulta utiliza uma CTE recursiva chamada cola para encontrar a hierarquia dos colaboradores.
    1. Primeira parte da CTE (SELECT ... WHERE chefia IS NULL)
      • Seleciona os colaboradores que não possuem chefia (nível mais alto da hierarquia).
      • No caso, apenas Maria (id = 2).
    2. Segunda parte da CTE (recursão UNION ALL)
      • Junta a tabela colaboradores consigo mesma (JOIN entre c1 e c2) para encontrar os colaboradores que são subordinados aos chefes já encontrados.
      • Isso acontece repetidamente até que todos os níveis da hierarquia sejam resolvidos.
    3. Execução da CTE
      • A recursão preenche os níveis de chefia e gera o seguinte resultado:

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

    Continue aprendendo