FC ConcursosFC Concursos

Questão FC369438

Tabelas Relacionais T1 e T2 Considere as tabelas relacionais T1 e T2, de acordo com as colunas e as instâncias abaixo descritas. Na execução dos comandos SQL, assuma que o mecanism

Linguagem SQL

FGV · 2024

Tabelas Relacionais T1 e T2

 

Considere as tabelas relacionais T1 e T2, de acordo com as colunas e as instâncias abaixo descritas. Na execução dos comandos SQL, assuma que o mecanismo do banco de dados considera valores NULL como valores desconhecidos (unknown).

 

Tabela T1

 
P

N

1 10
2 40
3 20
4 10
 

Tabela T2

 

E

Q P
1 10 2
2 40 3
3 20 8
4 10 NULL
 

Considerando as tabelas T1 e T2, anteriormente apresentadas, analise o comando SQL a seguir.

 

delete from T2 where P not in (select P from T2)

 

O número de linhas deletadas da tabela T2 pela execução desse comando é:

  1. 0;
  2. 1;
  3. 2;
  4. 3;
  5. 4.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

O comando tenta remover linhas de T2 cuja coluna P não esteja na lista retornada pela subconsulta `(select P from T2)`. Essa subconsulta devolve os valores {2, 3, 8, NULL}.

Para linhas com P = 2,3 ou 8, a condição `P NOT IN (...)` é false porque o valor está presente na lista — logo, não são deletadas.

Para a linha com P = NULL, qualquer comparação com NULL resulta em UNKNOWN pela lógica ternária do SQL; o predicado na cláusula WHERE precisa ser true para que a linha seja removida. Como fica UNKNOWN, também não é deletada.

Portanto, o número de linhas deletadas é 0.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo