De acordo com a definição e instâncias das tabelas T1 e T2 ...

Próximas questões
Com base no mesmo assunto
Q1069975 Banco de Dados

Na questão, considere as tabelas T1 e T2 exibidas a seguir com suas respectivas instâncias.


                                    T1                          T2

                                    a    b                       a       c

                                   10   A                      10      7

                                    11  B                      11      9

                                    12  C                      15   NULL

                                    14  D

De acordo com a definição e instâncias das tabelas T1 e T2 definidas acima, analise o comando SQL a seguir.


select t2 . a, t2 . c

from T1 left join T2

on t1 . a = t2 . a


Ao ser executado, esse comando produz um resultado contendo quatro linhas, além da linha de títulos.


Assinale a opção que indica o número de células que aparecem nesse resultado contendo “NULL”.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E - 4

Para compreender o resultado obtido na execução do comando SQL, é preciso conhecer o conceito de LEFT JOIN que é utilizado para retornar todos os registros da tabela à esquerda (T1), e os registros correspondentes da tabela à direita (T2). Quando não há correspondência, o resultado é NULL na tabela à direita.

Observando as instâncias, temos:

  • T1: valores de 'a' são 10, 11, 12, 14
  • T2: valores de 'a' são 10, 11, 15

O comando SELECT t2.a, t2.c FROM T1 LEFT JOIN T2 ON t1.a = t2.a vai tentar encontrar correspondentes em T2 para cada 'a' em T1. A tabela resultante terá a seguinte forma:

t2.at2.c
107
119
NULLNULL
NULLNULL

Podemos identificar que:

  • Para t1.a = 10 e 11, encontramos correspondentes em T2.
  • Para t1.a = 12, não há correspondente em T2, assim o resultado é NULL para t2.a e t2.c.
  • Para t1.a = 14, também não há correspondente; portanto, resultado é novamente NULL para t2.a e t2.c.

Contando as células com NULL, temos um total de 4:

  • 2 células para t1.a = 12 (t2.a e t2.c)
  • 2 células para t1.a = 14 (t2.a e t2.c)

Por isso, a alternativa correta é a E, indicando que haverá 4 células contendo "NULL" no resultado do comando SQL apresentado.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Será que alguém poderia explicar como aparecem 4 registros NULL? Ao meu ver, aparecem 2.

Jorge Miranda, também fui na mesma linha de pensamento que você e errei. Olhando novamente a questão eu entendi. É perguntado o número de "células" contendo null. Célula é diferente de linha. Cada célula é uma combinação de linha com coluna. O resultado do select será o seguinte

a c

10 7

11 9

NULL NULL

NULL NULL

Então teremos 2 linhas contendo NULL, porém 4 células contendo NULL.

Marco, obrigado pela ajuda.

Eu acreditava que o resultado não traria nenhuma célula null.

Se fosse

select t1.a, t2.c

from T1 left join T2

on t1.a = t2.a

o resultado seria 2 células Null.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo