Pular para o conteúdo principal

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

Banco de DadosSQL
Código
fg076996
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
Considerando as tabelas T1 e T2, anteriormente apresentadas, analise o comando SQL a seguir.select * from T1 full outer join T2 on T1.P=T2.PAlém da linha de títulos, a execução desse comando produz um resultado com:
  1. A4 linhas e 5 colunas;
  2. B6 linhas e 4 colunas;
  3. C6 linhas e 5 colunas;
  4. D16 linhas e 4 colunas;
  5. E16 linhas e 5 colunas.
Revelar gabarito e comentário

GabaritoC — 6 linhas e 5 colunas;

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

FULL OUTER JOIN — Tabelas T1 e T2

Gabarito: letra C. A execução do comando SELECT * FROM T1 FULL OUTER JOIN T2 ON T1.P = T2.P produz 6 linhas e 5 colunas, pois o FULL OUTER JOIN combina todas as linhas das duas tabelas (4 + 4 = 8 no total), mas as linhas que possuem correspondência (P=1,2,3) são unidas em uma única linha cada, reduzindo o total para 3 linhas combinadas + 1 linha não correspondente de T1 (P=4) + 2 linhas não correspondentes de T2 (P=10, NULL) = 6 linhas. O número de colunas é a soma das colunas de T1 (2) e T2 (3) = 5 colunas.

A operação FULL OUTER JOIN preserva todas as linhas de ambas as tabelas. Quando há igualdade entre as colunas de junção (T1.P = T2.P), as linhas são fundidas em uma única linha. Quando não há correspondência, os atributos da tabela oposta recebem valor NULL.

Passo a passo da junção:

Tabela T1 (colunas P, N):

P

N

1

10

2

40

3

20

4

10

Tabela T2 (colunas E, Q, P):

E

Q

P

1

10

2

2

40

3

m

20

8

4

10

NULL

Correspondências (T1.P = T2.P):

  • P=1: apenas em T1 (linha 1, P=1, N=10). Em T2 não há P=1 → não corresponde.

  • P=2: T1 (2,40) e T2 (1,10,2) → unem.

  • P=3: T1 (3,20) e T2 (2,40,3) → unem.

  • P=4: apenas em T1 (4,10). T2 não tem P=4.

  • P=8 e NULL em T2 não encontram correspondência em T1.

Resultado final (6 linhas, 5 colunas):

P_T1

N

E

Q

P_T2

1

10

NULL

NULL

NULL

2

40

1

10

2

3

20

2

40

3

4

10

NULL

NULL

NULL

NULL

NULL

2

40

8

NULL

NULL

4

10

NULL

  1. 1T1: 4 linhas
  2. 2T2: 4 linhas
  3. 33 correspondências (P=2,3)
  4. 41 linha T1 sem par (P=4)
  5. 52 linhas T2 sem par (P=8,NULL)
  6. 6Resultado: 6 linhas × 5 colunas
LEVEL · soulevel.com.br
PEGA ESSA DICA!

Para calcular linhas do FULL OUTER JOIN, some o número de linhas de cada tabela (4+4=8) e subtraia o número de linhas que correspondem (3 correspondências resultam em 3 linhas únicas ao invés de 6, então subtraia 3? Na verdade, o total é: linhas combinadas (3) + linhas não correspondentes de T1 (1) + não correspondentes de T2 (2) = 6. Outra forma: total de linhas = (linhas de T1) + (linhas de T2) - (número de correspondências). Aqui, 4+4-3 = 5? Cuidado: essa fórmula só funciona se cada correspondência for única em ambas as tabelas, o que é o caso aqui (1-1). Se houver duplicatas, o cálculo é diferente. Para esta questão, o método direto é listar.

Gabarito: letra C.

Link permanente: /questoes/fg076996