Engenharia Múltipla Escolha

Que consulta recuperará todas as linhas da tabela EMPLOYEES, mesmo que não haja correspondência na tabela DEPARTMENTS?

Que consulta recuperará todas as linhas da tabela EMPLOYEES, mesmo que não haja correspondência na tabela DEPARTMENTS?

  1. SELECT funcionários.sobrenome, funcionários.id_departamento, departamento.nome_departamento FROM funcionários LEFT OUTER JOIN departamento ON (funcionários.id_departamento = departamento.id_departamento);
  2. SELECT funcionários.sobrenome, funcionários.id_departamento, departamentos.nome_departamento FROM funcionários NATURAL JOIN departamentos;
  3. SELECT funcionários.sobrenome, funcionários.id_departamento, departamentos.nome_departamento FROM funcionários RIGHT OUTER JOIN departamentos ON (funcionários.id_departamento = departamentos.id_departamento);
  4. SELECT funcionários.sobrenome, funcionários.id_departamento, departamento.nome_departamento FROM funcionários JOIN departamentos USING (funcionários.id_departamento = departamento.id_departamento);

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - Utilização do LEFT OUTER JOIN

Análise da Questão

A questão solicita uma consulta SQL que retorne todas as linhas da tabela funcionários (equivalente a EMPLOYEES mencionada no enunciado), mesmo quando não houver dados correspondentes na tabela departamentos. Para isso, precisamos entender como os tipos de junção (JOIN) funcionam no SQL.

Conceito Chave: LEFT OUTER JOIN

O comando LEFT OUTER JOIN (ou simplesmente LEFT JOIN) garante que todas as linhas da tabela principal (lado esquerdo da cláusula FROM) sejam retornadas.

  • Se houver correspondência na tabela secundária (lado direito), os dados são exibidos.
  • Se não houver correspondência, as colunas da tabela secundária retornarão valores NULL, mas a linha da tabela principal continua existindo.

Isso é exatamente o que a questão pede: preservar a integridade dos funcionários, independentemente se eles pertencem ou não a um departamento registrado.

Por que as outras alternativas estão incorretas?

Tipo de JOINComportamentoResultado na questão
NATURAL JOINRetornapenas linhas com correspondência automática em colunas iguais.Exclui funcionários sem departamento.
RIGHT OUTER JOINMantém todas as linhas da tabela direita (departamentos).Foca nos departamentos, não nos funcionários.
INNER JOIN (JOIN)Retornapenas linhas onde há correspondência entre ambas as tabelas.Exclui funcionários sem departamento.

Portanto, a única forma de garantir que nenhum funcionário seja excluído do resultado final é utilizando o LEFT OUTER JOIN.

Alternativa A.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.