Questão de Banco de Dados — SQL — FGV 2022
- Código
- fg049445
- Banca
- FGV
- Órgão
- PC-AM
- Ano
- 2022
- Nível
- Superior
- Cargo
- Perito Criminal - 4ª Classe - Processamento de Dados
- Azero linhas.
- B10 linhas.
- C12 linhas.
- D22 linhas.
- E120 linhas.
GabaritoC — 12 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:
Zero linhas: impossível, pois o LEFT JOIN sempre retorna pelo menos as linhas de T1.
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.
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.
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.
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