Al terminar esta lección podrás
- Elegir entre varios filtros.
- Combinar condiciones sin ambigüedad.
- Justificar por qué una fila aparece o desaparece.
Antes de empezar: WHERE, comparadores, AND/OR/NOT, BETWEEN, IN, LIKE y NULL. Explica en una frase qué recuerdas antes de continuar.
La idea, sin código
En una consulta real, la dificultad no suele ser recordar una palabra, sino elegir la herramienta que expresa mejor la condición. Esta práctica obliga a decidir antes de escribir.
Pregunta guía: ¿qué representa cada fila antes y después de aplicar este concepto?
Sintaxis mínima
-- 1. Identifica la condición
-- 2. Elige el operador
-- 3. Predice las filas
-- 4. Escribe la consultaPrimer ejemplo guiado
| id | nombre | ciudad | |
|---|---|---|---|
| 1 | Ana | Madrid | ana@ejemplo.es |
| 2 | Luis | Valencia | luis@ejemplo.es |
| 3 | Marta | Madrid | NULL |
| 4 | Omar | Sevilla | omar@ejemplo.es |
| 5 | Nora | Bilbao | nora@ejemplo.es |
Analiza la consulta antes de comprobar el resultado:
SELECT nombre, ciudad
FROM clientes
WHERE ciudad IN ('Madrid', 'Bilbao')
AND email IS NOT NULL;| nombre | ciudad |
|---|---|
| Ana | Madrid |
| Nora | Bilbao |
Qué ocurre paso a paso
- IN resuelve la lista de ciudades.
- IS NOT NULL exige un email conocido.
- AND obliga a cumplir ambos criterios.
Error frecuente
Consulta o razonamiento problemático
WHERE ciudad = 'Madrid' OR 'Bilbao' AND email <> NULLLa segunda ciudad necesita una condición completa y NULL debe comprobarse con IS NOT NULL. Los paréntesis ayudan a expresar la intención.
Práctica guiada
Resuelve una sola dificultad cada vez
Muestra productos de Accesorios o Pantallas, con stock entre 1 y 10.
Solución razonada
SELECT nombre, categoria, stock FROM productos WHERE categoria IN ('Accesorios', 'Pantallas') AND stock BETWEEN 1 AND 10;La consulta combina una lista y un rango. El Ratón queda fuera por tener stock 0 y el Teclado por superar 10.
Comprueba: identifica qué parte recupera, filtra, transforma, relaciona o modifica los datos.
Ahora sin guía
Transfiere lo aprendido
Busca clientes cuyo nombre contenga 'a', vivan en Madrid o Bilbao y tengan email conocido.
Comparar con una solución posible
SELECT nombre, ciudad
FROM clientes
WHERE nombre LIKE '%a%'
AND ciudad IN ('Madrid', 'Bilbao')
AND email IS NOT NULL;Puede existir otra solución válida. Comprueba que produce el resultado pedido y que puedes explicar cada cláusula.
Resumen para llevarte
- Elige el operador a partir de la intención.
- Los paréntesis y las condiciones completas evitan ambigüedad.
- Predecir el resultado descubre errores lógicos.
Siguiente paso: Continúa con Ordenar y limitar resultados.