Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2015

Banco de DadosSQL
Código
fc023801
Banca
FCC
Órgão
TRE-RR
Ano
2015
Nível
Superior
Cargo
Analista Judiciário - Análise de Sistemas
Considere a instrução SQL a seguir:SELECT Clientes.NomeCliente, Pedidos.PedidoID FROM Clientes...I....ON Clientes.ClienteID=Pedidos.ClienteIDORDER BY Clientes.NomeCliente;Esta instrução seleciona todas as linhas de ambas as tabelas, desde que haja uma correspondência entre as colunas ClienteID. Se houver linhas na tabela Clientes que não tem correspondentes na tabela Pedidos, esses clientes não serão listados.Para que a instrução dê o resultado descrito, a lacuna I deve ser preenchida com
  1. AINNER JOIN Pedidos
  2. BLEFT JOIN
  3. CRIGHT OUTER JOIN
  4. DFULL OUTER JOIN
  5. ELEFT OUTER JOIN
Revelar gabarito e comentário

GabaritoA — INNER JOIN Pedidos

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: INNER JOIN

Gabarito: letra A. A descrição fornecida indica que apenas as linhas com correspondência entre as duas tabelas (Clientes e Pedidos) são retornadas, e que clientes sem pedidos não aparecem. Esse comportamento é exatamente o do INNER JOIN, que retorna apenas os registros que possuem valores correspondentes em ambas as tabelas.

A banca testa o conhecimento sobre os diferentes tipos de JOIN em SQL e suas características. O texto do enunciado descreve o resultado de um INNER JOIN de forma explícita.

1INNER JOIN
Só registros com correspondência
Clientes sem pedido: não listados
2LEFT (OUTER) JOIN
Todos da esquerda
Clientes sem pedido: listados com NULL
3RIGHT (OUTER) JOIN
Todos da direita
4FULL OUTER JOIN
Todos de ambas
Clientes sem pedido: listados com NULL
JOINs em SQL
LEVELsoulevel.com.br
JOINs em SQL: INNER JOIN (Só registros com correspondência, Clientes sem pedido: não listados); LEFT (OUTER) JOIN (Todos da esquerda, Clientes sem pedido: listados com NULL); RIGHT (OUTER) JOIN (Todos da direita); FULL OUTER JOIN (Todos de ambas, Clientes sem pedido: listados com NULL)

Alternativa A — ✅ Correta ⟵ GABARITO

O INNER JOIN (ou simplesmente JOIN) retorna somente as linhas onde há correspondência entre as colunas especificadas. Na consulta, a condição ON Clientes.ClienteID = Pedidos.ClienteID garante que apenas clientes que possuem pedidos sejam listados, exatamente como descrito.

Alternativa B — ❌ Incorreta

LEFT JOIN (ou LEFT OUTER JOIN) retorna todas as linhas da tabela à esquerda (Clientes) e as correspondentes da direita (Pedidos). Se um cliente não tiver pedido, ele ainda apareceria, com valores NULL para as colunas de Pedidos. Isso contradiz o enunciado, que afirma que clientes sem pedidos "não serão listados".

Alternativa C — ❌ Incorreta

RIGHT OUTER JOIN retorna todas as linhas da tabela à direita (Pedidos) e as correspondentes da esquerda. Isso incluiria todos os pedidos, mesmo aqueles sem cliente correspondente (o que não faz sentido no modelo), mas o enunciado foca em clientes sem pedidos não aparecerem. Além disso, RIGHT JOIN não é mencionado no padrão da consulta.

Alternativa D — ❌ Incorreta

FULL OUTER JOIN retorna todas as linhas de ambas as tabelas, preenchendo com NULL onde não houver correspondência. Isso listaria clientes sem pedidos (com NULL nas colunas de Pedidos), o que contraria a descrição.

Alternativa E — ❌ Incorreta

LEFT OUTER JOIN é sinônimo de LEFT JOIN (alternativa B). Também incluiria clientes sem pedidos, contrariando o enunciado.

NÃO CAIA NESSA!

A banca pode confundir o candidato com a descrição "seleciona todas as linhas de ambas as tabelas, desde que haja uma correspondência". A palavra "ambas" pode sugerir um FULL OUTER JOIN, mas a restrição "desde que haja correspondência" e a frase final sobre clientes sem pedidos não serem listados eliminam essa possibilidade. Fique atento: INNER JOIN é a única que atende exatamente ao descrito.

Gabarito: letra A.

Link permanente: /questoes/fc023801