Pular para o conteúdo principal

Questão de Arquitetura de Software — Banco de Dados — FUNDATEC 2023

Arquitetura de SoftwareBanco de Dados
Código
qq890383
Banca
FUNDATEC
Órgão
CAU-RS
Ano
2023
Nível
Superior
Cargo
Analista Superior Infraestrutura de TIC
Na linguagem SQL, qual operador pode ser utilizado para verificar se o valor de um campo é diferente de nulo?
  1. A<>
  2. BIS NOT NULL
  3. CNOT EXISTS
  4. D<NULLABLE>
  5. E!=
Revelar gabarito e comentário

GabaritoB — IS NOT NULL

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

SQL: verificação de valor nulo

Gabarito: letra B (IS NOT NULL). Na linguagem SQL, o operador IS NOT NULL é o único meio correto de verificar se um campo possui valor diferente de nulo, pois NULL não é um valor comparável com operadores de igualdade/desigualdade (=, <>, !=). A banca cobra exatamente essa distinção: comparar com NULL usando = ou <> sempre resulta em desconhecido (UNKNOWN), nunca em verdadeiro ou falso.

O conceito central aqui é a lógica de três valores do SQL (TRUE, FALSE e UNKNOWN). NULL representa ausência de valor, e qualquer comparação direta com NULL produz UNKNOWN, que é tratado como falso em cláusulas WHERE. Por isso, o SQL fornece os predicados IS NULL e IS NOT NULL para testar a presença ou ausência de valor de forma explícita.

A pegadinha da banca é justamente oferecer <> e != como se fossem equivalentes a "diferente de nulo". O candidato que conhece outras linguagens de programação (onde != null funciona) tende a cair nessa armadilha. No SQL, porém, campo <> NULL nunca retorna linhas, pois o resultado é UNKNOWN.

Alternativa A — ❌ Incorreta

O operador <> (diferente) é usado para comparar valores não nulos, mas não funciona com NULL. campo <> NULL retorna UNKNOWN, não TRUE, portanto não seleciona nenhuma linha. A banca explora a confusão entre "diferente de" e "diferente de nulo".

Alternativa B — ✅ Correta ⟵ GABARITO

IS NOT NULL é o predicado padrão do SQL para verificar se um campo possui valor não nulo. É a forma correta e a única que garante o resultado esperado. Exemplo: SELECT * FROM tabela WHERE campo IS NOT NULL;

Alternativa C — ❌ Incorreta

NOT EXISTS é um operador usado em subconsultas para verificar se uma subconsulta retorna alguma linha. Não tem relação com verificação de nulidade de um campo. Exemplo: SELECT * FROM a WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.id = a.id);

Alternativa D — ❌ Incorreta

<NULLABLE> não é um operador SQL válido. Não existe na sintaxe padrão do SQL. É um distrator puro, sem correspondência com qualquer funcionalidade da linguagem.

Alternativa E — ❌ Incorreta

!= é uma variação do operador de desigualdade (equivalente a <> em muitos SGBDs), mas, assim como <>, não funciona com NULL. campo != NULL também retorna UNKNOWN, não selecionando linhas. A banca troca o operador de comparação comum pelo predicado específico de nulidade.

NÃO CAIA NESSA!

A banca oferece <> e != como se fossem sinônimos de "diferente de nulo". Em linguagens de programação comuns, != null funciona, mas no SQL NULL não é um valor comparável — qualquer comparação com NULL resulta em UNKNOWN. O único jeito de testar nulidade é com IS NULL / IS NOT NULL. Fique atento: se a alternativa trouxer = ou <> com NULL, está errada.

NÃO CAIA NESSA!

Para fixar, lembre-se: nunca use = ou <> com NULL. Sempre que a questão perguntar sobre verificação de nulo, procure IS NULL ou IS NOT NULL. Essa é uma pegadinha clássica em provas de SQL — resolva muitas questões sobre o tema para internalizar.

Gabarito: letra B

Link permanente: /questoes/qq890383