Questão FC670747
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ín
Linguagem SQL
QUADRIX · 2025
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 nome FROM VETERINARIO WHERE id_especialidade = NULL;
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
A afirmação foi julgada ERRADO porque em SQL o valor NULL representa "desconhecido" e não pode ser comparado com os operadores relacionais comuns. A expressão \(id\_especialidade = NULL\) não é avaliada como verdadeira; em vez disso resulta em UNKNOWN na lógica trivalorada do SQL, e o filtro WHERE seleciona apenas as linhas cuja condição seja verdadeira. Assim, nenhuma linha será retornada com \(id\_especialidade = NULL\).
O modo correto de testar campos vazios é usar o operador específico IS NULL. Exemplo funcional:
SELECT nome FROM VETERINARIO WHERE id_especialidade IS NULL;
Para o oposto, use IS NOT NULL. Regra prática: sempre que aparecer NULL em enunciados de SQL, cheque se o avaliador usou IS ou IS NOT.
Conteúdo do catálogo FC Concursos · Atualizado em