SóProvas


ID
5429689
Banca
FGV
Órgão
SEFAZ-ES
Ano
2021
Provas
Disciplina
Banco de Dados
Assuntos

Utilize as tabelas T, R e S para resolver a próxima questão

Considere um banco de dados relacional contendo as tabelas T, R e S, cujas instâncias são exibidas a seguir. 

T
A         B                                                                                      C
10       LPG Participações                                                           S
20       Serviços & Gerenciamento Remoto                                N
50       Academia Americana                                                       S
70       Distribuidora São João de Artigos para Festas               S

R
D                E                                     F
12040         21/06/2021                    200,00
12041         23/06/2021                    548,00
1497           15/06/2021                    147,10
1498           15/06/2021                      85,00
214             18/06/2021                      99,00
215             19/06/2021                    997,45 

S
G          H              I
10        12040       12
10        12041       12
50        1497         12
50        1498         10
70         214          20
50         215          12

Considere a tabela T e a execução dos dois comandos SQL a seguir.

SELECT T.*
FROM T LEFT JOIN S ON T.A = S.G
ORDER BY 2
SELECT T.*
FROM T RIGHT JOIN S ON T.A = S.G
ORDER BY 2

Sem considerar as linhas de títulos, assinale o número de linhas produzidas por cada comando, na ordem.

Alternativas
Comentários
  • Resolução:

    Para resolução desta questão, vamos analisar cada parte da estrutura do código SQL:

    1- SELECT T.* FROM T LEFT JOIN S ON T.A = S.G ORDER BY 2

    1.1. SELECT T.*: O asterisco determina que consulta deverá ser composto por todas as colunas da tabela “T”.

    1.2.  FROM T LEFT JOIN S ON T.A = S.G: Devendo a seleção de dados ser baseada nos dados das tabelas “T” e “S”, com retorno dos dados da tabela “T” e dos registros relacionados entre “T” e “S”. Considerando a relação de igualdade entre as colunas T.A = S.G.

    1.3. ORDER BY 2: Ordenando os dados pela segunda coluna.

    1.4. Assim, quantidade corresponderá o somatório de n(T-S) = 1 (Só o 20) e n(T∩ S) = 6 (Corresponde ao 10, 10, 50, 50, 50 e 70), que é 7.

    2- SELECT T.* FROM T RIGHT JOIN S ON T.A = S.G ORDER BY 2

    2.1. SELECT T.*: O asterisco determina que consulta deverá ser composto por todas as colunas da tabela “T”.

    2.2.  FROM T LEFT JOIN S ON T.A = S.G: Devendo a seleção de dados ser baseada nos dados das tabelas “T” e “S”, com retorno dos dados da tabela “S” e dos registros relacionados entre “S” e “T”. Considerando a relação de igualdade entre as colunas T.A = S.G.

    2.3. ORDER BY 2: Ordenando os dados pela segunda coluna.

    2.4. Assim, quantidade corresponderá o somatório de n(S - T) = 0 (Sem valores) e n(T ∩ S) = 6 (Corresponde ao 10, 10, 50, 50, 50 e 70), que é 6.

    Gabarito: D

  • Os únicos limites da sua mente são aqueles que você acreditar ter!

  • ta dificil entender isso

  • T

    A                                                

    10    

    20   

    50    

    70 

    S

    G     

    10    

    10    

    50    

    50    

    70   

    50

    LEFT JOIN = (T ) + (T S)

    10

    20

    50

    70

    10

    50

    50

    = 7 linhas

    RIGHT JOIN = (S) + (S T)

    10

    10

    50

    50

    50

    70

    = 6 linhas

  • Tabela T

    Coluna A: 10, 20, 50, 70 

    Tabela S

    Coluna G: 10, 10, 50, 50, 70, 50

    T LEFT JOIN S ON T.A = S.G => (T) + (T ∩ S)

    (10, 20, 50, 70) + (10, 50, 50)

    = 7 linhas

    T RIGHT JOIN S ON T.A = S.G => (S) + (S ∩ T)

    (10, 10, 50, 50, 70, 50) + ()

    = 6 linhas