NOT es uno de los ope­ra­do­res lógicos de SQL y permite filtrar de forma precisa y eficaz re­su­l­ta­dos de búsquedas mediante el pro­ce­di­mie­n­to de exclusión. Al utilizar el operador NOT para excluir datos que cumplen de­te­r­mi­na­das co­n­di­cio­nes, los re­su­l­ta­dos se limitan a la in­fo­r­ma­ción relevante.

¿Qué es el operador SQL NOT?

SQL NOT, junto con SQL AND y SQL OR, es uno de los ope­ra­do­res de SQL lógicos con los que puedes formular co­n­di­cio­nes y criterios al realizar consultas de datos. Mientras que los ope­ra­do­res AND y OR filtran conjuntos de datos que cumplen todas o al menos una de las co­n­di­cio­nes es­pe­ci­fi­ca­das, el operador NOT se basa en el pro­ce­di­mie­n­to de exclusión, pues excluye en tu resultado toda la in­fo­r­ma­ción en los registros se­le­c­cio­na­dos que no cumpla una condición de­te­r­mi­na­da.

El operador SQL NOT suele uti­li­zar­se en co­m­bi­na­ción con SQL SELECT, SQL WHERE y SQL HAVING. Para hacer una búsqueda lo más precisa posible, también puedes combinar el operador NOT con los ope­ra­do­res AND y OR. De esta manera, puedes filtrar los re­su­l­ta­dos irre­le­va­n­tes que no cumplen las co­n­di­cio­nes es­pe­cí­fi­cas (AND) o que no cumplen al menos una de las co­n­di­cio­nes me­n­cio­na­das (OR).

Di­fe­re­n­cia entre SQL NOT, AND y OR

A co­n­ti­nua­ción, te ex­pli­ca­mos las di­fe­re­n­cias clave entre los ope­ra­do­res NOT, AND y OR:

SQL NOT SQL AND SQL OR
Solo devuelve conjuntos de datos que no cumplen una condición definida Devuelve conjuntos de datos que cumplen todos los criterios de búsqueda pre­de­fi­ni­dos Devuelve toda la in­fo­r­ma­ción que cumple al menos una de las co­n­di­cio­nes definidas
Niega una condición irre­le­va­n­te para la búsqueda Combina co­n­di­cio­nes para limitar la búsqueda a in­fo­r­ma­ción que cumpla varios criterios de búsqueda Amplía los re­su­l­ta­dos de búsqueda a datos que cumplan uno de varios criterios
Consejo

¿Te gustaría saber lo básico sobre SQL para poder comenzar a trabajar con este lenguaje de pro­gra­ma­ción? En ese caso, no dudes en consultar los ejemplos de nuestra in­tro­du­c­ción a SQL.

La sintaxis del operador NOT

La sintaxis simple de NOT tiene este aspecto:

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

Se utilizan estos pa­rá­me­tros:

  • SELECT: se­le­c­cio­na las columnas que son re­le­va­n­tes para tu búsqueda. Al utilizar un asterisco *, puedes buscar en toda la tabla se­le­c­cio­na­da, incluidas todas las columnas asociadas. También puedes es­pe­ci­fi­car columnas in­di­vi­dua­les con su re­s­pe­c­ti­va clave primaria o foránea.
  • FROM: define la tabla que quieres buscar.
  • WHERE: define co­n­di­cio­nes mediante ope­ra­do­res como SQL NOT para limitar la consulta.
  • NOT: en co­m­bi­na­ción con WHERE, establece la negación de una condición que los re­su­l­ta­dos de la búsqueda no deben cumplir.

Para precisar la consulta, puedes combinar con AND o OR.

SQL NOT combinado con AND

Al co­m­bi­nar­lo con AND, se devuelven los registros que no cumplan ambas co­n­di­cio­nes.

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

SQL NOT combinado con OR

Al co­m­bi­nar­lo con OR, se obtienen re­su­l­ta­dos que excluyen los registros que cumplen al menos una de las co­n­di­cio­nes.

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

Posibles usos del operador NOT

Las po­si­bi­li­da­des de uso de NOT al realizar consultas y búsquedas son casi ili­mi­ta­das. Por ejemplo, puedes hacer lo siguiente:

  • excluir datos de clientes, pedidos o productos según región, año, categoría, precio o ca­ra­c­te­rí­s­ti­cas;
  • ignorar registros que tengan valores inválidos o a los que les falten valores;
  • filtrar datos fi­na­n­cie­ros que no cumplan con ciertos criterios de tra­n­sac­ción;
  • excluir datos de empleados que no pe­r­te­ne­z­can a un de­pa­r­ta­me­n­to es­pe­cí­fi­co;
  • filtrar a ca­n­di­da­tos que no tengan una cua­li­fi­ca­ción de­te­r­mi­na­da.

Ejemplos de uso del operador SQL NOT

La búsqueda con el operador NOT puede variar eno­r­me­me­n­te de­pe­n­die­n­do de cómo definas la condición con la cláusula WHERE, el operador NOT y otros ope­ra­do­res op­cio­na­les. Te lo mostramos en tres ejemplos de apli­ca­ción.

Exclusión de empleados por región

Imagina que en la tabla “Empleados” quieres mostrar solo in­fo­r­ma­ción sobre empleados que no viven en Estados Unidos. Para ello, es­ta­ble­ces la condición usando la columna “país”, la cláusula WHERE, el operador NOT y el operador de co­m­pa­ra­ción = de la siguiente manera:

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

De forma similar, si en una tabla de productos quieres mostrar úni­ca­me­n­te productos que ya no están en stock, debes proceder de esta forma:

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

Filtrar grupos de clientes

Imagina que tienes la tabla “Clientes” y debes buscar un grupo de clientes de­te­r­mi­na­do que no cumpla co­n­di­cio­nes pre­de­fi­ni­das. En este ejemplo, no se debe tener menos de 30 años ni vivir en Nueva York, por lo que, además de NOT, también se utilizan ope­ra­do­res de co­m­pa­ra­ción y el operador AND.

SELECT  *
FROM  clientes
WHERE  NOT  (edad  <  30  AND  ciudad  =  'Nueva York')
sql

Filtrar cua­li­fi­ca­cio­nes que faltan en una ca­n­di­da­tu­ra

Imagina que tienes la tabla “Ca­n­di­da­tos” y necesitas excluir los re­su­l­ta­dos que no cumplan cua­li­fi­ca­cio­nes es­pe­cí­fi­cas como “grado” o “ex­pe­rie­n­cia”. La búsqueda quedaría así:

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

Al­te­r­na­ti­vas a SQL NOT

El operador NOT se ca­ra­c­te­ri­za por negar criterios de búsqueda y no existe una al­te­r­na­ti­va que cuente con esa misma función. Sin embargo, SQL NOT es versátil y se puede combinar para realizar consultas precisas con varios comandos SQL. Algunos de ellos son SQL JOIN o funciones de agre­ga­ción de SQL HAVING como SQL SUM o AVG, ope­ra­do­res de co­m­pa­ra­ción como = o >, así como comandos y ope­ra­do­res como SQL LIKE. Para limitar o ampliar el pro­ce­di­mie­n­to de exclusión a múltiples co­n­di­cio­nes, también pueden emplearse los ope­ra­do­res lógicos AND y OR.

Ir al menú principal