Un solo filtro con WHERE muchas veces no es suficiente. Quizás necesitas empleados que sean desarrolladores y que además ganen más de 3000. O quizás clientes de Chile o Argentina. Para combinar condiciones, SQL tiene los operadores lógicos AND, OR y NOT.
¿Para qué sirven?
AND— ambas condiciones deben cumplirseOR— basta con que se cumpla una de las dosNOT— invierte la condición (filtra los que no cumplen)
Se usan dentro de la cláusula WHERE, encadenando condiciones.
Sintaxis
SELECT columnas
FROM tabla
WHERE condicion1 AND condicion2;
SELECT columnas
FROM tabla
WHERE condicion1 OR condicion2;
SELECT columnas
FROM tabla
WHERE NOT condicion;
Ejemplo 1: AND — todas las condiciones deben cumplirse
Quieres ver los empleados que son desarrolladores y ganan más de 3000:
SELECT nombre, cargo, salario
FROM empleados
WHERE cargo = 'Desarrollador' AND salario > 3000;
| nombre | cargo | salario |
|---|---|---|
| Luis Pérez | Desarrollador | 3200 |
Ana García también es desarrolladora pero gana 3000 (no más de 3000), por eso no aparece.
Ejemplo 2: OR — basta con cumplir una condición
Quieres ver los empleados que son desarrolladores o diseñadores:
SELECT nombre, cargo
FROM empleados
WHERE cargo = 'Desarrollador' OR cargo = 'Diseñador';
| nombre | cargo |
|---|---|
| Ana García | Desarrollador |
| Luis Pérez | Desarrollador |
| Carlos López | Diseñador |
Ejemplo 3: NOT — excluir registros
Quieres ver todos los empleados que no son gerentes:
SELECT nombre, cargo
FROM empleados
WHERE NOT cargo = 'Gerente';
Esto es equivalente a escribir WHERE cargo != 'Gerente', pero NOT se puede aplicar a condiciones más complejas.
Combinar AND y OR
Puedes combinar ambos en la misma consulta, pero usa paréntesis para dejar claro el orden de evaluación:
SELECT nombre, cargo, salario
FROM empleados
WHERE (cargo = 'Desarrollador' OR cargo = 'Diseñador') AND salario > 2900;
Sin paréntesis, AND tiene precedencia sobre OR y la consulta puede comportarse diferente a lo esperado.
Errores frecuentes
No usar paréntesis al combinar AND y OR: A OR B AND C se evalúa como A OR (B AND C), no como (A OR B) AND C. Los paréntesis son obligatorios cuando mezclas ambos operadores.
Repetir el nombre de la columna en cada condición: Debes escribir cargo = 'X' OR cargo = 'Y', no cargo = 'X' OR 'Y'. Cada condición es completa e independiente.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de SQL y recibes corrección inmediata de IA.
Comenzar gratis →