SQL NOT: pesquisas precisas com critérios de exclusão
NOT é um dos operadores lógicos do SQL e permite filtrar os resultados das pesquisas de forma precisa e eficaz através do procedimento de exclusão. Ao utilizar o operador NOT para excluir dados que cumprem determinadas condições, os resultados ficam limitados às informações relevantes.
O que é o operador SQL NOT?
O operador SQL NOT, juntamente com o SQL AND e o SQL OR, é um dos operadores lógicos do SQL que permite formular condições e critérios ao realizar consultas de dados. Enquanto os operadores AND e OR filtram conjuntos de dados que cumprem todas ou pelo menos uma das condições especificadas, o operador NOT baseia-se no procedimento de exclusão, pois exclui do seu resultado toda a informação nos registos selecionados que não cumpra uma determinada condição.
O operador SQL NOT é frequentemente utilizado em combinaçã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 operadores AND e OR. Desta forma, pode filtrar os resultados irrelevantes que não cumprem as condições específicas (AND) ou que não cumprem pelo menos uma das condições mencionadas (OR).
Diferença entre SQL NOT, AND e OR
A seguir, explicamos as principais diferenças entre os operadores NOT, AND e OR:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Devolve apenas conjuntos de dados que não satisfazem uma condição definida | Retorna conjuntos de dados que cumprem todos os critérios de pesquisa predefinidos | Retorna todas as informações que satisfazem pelo menos uma das condições definidas |
| Nega uma condição irrelevante para a pesquisa | Combina condições para limitar a pesquisa a informações que satisfaçam vários critérios de pesquisa | Alarga os resultados da pesquisa a dados que cumpram um de vários critérios |
Gostaria de aprender o básico sobre SQL para começar a trabalhar com esta linguagem de programação? Nesse caso, não hesite em consultar os exemplos da nossa introdução ao SQL.
A sintaxe do operador NOT
A sintaxe simples do NOT tem o seguinte aspeto:
SELECT *
FROM tabla
WHERE NOT (condición)sqlSão utilizados os seguintes parâmetros:
SELECT: selecione as colunas relevantes para a sua pesquisa. Ao utilizar um asterisco*, pode pesquisar em toda a tabela selecionada, incluindo todas as colunas associadas. Também pode especificar colunas individuais com a respetiva chave primária ou estrangeira.FROM: define a tabela que pretende pesquisar.WHERE: define condições através de operadores como o SQLNOTpara limitar a consulta.NOT: em combinação comWHERE, define a negação de uma condição que os resultados 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 devolvidos os registos que não cumpram ambas as condições.
SELECT *
FROM tabla
WHERE NOT (condición1 AND condición2)sqlSQL NOT combinado com OR
Ao combiná-lo com OR, obtêm-se resultados que excluem os registos que cumprem pelo menos uma das condições.
SELECT *
FROM tabla
WHERE NOT (condición1 OR condición2)sqlPossíveis utilizações do operador NOT
As possibilidades de utilização do NOT ao realizar consultas e pesquisas são praticamente ilimitadas. Por exemplo, podes fazer o seguinte:
- excluir dados de clientes, encomendas ou produtos por região, ano, categoria, preço ou características;
- ignorar registos com valores inválidos ou com valores em falta;
- filtrar dados financeiros que não cumpram determinados critérios de transação;
- excluir dados de funcionários que não pertençam a um departamento específico;
- filtrar candidatos que não possuam uma qualificação determinada.
Exemplos de utilização do operador SQL NOT
A pesquisa com o operador NOT pode variar consideravelmente, dependendo da forma como definir a condição com a cláusula WHERE, o operador NOT e outros operadores opcionais. Mostramos-lhe isso em três exemplos de aplicação.
Exclusão de funcionários por região
Imagine que, na tabela «Funcionários», pretende mostrar apenas informações sobre os funcionários que não residem na Alemanha. Para tal, defina a condição utilizando a coluna «país», a cláusula WHERE, o operador NOT e o operador de comparação = da seguinte forma:
SELECT *
FROM empleados
WHERE NOT (país = 'Alemania')sqlDa 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)sqlFiltrar grupos de clientes
Imagina que tens a tabela «Clientes» e precisas de procurar um determinado 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 utilizados operadores de comparação e o valor AND.
SELECT *
FROM clientes
WHERE NOT (edad < 30 AND ciudad = 'Berlín')sqlFiltrar as qualificações em falta numa candidatura
Imagina que tens a tabela «Candidatos» e precisas de excluir os resultados que não cumpram critérios específicos, como «licenciatura» ou «experiência». A pesquisa ficaria assim:
SELECT *
FROM candidatos
WHERE NOT (titulación = ´grado´ OR experiencia < 3)sqlAlternativas ao SQL NOT
O operador NOT caracteriza-se por negar critérios de pesquisa e não existe nenhuma alternativa 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, operadores de comparação como = ou >, bem como comandos e operadores como o SQL LIKE. Para limitar ou ampliar o procedimento de exclusão a múltiplas condições, também podem ser utilizados os operadores lógicos AND e OR.