Pular para o conteúdo principal

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

Banco de DadosSQL
Código
fg049445
Banca
FGV
Órgão
PC-AM
Ano
2022
Nível
Superior
Cargo
Perito Criminal - 4ª Classe - Processamento de Dados
ATENÇÃO!Na próxima questão, considere as tabelas de banco de dados:Com referência às tabelas T1 e T2, descritas anteriormente, o comando SQLselect t1.A1, t2.A2from T1 t1 LEFT JOIN T2 t2 on t1. A1 = t2.A2order by 1produzirá um resultado com
  1. Azero linhas.
  2. B10 linhas.
  3. C12 linhas.
  4. D22 linhas.
  5. E120 linhas.
Revelar gabarito e comentário

GabaritoC — 12 linhas.

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: LEFT JOIN e número de linhas

Gabarito: letra C. O comando LEFT JOIN retorna todas as linhas da tabela da esquerda (T1, com 12 linhas) e, quando não há correspondência na tabela da direita, preenche com NULL. Como T2 tem 10 linhas e todas elas possuem correspondência em T1 (pois A2 é chave estrangeira que referencia A1), mas T1 tem 2 linhas a mais, o resultado terá exatamente 12 linhas.

O raciocínio é direto: o LEFT JOIN preserva todas as linhas da tabela à esquerda, independentemente de haver ou não correspondência na direita. Assim, o número de linhas do resultado é sempre igual ao número de linhas da tabela da esquerda (T1 = 12). As alternativas que sugerem outros valores confundem o LEFT JOIN com outros tipos de junção:

Alternativa A — ❌ Incorreta

Zero linhas: impossível, pois o LEFT JOIN sempre retorna pelo menos as linhas de T1.

Alternativa B — ❌ Incorreta

10 linhas: este valor corresponderia a um INNER JOIN se todas as 10 linhas de T2 encontrassem correspondência, mas o LEFT JOIN não descarta as linhas de T1 sem match.

Alternativa C — ✅ Correta ⟵ GABARITO

12 linhas: todas as linhas de T1 são mantidas. Como T2 possui 10 linhas que referenciam T1 (chave estrangeira), as 10 linhas de T1 que têm correspondência aparecem com os dados de T2; as 2 linhas restantes de T1 aparecem com NULL na coluna A2. Total: 12 linhas.

Alternativa D — ❌ Incorreta

22 linhas: soma das linhas das duas tabelas (T1 12 + T2 10) – isso não é um comportamento de LEFT JOIN, que não faz união simples.

Alternativa E — ❌ Incorreta

120 linhas: produto cartesiano (12 × 10) – seria o resultado de um CROSS JOIN sem cláusula de junção, não de um LEFT JOIN.

O comportamento do LEFT JOIN é detalhado pelo padrão SQL (ISO/IEC 9075). A chave estrangeira em T2 garante que todos os valores de A2 existam em A1, mas não impede que T1 tenha valores não referenciados. Portanto, o resultado é sempre igual ao número de linhas de T1.

Gabarito: letra C

Link permanente: /questoes/fg049445