Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2026

Banco de DadosSQL
Código
fg126980
Banca
FGV
Órgão
AL-RO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo (Engenharia de Computação)
Em um sistema, o engenheiro precisa consultar todos os CLIENTES e, se houver, os PEDIDOS que cada um fez. Clientes sem pedidos também devem ser listados.Assinale a opção que identifica o tipo de junção SQL que garante que todas as linhas da tabela da esquerda (CLIENTE) sejam incluídas no resultado, independentemente de haver correspondência na tabela da direita (PEDIDO).
  1. AINNER JOIN
  2. BRIGHT JOIN
  3. CFULL OUTER JOIN
  4. DLEFT OUTER JOIN
  5. ECROSS JOIN
Revelar gabarito e comentário

GabaritoD — LEFT OUTER JOIN

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”.

SQL: Tipos de Junção (JOIN)

Gabarito: letra D. O LEFT OUTER JOIN (ou LEFT JOIN) garante que todas as linhas da tabela da esquerda (CLIENTE) sejam incluídas no resultado, mesmo quando não há correspondência na tabela da direita (PEDIDO). Clientes sem pedidos aparecem com valores nulos nas colunas de PEDIDO. Esse é exatamente o comportamento descrito no enunciado.

A questão exige o conhecimento dos diferentes tipos de junção SQL. Observe a definição de cada um:

  • INNER JOIN: retorna apenas os registros que possuem correspondência em ambas as tabelas.

  • LEFT OUTER JOIN: retorna todos os registros da tabela da esquerda e os correspondentes da direita; quando não há match, as colunas da direita vêm como NULL.

  • RIGHT OUTER JOIN: o oposto do LEFT: retorna todos os registros da tabela da direita.

  • FULL OUTER JOIN: retorna todos os registros de ambas as tabelas, combinando onde há match e preenchendo com NULL onde não há.

  • CROSS JOIN: produto cartesiano, combina cada linha de uma tabela com todas da outra.

Tipo de JOIN

Preserva tabela esquerda?

Preserva tabela direita?

Exibe clientes sem pedidos?

Exibe pedidos sem clientes?

INNER JOIN

❌ Não

❌ Não

❌ Não

❌ Não

LEFT JOIN

✅ Sim

❌ Não

✅ Sim

❌ Não

RIGHT JOIN

❌ Não

✅ Sim

❌ Não

✅ Sim

FULL OUTER JOIN

✅ Sim

✅ Sim

✅ Sim

✅ Sim

CROSS JOIN

❌ Não (produto cartesiano)

❌ Não (produto cartesiano)

❌ Não

❌ Não

Alternativa A — ❌ Incorreta

INNER JOIN só retorna linhas com correspondência em ambas as tabelas. Clientes sem pedidos seriam excluídos, contrariando o enunciado.

Alternativa B — ❌ Incorreta

RIGHT JOIN prioriza a tabela da direita (PEDIDO). Traria todos os pedidos, mas clientes sem pedidos seriam omitidos (a menos que haja pedido sem cliente, o que não é o caso).

Alternativa C — ❌ Incorreta

FULL OUTER JOIN inclui todas as linhas de ambas as tabelas, o que é mais amplo do que o necessário: traria também pedidos sem clientes, o que não é pedido. Apesar de incluir os clientes sem pedidos, a especificação pede todas as linhas da tabela da esquerda (e apenas essas), portanto o LEFT JOIN é a escolha exata.

Alternativa D — ✅ Correta ⟵ GABARITO

LEFT OUTER JOIN (ou simplesmente LEFT JOIN) é a junção que garante a preservação de todas as linhas da tabela à esquerda (FROM CLIENTE LEFT JOIN PEDIDO ON ...). Clientes sem pedidos aparecem com NULL nas colunas de PEDIDO, atendendo perfeitamente ao requisito "Clientes sem pedidos também devem ser listados".

Alternativa E — ❌ Incorreta

CROSS JOIN faz o produto cartesiano, combinando cada cliente com cada pedido, o que gera um resultado incorreto e sem sentido lógico (um cliente pode aparecer com pedidos que não são dele). Não é a ferramenta adequada para relacionar registros por chave estrangeira.

Gabarito: letra D.

Link permanente: /questoes/fg126980