Operadores Exists y Not Exists
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 necesitan que la subconsulta devuelva alguna columna especifica porque no utiliza 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.
Puede emplearse 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 con el operador EXISTS es que la cláusula WHERE en la que se utiliza 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]).
operadores exists not exists