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:
A4 linhas e 5 colunas;
B6 linhas e 4 colunas;
C6 linhas e 5 colunas;
D16 linhas e 4 colunas;
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
1T1: 4 linhas
2T2: 4 linhas
33 correspondências (P=2,3)
41 linha T1 sem par (P=4)
52 linhas T2 sem par (P=8,NULL)
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.