Considere as seguintes tabelas de um banco de dados relacion...
Funcionário (ID, Nome, Salário, Cod-Depto)
Departamento (Cod-Depto, Nome)
A chave primária da tabela “Funcionário” é o atributo “ID” e a chave primária da tabela “Departamento” é o atributo “Cod-Depto”. O atributo “Cod-Depto” na tabela “Funcionário” é uma chave estrangeira para a tabela “Departamento”, indicando o departamento onde o funcionário trabalha. Considere ainda a seguinte consulta formulada na linguagem SQL:
SELECT f1.*
FROM Funcionário f1, Departamento d, Funcionário f2 WHERE f1.salário < f2.salário
AND f1.Cod-Depto != f2.Cod-Depto
AND d.Cod-Depto = f2.Cod-Depto
AND d.Nome = ‘Marketing’
Assinale a alternativa que descreve CORRETAMENTE a intenção dessa consulta.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a letra D. Vamos entender o porquê analisando a consulta SQL apresentada e o que ela busca retornar.
A consulta SQL em questão faz um JOIN entre três tabelas: Funcionário duas vezes (como f1 e f2) e Departamento (como d). O objetivo é comparar informações entre diferentes funcionários e departamentos. Vamos desmembrar as condições do WHERE para entender melhor:
-
f1.salário < f2.salário: Esta condição verifica se o salário do funcionário representado por f1 é menor do que o salário do funcionário representado por f2.
-
f1.Cod-Depto != f2.Cod-Depto: Esta condição garante que f1 e f2 não trabalhem no mesmo departamento.
-
d.Cod-Depto = f2.Cod-Depto: Esta condição assegura que o departamento d seja o mesmo departamento do funcionário f2.
-
d.Nome = 'Marketing': Esta condição seleciona o departamento de Marketing.
Combinando todas essas condições, a consulta retorna funcionários (f1) que possuem salários inferiores a algum funcionário (f2) do departamento de Marketing, onde f1 e f2 são de departamentos diferentes. Desta forma, a consulta está procurando por funcionários que não trabalham no departamento de Marketing, mas que, mesmo assim, possuem um salário inferior a pelo menos um dos funcionários do departamento de Marketing.
Portanto, a alternativa D está correta, pois descreve exatamente o que a consulta está buscando: "Buscar os dados dos funcionários que não trabalham no departamento de Marketing e possuem salários inferiores ao salário de algum funcionário que trabalha no departamento de Marketing."
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo