Questão nº 50
Questão de Tecnologia da Informação · FGV PCAM 2021 (nº 50)
ATENÇÃO!
Nas duas próximas questões, considere as tabelas de banco de dados:
- T1, com uma única coluna A1, onde A1 é a chave primária;
- T2, com uma única coluna A2, onde A2 é a chave primária, e A2 é também uma chave estrangeira que referencia T1.
As instâncias de T1 e T2 contêm, respectivamente, 12 e 10 linhas.
Com referência às tabelas T1 e T2, descritas anteriormente, o comando SQL
select t1.A1, t2.A2
from T1 t1 LEFT JOIN T2 t2 on t1.A1 = t2.A2
order by 1
produzirá um resultado com
- Azero linhas.
- B10 linhas.
- C12 linhas. (alternativa correta)
- D22 linhas.
- E120 linhas.
Resposta comentada
Gabarito Alternativa C
Um LEFT JOIN (ou junção à esquerda) combina dados de duas tabelas, garantindo que todas as linhas da tabela à esquerda (a primeira tabela mencionada) sejam incluídas no resultado. Se uma linha da tabela à esquerda não tiver correspondência na tabela à direita, os campos da tabela à direita para essa linha serão preenchidos com NULL.
- (A) Incorreta: Um
LEFT JOINsempre retorna pelo menos todas as linhas da tabela à esquerda, então nunca será zero linhas se a tabela à esquerda não estiver vazia. - (B) Incorreta: Esta seria a quantidade de linhas se fosse um
INNER JOIN, que retorna apenas as linhas que têm correspondência em ambas as tabelas. No entanto, umLEFT JOINinclui todas as linhas da tabela da esquerda, mesmo sem correspondência. A armadilha aqui é confundirLEFT JOINcomINNER JOINou pensar que o número de linhas é limitado pela tabela menor que possui correspondências. - (C) Correta: A tabela
T1é a tabela à esquerda (FROM T1 t1). ComoT1possui 12 linhas, oLEFT JOINgarantirá que todas essas 12 linhas sejam incluídas no resultado. Para as 10 linhas deT1que têm correspondência emT2(já queT2.A2é chave estrangeira deT1.A1eT2tem 10 linhas), os valores det1.A1et2.A2serão exibidos. Para as 2 linhas deT1que não têm correspondência emT2, o valor det1.A1será exibido, et2.A2seráNULL. O total de linhas será 12. - (D) Incorreta: Esta alternativa sugere uma soma das linhas das duas tabelas, o que não é o comportamento de um
LEFT JOINcom uma condição de junção específica. - (E) Incorreta: Esta alternativa sugere um produto cartesiano (12 * 10), o que ocorreria se não houvesse uma condição
ONou se ela fosse sempre verdadeira, o que não é o caso aqui.
Fonte: FGV PCAM 2021 Perito Criminal - 4ª Classe - Processamento de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.