Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg599042
- Banca
- Quadrix
- Órgão
- CRMV-GO
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Administrativo
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando apresentado está incorreto porque, no SQL, valores NULL não podem ser comparados com o operador de igualdade (=); a comparação id_especialidade = NULL nunca retorna verdadeiro, pois NULL representa um valor desconhecido. Para selecionar registros com campo nulo, o correto é usar o operador IS NULL.
No SQL, NULL é um marcador especial que indica ausência de valor, e não um valor concreto. Por isso, qualquer comparação direta com NULL (como = NULL, <> NULL, > NULL) resulta em um estado lógico chamado unknown (desconhecido), que não é verdadeiro nem falso. Na prática, isso significa que a condição WHERE id_especialidade = NULL não retorna nenhuma linha, mesmo que existam veterinários com id_especialidade nulo. O comando correto para atender ao objetivo do enunciado seria:
SELECT nome
FROM VETERINARIO
WHERE id_especialidade IS NULL;O operador IS NULL (e sua negação IS NOT NULL) é a única forma padrão de testar a presença ou ausência de NULL em uma coluna. Essa é uma das pegadinhas mais clássicas em provas de SQL, pois o candidato, por analogia com comparações numéricas ou de texto, tende a usar = ou <> com NULL, o que está errado.
Para fixar, veja a diferença entre os operadores:
Operador | Uso correto | Resultado com NULL |
|---|---|---|
| Comparar valores não nulos | unknown (não retorna linha) |
| Comparar valores não nulos | unknown (não retorna linha) |
| Testar se o valor é nulo | verdadeiro se for nulo |
| Testar se o valor não é nulo | verdadeiro se não for nulo |
A banca troca o operador IS NULL por = NULL. Essa é uma armadilha clássica: o candidato que conhece a sintaxe básica do SELECT, mas não domina o tratamento de NULL, marca como certo. Lembre-se: NULL não é um valor, é a ausência de valor — por isso não pode ser comparado com =.
O comando WHERE id_especialidade = NULL está incorreto porque a comparação com = não funciona para NULL. O correto seria WHERE id_especialidade IS NULL. Portanto, o item está errado.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qg599042