Questão nº 51
Questão de Tecnologia da Informação · FGV BANESTES 2021 (nº 51)
Nas próximas cinco questões, considere as tabelas T1, T2 e T3, cujas estruturas e instâncias são exibidas a seguir. O valor NULL deve ser tratado como unknown (desconhecido).
Para a tabela T3, descrita anteriormente, considere os comandos SQL a seguir.
I. select * from T3 where E <> NULL
II. select * from T3 where not (E is NULL)
III. select * from T3 where not (E = NULL)
Sobre esses comandos, executados com a instância da tabela T3 descrita anteriormente, é correto concluir que:
- Asomente I e II produzem resultados equivalentes;
- Bsomente I e III produzem resultados equivalentes; (alternativa correta)
- Csomente II e III produzem resultados equivalentes;
- Dtodos produzem resultados diferentes entre si;
- Etodos produzem resultados equivalentes.
Resposta comentada
Gabarito Alternativa B
Em SQL, o valor NULL representa um dado desconhecido e se comporta de forma especial em comparações: qualquer comparação direta com `NULL` (usando `=`, `<>`, `>`, etc.) resulta em UNKNOWN, e a cláusula `WHERE` só retorna linhas onde a condição é TRUE.
(A) Incorreta: O comando I retorna 0 linhas e o comando II retorna 3 linhas, portanto não são equivalentes.
(B) Correta: O comando I (`E <> NULL`) resulta em `UNKNOWN` para todas as linhas, retornando 0 linhas. O comando III (`not (E = NULL)`) também resulta em `UNKNOWN` para todas as linhas (pois `E = NULL` é `UNKNOWN`, e `NOT (UNKNOWN)` é `UNKNOWN`), retornando 0 linhas. Assim, ambos produzem resultados equivalentes (nenhuma linha).
(C) Incorreta: O comando II retorna 3 linhas e o comando III retorna 0 linhas, portanto não são equivalentes.
(D) Incorreta: Os comandos I e III produzem resultados equivalentes (ambos retornam 0 linhas).
(E) Incorreta: Os comandos I e III são equivalentes, mas o comando II não é equivalente a eles.
Fonte: FGV BANESTES 2021 Analista em Tecnologia da Informação - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.
