Operadores relacionais em SQL
Gabarito: letra B. O operador NOT IN retorna verdadeiro se a expressão não for igual a nenhum dos valores do conjunto. A descrição "testa se não é igual a um dos valores" é a única que descreve corretamente um operador relacional entre as alternativas, pois as demais apresentam erros conceituais ou fogem ao escopo (ex.: IS NOT NULL não é operador relacional).
A banca testa o conhecimento da definição e da classificação desses operadores. A confusão comum é considerar IS NOT NULL como relacional, quando na verdade é um operador de nulidade.
Operador | Descrição correta | Categoria | Comportamento no SQL Padrão (ANSI) |
|---|
IN | Testa se a expressão é igual a algum valor do conjunto | Relacional | Retorna TRUE se o valor estiver presente na lista |
NOT IN | Testa se a expressão não é igual a nenhum valor do conjunto | Relacional | Retorna TRUE se o valor não estiver presente na lista |
NOT LIKE | Testa se a expressão não corresponde a um padrão (com % e _) | Correspondência de padrões | Compara padrões, não valores exatos |
NOT BETWEEN | Testa se o valor está fora do intervalo [valor1, valor2] | Relacional | Retorna TRUE se o valor não estiver no intervalo (inclusive) |
IS NOT NULL | Testa se o valor não é nulo | Nulidade | Retorna TRUE se o valor não for NULL |
Alternativa A — ❌ Incorreta
O operador IN testa se a expressão é igual a algum dos valores do conjunto, e não se o conjunto contém a expressão. A redação inverte o sujeito: a expressão é que é testada contra o conjunto.
SQL Padrão (ANSI): IN retorna TRUE se o valor estiver presente na lista.
Alternativa B — ✅ Correta ⟵ GABARITO
NOT IN retorna TRUE se a expressão não for igual a nenhum dos valores. Embora a frase "não é igual a um dos valores" seja ambígua, na prática ela é interpretada como "não é igual a qualquer um", sendo aceita como correta.
SQL Padrão: NOT IN retorna TRUE se o valor não estiver presente na lista.
Alternativa C — ❌ Incorreta
NOT LIKE é usado para correspondência de padrões (com % e _), não para testar igualdade a valores de um conjunto. O erro é duplo: troca a finalidade e o tipo de operação.
SQL Padrão: LIKE compara padrões, não valores exatos.
Alternativa D — ❌ Incorreta
NOT BETWEEN testa se o valor está fora do intervalo [valor1, valor2], não se é igual a valor1 e valor2. A descrição confunde o operador com uma comparação de igualdade.
SQL Padrão: BETWEEN testa se o valor está no intervalo (inclusive); NOT BETWEEN testa o contrário.
Alternativa E — ❌ Incorreta
A descrição IS NOT NULL testa se o valor não é nulo está factualmente correta, mas o operador IS NOT NULL não é um operador relacional — pertence à categoria de operadores de nulidade. A questão trata especificamente de operadores relacionais, portanto a alternativa foge ao escopo.
SQL Padrão: IS NULL/IS NOT NULL são operadores de comparação com NULL, mas não são classificados como relacionais.
Gabarito: letra B.