Questão nº 66

Questão de Administração de Banco de Dados · FGV MPAL 2018 (nº 66)

FGV2018Analista do Ministério Público - Administrador de Banco de DadosAdministração de Banco de Dados
Gabarito: Bver comentário ↓

Considere o comando SQL a seguir.

select ``
from teste
where nota <> null

Sabendo-se que a tabela
teste tem 100 registros, dos quais 15 estão com a coluna nota ainda não preenchida (null*), o comando acima, executado no MS SQL Server ou no Oracle, retorna

Resposta comentada

Gabarito Alternativa B

Em SQL, `NULL` não é um valor, mas a ausência de um valor ou um valor desconhecido. Por isso, comparações diretas com `NULL` (como `=`, `<>`, `>`, `<`) não resultam em `TRUE` ou `FALSE`, mas sim em `UNKNOWN`.

(A) Incorreta: Não é um erro sintático. O comando é válido e será executado, mas o resultado lógico da comparação é `UNKNOWN`.
(B) Correta: O SQL utiliza uma lógica de três valores (`TRUE`, `FALSE`, `UNKNOWN`). A cláusula `WHERE` só retorna registros para os quais a condição avalia como `TRUE`. Como qualquer comparação direta com `NULL` (incluindo `nota <> NULL`) resulta em `UNKNOWN`, e `UNKNOWN` não é `TRUE`, nenhuma linha é retornada.
(C) Incorreta: Quinze linhas seriam retornadas se a condição fosse `nota IS NULL`, mas `nota <> NULL` não avalia como `TRUE` para os registros com `NULL`.
(D) Incorreta: Esta é a armadilha. O distrator tenta fazer o aluno pensar que `nota <> NULL` significa "nota não é nula", o que retornaria os 85 registros preenchidos. No entanto, em SQL, para verificar se um valor não é nulo, usa-se `nota IS NOT NULL`. A comparação `nota <> NULL` sempre resulta em `UNKNOWN`, não em `TRUE`.
(E) Incorreta: Cem linhas seriam retornadas se a condição fosse sempre `TRUE` para todos os registros, o que não é o caso aqui.

Fonte: FGV MPAL 2018 Analista do Ministério Público - Administrador de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho