Grupo familiar [1]: vocabulario esencial sobre la familia - oracle sql
Los operadores EXISTS y NOT EXISTS:
Su principal función es ver si se cumple o no la consulta interna.
Se emplean para determinar si hay o no datos en una lista de valores.
Devuelve true o false.
No requieren que la subconsulta retorne una columna en particular, ya que no emplean ninguna expresión de comparación.
Operador EXISTS:
Devuelve true o false. True: si las subconsultas retornan registros. False: si las subconsultas no retornan registros.
podemos emplear con subconsultas correlacionadas para restringir el resultado de una consulta exterior a los registros que cumplen la consulta interior. Ejemplo: SELECT * FROM employees e WHERE EXISTS [ SELECT * FROM departments d WHERE d.department_name = "marketing "].
Operador EXISTS en una consulta correlacional: El uso de EXISTS en una subconsulta correlacional es igual al uso del operador IN Ejemplo: SELECT * FROM employees e WHERE EXISTS [ SELECT * FROM departments d WHERE d.department_name = "marketing " and e.department_id = d.department_id ].
Operados NOT EXISTS:
La diferencia que existe con el operador EXISTS es que la cláusula WHERE en la que se usa se cumple si la consulta interna no devuelve ninguna fila como resultado.
Devuelve true o false.
True: si las subconsultas no retornan registros.
False: si las subconsultas retornan registros. Ejemplo: SELECT * FROM employees e WHERE NOT EXISTS [ SELECT * FROM departments d WHERE d.department_name = "Marketing "].