Pular para o conteúdo principal

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

Banco de DadosSQL
Código
fg071513
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
Com referência às tabelas TX e TY, como descritas anteriormente, analise o comando SQL a seguir.select count(*)from TX t1 left join TY t2 on t1.B=t2.AO valor exibido pela execução desse comando é:
  1. A0;
  2. B2;
  3. C3;
  4. D4;
  5. E6.
Revelar gabarito e comentário

GabaritoD — 4;

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

Análise do comando LEFT JOIN

Gabarito: letra D. O comando SELECT count(*) FROM TX t1 LEFT JOIN TY t2 ON t1.B = t2.A retorna 4, pois o LEFT JOIN preserva todas as linhas da tabela TX (4 registros) e, como nenhum valor de t1.B (2, 1, 2, 2) encontra correspondência em t2.A (0, NULL, NULL, NULL, NULL), cada linha de TX produz uma linha no resultado com os campos de TY como NULL. O COUNT(*) conta todas as linhas do resultado, totalizando 4.

Alternativa A — ❌ Incorreta

Afirma 0, mas o LEFT JOIN nunca elimina linhas da tabela à esquerda. Como há 4 registros em TX, o resultado tem 4 linhas.

Alternativa B — ❌ Incorreta

Sugere 2, valor que seria obtido se apenas duas linhas de TX tivessem correspondência. Na verdade, nenhuma linha tem correspondência, mas o LEFT JOIN as mantém.

Alternativa C — ❌ Incorreta

Indica 3, que é o número de linhas em TY, mas não se aplica à contagem do resultado do LEFT JOIN.

Alternativa D — ✅ Correta ⟵ GABARITO

Exatamente 4, conforme demonstrado.

Alternativa E — ❌ Incorreta

Aponta 6, que seria a soma 4+2 (ou algo similar), mas não corresponde à lógica do LEFT JOIN.

PEGA ESSA DICA!

Em LEFT JOIN, o COUNT(*) sempre conta pelo menos o número de linhas da tabela da esquerda. Para contar apenas as que têm correspondência, use COUNT(t2.chave) ou um INNER JOIN.

Gabarito: letra D.

Link permanente: /questoes/fg071513