SQL NOT EXISTS: Operador de subConsulta

Probablemente encontrará que el operador SQL NOT EXISTS es bastante simple una vez que se acostumbre a formatear una subconsulta EXISTS. Cuando usa  NO EXISTES, las consultas devolverán todos los documentos que no coincidan con la subconsulta «existe» dada.

NOT EXISTS se usa en la cláusula WHERE con una subconsulta para ver si el resultado de la subconsulta es VERDADERO o FALSO. Las filas de la declaración de selección externa se reducen posteriormente utilizando el valor booleano.

Para decirlo de otra manera, la subconsulta NOT EXISTS verifica cada entrada de la consulta externa, devuelve VERDADERO o FALSO y luego pasa el valor a la consulta externa para que lo use. En lenguaje sencillo, SQL NOT EXISTS devuelve todas las entradas que no cumplen la condición EXISTS

SQL NOT EXISTS sintaxis

La forma más fácil de entender el operador SQL not exists es ver cómo se usa para seleccionar distintos datos en toda la base de datos.

SELECT nom_columna1 
FROM tabla1 
WHERE  NOT EXISTS (  SELECT nom_columna2  FROM tabla2    
 WHERE Condición )
  • Columnas: Nos permite elegir el número de columnas de las tablas. Puede ser Uno o más.
  • tablas: La fuente de los datos. 
  • Subconsulta: Aquí tenemos que proporcionar la Subconsulta. Si la subconsulta devuelve verdadero, devolverá los registros; de lo contrario, no retorna los datos solicitado en la consulta.

En este artículo, le mostraremos cómo usar el operador SQL Server NOT EXISTS con ejemplos. Para esto, vamos a utilizar los datos que se muestran a continuación.

Directrices de rendimiento con SQL NOT EXIST Operator

  • La mayoría de los DBA prefieren usar la cláusula NOT EXISTS en vez de NOT IN.
  • Cuando SQL incluye una cláusula NOT IN, generalmente se usa una subconsulta. 
  • En muchos casos, NOT IN producirá el mismo plan de ejecución que una consulta NOT EXISTS o una consulta diferente (!=).
  • En algunos casos, una subconsulta NOT EXISTS correlacionada se puede volver a escribir con una combinación externa estándar con una prueba NOT NULL.
  • Algunas subconsultas NOT EXISTS se pueden ajustar usando el operador MINUS para ajustar NOT EXISTS.

Ejemplo operador SQL NOT EXISTS

Si Tenemos una base de datos de cliente que incluye una lista de clientes. También tenemos otra tabla que incluye pedidos. Usamos el siguiente SQL:

SELECT nombre
FROM Cliente
WHERE Not EXISTS (SELECT clienteid FROM pedidos where clienteid=0)

sql not exists

Con esta consulta Puede visualizar todos los clientes que están en la tabla pedidos, ya que no se cumple la condición de la subconsulta.

 SQL NOT EXISTS consta de dos partes:

  • La consulta principal, que es «select nombre from clientes  where».
  • La consulta secundaria, que es («select clienteID  from pedidos»)

El operador SQL NOT EXISTS va después de la condición «WHERE».

El experto en SQL notará que, en términos de recursos, este suele ser un trabajo intensivo en recursos. La consulta no solo necesita ver qué se vuelve verdadero y falso (qué filas no existen), sino que esencialmente está creando una combinación. Una combinación, ya sea izquierda, externa o interna.

De hecho, ha descubierto la razón por la que usamos EXISTS y NOT EXIST. Es menos intensivo en recursos que realizar sql join, uniones regulares. Debido a que primero verifica si el registro existe, no realiza una combinación externa completa ni una combinación interna completa.

Entonces, usamos EXISTS y NOT EXISTS para mayor claridad y cuando queremos preservar los recursos del sistema. Esto es increíblemente importante para las aplicaciones que necesitan poder escalar.

Nota:

A diferencia de EXISTS, el operador SQL NOT EXISTS devuelve TRUE si el resultado de la subconsulta no contiene filas. En caso de que un solo registro en una tabla coincida con la subconsulta, NOT EXISTS devuelve FALSO y se detiene la ejecución de la subconsulta. En lenguaje sencillo, NOT EXISTS permite localizar registros que no coinciden con la subconsulta.

Deja un comentario