Questão nº 50

Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 50)

FGV2024Técnico de Nível Superior - Analista de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓

Observe as tabelas A e B, que possuem 10 e 12 registros, respectivamente:

Figura da questão de Tecnologia da Informação

Após executar diferentes tipos de junções entre essas tabelas, o total de registros retornados em cada caso, sendo eles INNER JOIN, RIGHT JOIN, FULL OUTER JOIN, CROSS JOIN e LEFT JOIN, é, respectivamente:

Resposta comentada

Gabarito Alternativa C

As junções em SQL combinam linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. O número de registros resultantes depende do tipo de junção e dos dados correspondentes.

Para as tabelas A (10 registros) e B (12 registros), com a condição de junção A.id = B.id:

  • IDs em A: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
  • IDs em B: {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13}
  • IDs que se correspondem em ambas: {1, 2, 3, 4, 5, 6, 7, 8, 9} (total de 9)
  • IDs apenas em A: {10} (total de 1)
  • IDs apenas em B: {11, 12, 13} (total de 3)

Vamos analisar cada tipo de junção:

  1. INNER JOIN: Retorna apenas as linhas que têm correspondência em AMBAS as tabelas.
    • Resulta em 9 registros (os IDs 1 a 9).
  2. RIGHT JOIN: Retorna TODAS as linhas da tabela da direita (B) e as linhas correspondentes da tabela da esquerda (A). Se não houver correspondência na esquerda, os campos da esquerda serão NULL.
    • Resulta em 12 registros (todas as linhas de B).
  3. FULL OUTER JOIN: Retorna TODAS as linhas de AMBAS as tabelas, combinando as que têm correspondência e incluindo as que não têm (com valores NULL para a tabela sem correspondência).
    • Resulta em (registros correspondentes) + (registros apenas em A) + (registros apenas em B) = 9 + 1 + 3 = 13 registros.
  4. CROSS JOIN: Retorna o produto cartesiano das duas tabelas, combinando cada linha da tabela A com cada linha da tabela B.
    • Resulta em (número de registros em A) * (número de registros em B) = 10 * 12 = 120 registros.
  5. LEFT JOIN: Retorna TODAS as linhas da tabela da esquerda (A) e as linhas correspondentes da tabela da direita (B). Se não houver correspondência na direita, os campos da direita serão NULL.
    • Resulta em 10 registros (todas as linhas de A).

Portanto, a sequência é: 9, 12, 13, 120, 10.

(A) Incorreta: O INNER JOIN está incorreto (10 em vez de 9) e o FULL OUTER JOIN está incorreto (22 em vez de 13).
(B) Incorreta: O RIGHT JOIN está incorreto (10 em vez de 12).
(C) Correta: A sequência 9, 12, 13, 120 e 10 corresponde exatamente aos resultados calculados para INNER JOIN, RIGHT JOIN, FULL OUTER JOIN, CROSS JOIN e LEFT JOIN, respectivamente, com base nos dados das tabelas.
(D) Incorreta: O FULL OUTER JOIN está incorreto (22 em vez de 13). A armadilha da banca aqui é somar o total de registros das duas tabelas (10 + 12 = 22) para o FULL OUTER JOIN, sem subtrair os registros que se correspondem (9), o que levaria ao cálculo incorreto de 10 + 12 - 9 = 13.
(E) Incorreta: O CROSS JOIN está incorreto (22 em vez de 120) e o FULL OUTER JOIN está incorreto (22 em vez de 13).

Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho