Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg599042
Banca
Quadrix
Órgão
CRMV-GO
Ano
2025
Nível
Superior
Cargo
Analista Administrativo
O Conselho Regional de Medicina Veterinária do Estado de Goiás (CRMV‑GO) mantinha um banco de dados relacional denominado CRMV_GO, que registrava veterinários, especialidades, clínicas e atendimentos. As principais tabelas estão dispostas a seguir.

VETERINARIO (id_vet, nome, crmv, data_inscricao, id_especialidade, ativo)
ESPECIALIDADE (id_especialidade, descricao)
CLINICA (id_clinica, nome_clinica, cidade)
ATENDIMENTO (id_atendimento, id_vet, id_clinica, data_atendimento, status)
Com base nessa situação hipotética e no uso do comando SELECT no banco de dados CRMV_GO, julgue o item seguinte.O comando a seguir apresenta os veterinários que não têm especialidade cadastrada, considerando que o campo id_especialidade pode ser NULL.SELECT nomeFROM VETERINARIOWHERE id_especialidade = NULL;
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Tratamento de NULL no SQL: o operador IS NULL

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)

IS NULL

Testar se o valor é nulo

verdadeiro se for nulo

IS NOT NULL

Testar se o valor não é nulo

verdadeiro se não for nulo

NÃO CAIA NESSA!

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 =.

Item — ❌ ERRADO

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