EXISTS en SQL

El operador EXISTS en SQL comprueba si una subconsulta devuelve al menos una fila . Si la subconsulta tiene resultados, la condición es verdadera; si no, falsa.

EXISTS en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

Suele usarse en el WHERE de la consulta principal. La subconsulta puede referenciar columnas de la consulta exterior (subconsulta correlacionada).


Sintaxis EXISTS en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

    SELECT columna(s)
FROM tabla_exterior
WHERE EXISTS (
  SELECT 1
  FROM otra_tabla
  WHERE condicion_de_relacion
);
  

Ejemplo EXISTS en SQL

Lista clientes para los que existe al menos un registro en Pedidos :

Clientes que han pedido

    SELECT Nombre_Cliente
FROM Clientes c
WHERE EXISTS (
  SELECT 1 FROM Pedidos p
  WHERE p.ID_Cliente = c.ID_Cliente
)
ORDER BY Nombre_Cliente;
  
Abrir en editor

Resultado: cinco clientes con al menos un pedido (equivalente a un INNER JOIN distinto, pero EXISTS solo comprueba existencia).


Tablas demo para EXISTS

Tabla Pedidos (demo)

Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.

ID_Pedido ID_Cliente ID_Empleado Fecha
1112024-01-15
2322024-01-18
3512024-02-02
4232024-02-10
5642024-02-14
Tabla Pedidos en el editor SQL. Cinco pedidos enlazan clientes y empleados.
ID_Cliente Nombre_Cliente Ciudad Pais
1Ana GarcíaMadridEspaña
2Luis PérezBarcelonaEspaña
3María LópezValenciaEspaña
4Carlos RuizMadridEspaña
6John SmithLondonUK
… 5 clientes más en la demo (10 en total)
Tabla Clientes (extracto). Diez clientes; cinco tienen pedidos.

Tabla Proveedores (demo)

ID_Proveedor Nombre Ciudad Pais
1Alimentos IbéricaMadridEspaña
2Delicias del MarVigoEspaña
3Granos del ValleZaragozaEspaña
4Lácteos PremiumLugoEspaña
5Frutas del SurMálagaEspaña
6Import Foods LtdLondonUK
Tabla Proveedores en el editor SQL. Comparte ciudades con Clientes (Madrid, London…).

EXISTS correlacionado en SQL

Países que tienen tanto clientes como proveedores en la demo:

Países compartidos

    SELECT DISTINCT Pais
FROM Clientes c
WHERE EXISTS (
  SELECT 1 FROM Proveedores p
  WHERE p.Pais = c.Pais
)
ORDER BY Pais;
  
Abrir en editor

EXISTS con Empleados y Pedidos

Empleados con pedidos asignados

    SELECT Nombre, Apellido
FROM Empleados e
WHERE EXISTS (
  SELECT 1 FROM Pedidos p
  WHERE p.ID_Empleado = e.ID_Empleado
)
ORDER BY Nombre;
  
Abrir en editor

Resumen EXISTS

  • EXISTS devuelve verdadero si la subconsulta encuentra filas.
  • No importa cuántas filas devuelva la subconsulta: basta con una.
  • Útil para filtrar por relación sin duplicar filas del exterior.
  • Relacionado: IN y ANY / ALL .

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.