NOT é um dos ope­ra­do­res lógicos do SQL e permite filtrar os re­sul­ta­dos das pesquisas de forma precisa e eficaz através do pro­ce­di­mento de exclusão. Ao utilizar o operador NOT para excluir dados que cumprem de­ter­mi­na­das condições, os re­sul­ta­dos ficam limitados às in­for­ma­ções re­le­van­tes.

O que é o operador SQL NOT?

O operador SQL NOT, jun­ta­mente com o SQL AND e o SQL OR, é um dos ope­ra­do­res lógicos do SQL que permite formular condições e critérios ao realizar consultas de dados. Enquanto os ope­ra­do­res AND e OR filtram conjuntos de dados que cumprem todas ou pelo menos uma das condições es­pe­ci­fi­ca­das, o operador NOT baseia-se no pro­ce­di­mento de exclusão, pois exclui do seu resultado toda a in­for­ma­ção nos registos se­le­ci­o­na­dos que não cumpra uma de­ter­mi­nada condição.

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

Diferença entre SQL NOT, AND e OR

A seguir, ex­pli­ca­mos as prin­ci­pais di­fe­ren­ças entre os ope­ra­do­res NOT, AND e OR:

SQL NOT SQL AND SQL OR
Devolve apenas conjuntos de dados que não sa­tis­fa­zem uma condição definida Retorna conjuntos de dados que cumprem todos os critérios de pesquisa pre­de­fi­ni­dos Retorna todas as in­for­ma­ções que sa­tis­fa­zem pelo menos uma das condições definidas
Nega uma condição ir­re­le­vante para a pesquisa Combina condições para limitar a pesquisa a in­for­ma­ções que sa­tis­fa­çam vários critérios de pesquisa Alarga os re­sul­ta­dos da pesquisa a dados que cumpram um de vários critérios
Dica

Gostaria de aprender o básico sobre SQL para começar a trabalhar com esta linguagem de pro­gra­ma­ção? Nesse caso, não hesite em consultar os exemplos da nossa in­tro­du­ção ao SQL.

A sintaxe do operador NOT

A sintaxe simples do NOT tem o seguinte aspeto:

SELECT  *
FROM tabla
WHERE  NOT  (condición)
sql

São uti­li­za­dos os seguintes pa­râ­me­tros:

  • SELECT: selecione as colunas re­le­van­tes para a sua pesquisa. Ao utilizar um asterisco *, pode pesquisar em toda a tabela se­le­ci­o­nada, incluindo todas as colunas as­so­ci­a­das. Também pode es­pe­ci­fi­car colunas in­di­vi­du­ais com a respetiva chave primária ou es­tran­geira.
  • FROM: define a tabela que pretende pesquisar.
  • WHERE: define condições através de ope­ra­do­res como o SQL NOT para limitar a consulta.
  • NOT: em com­bi­na­ção com WHERE, define a negação de uma condição que os re­sul­ta­dos da pesquisa não devem cumprir.

Para precisar a consulta, podes combinar com o AND ou o OR.

SQL NOT combinado com AND

Ao combiná-lo com AND, são de­vol­vi­dos os registos que não cumpram ambas as condições.

SELECT  *
FROM  tabla
WHERE  NOT  (condición1  AND  condición2)
sql

SQL NOT combinado com OR

Ao combiná-lo com OR, obtêm-se re­sul­ta­dos que excluem os registos que cumprem pelo menos uma das condições.

SELECT  *
FROM  tabla
WHERE  NOT  (condición1  OR  condición2)
sql

Possíveis uti­li­za­ções do operador NOT

As pos­si­bi­li­da­des de uti­li­za­ção do NOT ao realizar consultas e pesquisas são pra­ti­ca­mente ili­mi­ta­das. Por exemplo, podes fazer o seguinte:

  • excluir dados de clientes, en­co­men­das ou produtos por região, ano, categoria, preço ou ca­rac­te­rís­ti­cas;
  • ignorar registos com valores inválidos ou com valores em falta;
  • filtrar dados fi­nan­cei­ros que não cumpram 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­par­ta­mento es­pe­cí­fico;
  • filtrar can­di­da­tos que não possuam uma qua­li­fi­ca­ção de­ter­mi­nada.

Exemplos de uti­li­za­ção do operador SQL NOT

A pesquisa com o operador NOT pode variar con­si­de­ra­vel­mente, de­pen­dendo da forma como definir a condição com a cláusula WHERE, o operador NOT e outros ope­ra­do­res opcionais. Mostramos-lhe isso em três exemplos de aplicação.

Exclusão de fun­ci­o­ná­rios por região

Imagine que, na tabela «Fun­ci­o­ná­rios», pretende mostrar apenas in­for­ma­ções sobre os fun­ci­o­ná­rios que não residem na Alemanha. Para tal, defina a condição uti­li­zando a coluna «país», a cláusula WHERE, o operador NOT e o operador de com­pa­ra­ção = da seguinte forma:

SELECT  *
FROM  empleados
WHERE  NOT  (país  =  'Alemania')
sql

Da mesma forma, se numa tabela de produtos pretender mostrar apenas os produtos que já não estão em stock, deve proceder da seguinte forma:

SELECT  *
FROM  productos
WHERE  NOT  (stock  >  0)
sql

Filtrar grupos de clientes

Imagina que tens a tabela «Clientes» e precisas de procurar um de­ter­mi­nado grupo de clientes que não cumpra condições pré-definidas. Neste exemplo, não podem ter menos de 30 anos nem residir em Berlim; por isso, além do NOT, também são uti­li­za­dos ope­ra­do­res de com­pa­ra­ção e o valor AND.

SELECT  *
FROM  clientes
WHERE  NOT  (edad  <  30  AND  ciudad  =  'Berlín')
sql

Filtrar as qua­li­fi­ca­ções em falta numa can­di­da­tura

Imagina que tens a tabela «Can­di­da­tos» e precisas de excluir os re­sul­ta­dos que não cumpram critérios es­pe­cí­fi­cos, como «li­cen­ci­a­tura» ou «ex­pe­ri­ên­cia». A pesquisa ficaria assim:

SELECT  *
FROM  candidatos
WHERE  NOT  (titulación  =  ´grado´  OR  experiencia  <  3)
sql

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

O operador NOT ca­rac­te­riza-se por negar critérios de pesquisa e não existe nenhuma al­ter­na­tiva que tenha essa mesma função. No entanto, o SQL NOT é versátil e pode ser combinado para realizar consultas precisas com vários comandos SQL. Alguns deles são o SQL JOIN ou funções de agregação do SQL HAVING, como o SQL SUM ou AVG, ope­ra­do­res de com­pa­ra­ção como = ou >, bem como comandos e ope­ra­do­res como o SQL LIKE. Para limitar ou ampliar o pro­ce­di­mento de exclusão a múltiplas condições, também podem ser uti­li­za­dos os ope­ra­do­res lógicos AND e OR.

Ir para o menu principal