O operador SQL NOT é um dos ope­ra­do­res lógicos e permite filtrar efi­ci­en­te­mente e com precisão os re­sul­ta­dos da pesquisa por meio do método de exclusão. Uti­li­zando o operador NOT, você exclui dados que atendem a de­ter­mi­na­das condições, res­trin­gindo os re­sul­ta­dos às in­for­ma­ções re­le­van­tes.

O que é o operador SQL NOT?

O SQL NOT, jun­ta­mente com SQL AND e SQL OR, é um dos ope­ra­do­res ope­ra­do­res SQL lógicos que permitem formular condições e critérios para consultas de dados. Enquanto os ope­ra­do­res AND e OR filtram registros que atendem a todas ou pelo menos uma condição es­pe­ci­fi­cada, o operador NOT baseia-se no método de exclusão. Em sua consulta, você exclui todas as in­for­ma­ções dos registros que atendem a uma condição definida.

O operador SQL NOT é fre­quen­te­mente usado em conjunto com SQL SELECT, SQL WHERE e SQL HAVING. Para tornar a pesquisa o mais precisa possível, você também pode combinar o operador NOT com os ope­ra­do­res AND e OR. Dessa forma, você pode filtrar re­sul­ta­dos ir­re­le­van­tes que não atendem a todas as condições definidas (AND) ou que não atendem a pelo menos uma das condições men­ci­o­na­das (OR).

Diferença entre SQL NOT, AND e OR

Os ope­ra­do­res SQL NOT, AND e OR di­fe­ren­ciam-se da seguinte forma:

SQL NOT SQL AND SQL OR
Retorna apenas os registros que não atendem a uma condição definida. Retorna registros que atendem a todos os critérios de pesquisa pre­de­fi­ni­dos. Retorna todas as in­for­ma­Ã§Ãµes que atendem a pelo menos uma das condições definidas .
Nega uma condição que deve ser excluída da pesquisa. Combina condições para res­trin­gir a pesquisa a in­for­ma­Ã§Ãµes que atendem a múltiplos critérios de pesquisa. Expande os re­sul­ta­dos da pesquisa para dados que atendem a um de vários critérios.
Dica

Quer se apro­fun­dar mais em SQL, mas ainda tem pouco co­nhe­ci­mento? Nossa in­tro­du­ção ao SQL com exemplos pode ajudá-lo a começar ra­pi­da­mente com essa linguagem de banco de dados.

Sintaxe do operador NOT

A sintaxe simples do NOT é a seguinte:

SELECT  *
FROM Tabela
WHERE  NOT  (condição_de_pesquisa)
sql

Os seguintes pa­râ­me­tros são usados:

  • SELECT: Seleciona colunas que são re­le­van­tes para a sua pesquisa. Com um asterisco *, você pesquisa toda a tabela se­le­ci­o­nada, incluindo todas as colunas as­so­ci­a­das. Você também pode es­pe­ci­fi­car colunas in­di­vi­du­ais com a chave primária ou es­tran­geira cor­res­pon­dente.
  • FROM: Define a tabela que você deseja pesquisar.
  • WHERE: Define condições usando ope­ra­do­res como SQL NOT para res­trin­gir a consulta de dados.
  • NOT: Em com­bi­na­ção com WHERE, es­pe­ci­fica a negação de uma condição que os re­sul­ta­dos da pesquisa não devem atender..

Deseja tornar sua consulta de dados mais precisa? Combinar AND ou OR com NOT pode tornar sua consulta de dados mais precisa.

Combinar SQL NOT e AND

Em com­bi­na­ção com AND, os re­sul­ta­dos que sa­tis­fa­zem ambas as condições de pesquisa não devem fazer parte do conjunto de re­sul­ta­dos.

SELECT  *
FROM  Tabela
WHERE  NOT  (condição_de_pesquisa1  AND  condição_de_pesquisa2)
sql

Combinar SQL NOT e OR

Em com­bi­na­ção com OR, você pode excluir dados que não sa­tis­fa­zem pelo menos uma das condições de pesquisa.

SELECT  *
FROM  Tabela
WHERE  NOT  (condição_de_pesquisa1  OR  condição_de_pesquisa2)
sql

Quando usar o operador SQL NOT

As pos­si­bi­li­da­des de uso para consultas e pesquisas com NOT são pra­ti­ca­mente ili­mi­ta­das. Você pode, por exemplo:

  • Excluir dados de clientes, pedidos ou produtos por região, ano, categoria, preço ou ca­rac­te­rís­ti­cas
  • Ignorar registros que possuem valores inválidos ou ausentes
  • Filtrar dados fi­nan­cei­ros que não atendem a de­ter­mi­na­dos critérios de transação
  • Excluir dados de fun­ci­o­ná­rios que não pertençam a um de­ter­mi­nado de­par­ta­mento
  • Filtrar can­di­da­tos que não possuem uma qua­li­fi­ca­ção es­pe­cí­fica

Exemplos de uso do operador SQL NOT

De­pen­dendo do caso de uso, a pesquisa com o operador NOT pode variar bastante – de­pen­dendo de como você define a condição com a cláusula WHERE, o operador NOT e outros ope­ra­do­res opcionais. Para ilustrar, ofe­re­ce­mos três exemplos práticos.

Excluir fun­ci­o­ná­rios por região

Você deseja exibir em uma tabela “Fun­ci­o­ná­rios” apenas in­for­ma­ções sobre fun­ci­o­ná­rios que não vivem na Brasil. Para isso, você define a condição com a coluna “País”, a cláusula WHERE, o operador NOT e o operador de com­pa­ra­ção = da seguinte forma:

SELECT  *
FROM Funcionários
WHERE NOT (País = 'Brasil')
sql

De forma se­me­lhante, você pode proceder se quiser exibir em uma tabela de produtos apenas aqueles que não estão mais em estoque:

SELECT  *
FROM  Produtos
WHERE  NOT  (Estoque  >  0)
sql

Filtrar grupos de clientes

Em uma tabela “Clientes”, você deseja procurar um grupo de clientes que não cumprem certas condições pré-definidas. Nesse exemplo, eles não devem ter menos de 30 anos e não devem morar em Goiânia. Portanto, além do NOT, também são usados ope­ra­do­res de com­pa­ra­ção e o operador AND.

SELECT  *
FROM  Clientes
WHERE  NOT  (Idade  <  30  AND  Cidade  =  'Goiânia')
sql

Filtrar qua­li­fi­ca­ções ausentes em can­di­da­tu­ras

Você deseja excluir certos re­sul­ta­dos em uma tabela de “Can­di­da­tos” que não possuem qua­li­fi­ca­ções es­pe­cí­fi­cas, como “Ba­cha­re­lado” ou “Ex­pe­ri­ên­cia”. A consulta seria a seguinte:

SELECT  *
FROM  Candidatos
WHERE  NOT  (Grau  =  'Bacharelado'  OR  Experiência  <  3)
sql

Al­ter­na­ti­vas ao SQL NOT

Uma al­ter­na­tiva com função idêntica não existe, pois o operador NOT se ca­rac­te­riza pela negação dos critérios de pesquisa. No entanto, como o SQL NOT é um operador versátil, ele pode ser usado para consultas precisas combinado com vários comandos SQL. Entre esses comandos estão o SQL JOIN ou funções agregadas SQL HAVING como SQL SUM ou AVG, ope­ra­do­res de com­pa­ra­ção como = ou > e comandos e ope­ra­do­res como SQL LIKE. Para res­trin­gir ou expandir o método de exclusão para várias condições, também são úteis os ope­ra­do­res lógicos AND e OR.

Ir para o menu principal