Questão de Banco de Dados — Consultas e Comandos em SQL — FGV 2023
Banco de Dados›Consultas e Comandos em SQL
Código
fg161115
Banca
FGV
Órgão
ALEMA
Ano
2023
Cargo
TecGes Admin ( )
O banco de dados relacional de uma escola contém as tabelas denominadas TB_STUDENT_A e TB_STUDENT_B e ambas possuem apenas as colunas ID e NAME.
O conteúdo dessas tabelas está detalhado a seguir:
TB_STUDENT_A
ID
NAME
1
Maria
2
João
3
Visconde
4
Ana
5
Inês
TB_STUDENT_B
ID
NAME
1
Fábio
2
Marta
3
Maria
4
Sérgio
5
Penélope
6
João
Analise a seguinte consulta em linguagem SQL:
SELECT *
FROM TB_STUDENT_A
LEFT JOIN TB_STUDENT_B
ON TB_STUDENT_A.NAME=TB_STUDENT_B.NAME.
O número de linhas do resultado produzido pela execução deste comando SQL sobre o banco de dados desta escola, excetuada a linha de títulos, é:
A2.
B3.
C4.
D5.
E6.
Revelar gabarito e comentário▾
GabaritoD — 5.
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”.
Resolução
Gabarito: letra D — a conta chega a 5 linhas — alternativa D.
A ideia por trás
O LEFT JOIN é um tipo de junção entre duas tabelas que preserva todas as linhas da tabela da esquerda. Para cada linha da esquerda, ele procura correspondências na tabela da direita conforme a condição ON; se encontrar, junta os dados, se não, preenche com NULL. O resultado tem, no mínimo, o número de linhas da tabela da esquerda.
A condição ON define quais linhas combinam. Quando há correspondência, o resultado tem uma linha para cada par; quando não há, a linha da esquerda aparece sozinha com NULL à direita. Se houver nomes repetidos, o número de linhas pode aumentar, mas aqui cada nome é único em cada tabela.
Esta questão testa se você sabe que o LEFT JOIN não descarta as linhas sem par da esquerda. Basta comparar os nomes e contar as linhas resultantes.
Esquecer de listar todos os nomes, principalmente os que não têm correspondência.
Passo 2 — Identificar os nomes em comum
A condição ON compara os nomes. Os nomes que aparecem nas duas tabelas geram correspondência; os demais não.
NÃO CAIA NESSA!
Contar nomes repetidos dentro da mesma tabela — aqui não há.
Passo 3 — Contar as linhas do resultado
No LEFT JOIN, cada linha de TB_STUDENT_A aparece no resultado. Para as que têm correspondência (Maria e João), sai uma linha; para as que não têm (Visconde, Ana, Inês), sai uma linha com NULL. Como são 5 linhas na esquerda, o total é 5.
NÃO CAIA NESSA!
Contar apenas as correspondências (2) e marcar A, ou contar as linhas de B (6) e marcar E.