Al terminar, podrás
- Traducir una condición escrita a operadores SQL.
- Agrupar correctamente combinaciones de
ANDyOR. - Explicar por qué cada fila entra o queda fuera.
Recupera lo aprendido: Sin mirar las notas, elige un operador para una lista, un rango, un patrón y un valor ausente.
La idea clave
Filtrar bien consiste en separar la pregunta en condiciones pequeñas, escoger el operador de cada una y decidir cómo se combinan. Predice primero una fila que debe entrar y otra que debe quedar fuera.
Método de cuatro pasos: columna → operador → valor o patrón → conexión lógica.
Mapa de decisión
- Lista cerrada:
IN (...). - Intervalo inclusivo:
BETWEEN minimo AND maximo. - Patrón de texto:
LIKE. - Ausencia de valor:
IS NULL. - Varias condiciones obligatorias:
AND; alternativas:OR.
Ejemplo paso a paso
Buscamos clientes activos de Madrid o Bilbao que tengan un correo conocido.
SELECT nombre, ciudad
FROM clientes
WHERE activo = 1
AND ciudad IN ('Madrid', 'Bilbao')
AND email IS NOT NULL
ORDER BY nombre;| nombre | ciudad |
|---|---|
| Ana Torres | Madrid |
| Lucía Vega | Bilbao |
| Marta Ruiz | Madrid |
| Noa Vidal | Madrid |
Cómo se decide
activo = 1descarta a Pablo Sanz.INexpresa las dos ciudades sin repetir la columna.IS NOT NULLdescarta a Diego López aunque vive en Bilbao.
Un error habitual
Dejar que la prioridad cambie la pregunta
SELECT nombre, categoria, stock
FROM productos
WHERE categoria = 'Accesorios'
OR categoria = 'Pantallas' AND stock > 0;AND se evalúa antes que OR. Así, todos los accesorios entrarían aunque su stock fuera cero. Usa IN o paréntesis para que el stock se exija a ambas categorías.
Practica con datos
Laboratorio SQL
Resuelve la consulta
Escribe una consulta que devuelva nombre, categoría y stock de Accesorios o Pantallas cuyo stock esté entre 1 y 10.
Resultado esperado: 3 filas con nombre, categoria, stock. El orden de las filas no importa.
Ver tablas y datos
Cargando la estructura del ejercicio…
Resuelve las categorías con IN.
Resuelve el stock con BETWEEN.
Une ambos filtros con AND.
Solución
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.
Puedes consultar la solución y volver a intentarlo. La práctica se completa cuando tu consulta funciona.
La consulta usa datos ficticios y se ejecuta solo en este navegador.
Ronda autónoma
1. Correos desconocidos fuera de Madrid
Devuelve nombre y ciudad de clientes cuyo correo sea desconocido y cuya ciudad no sea Madrid.
Ver la solución
SELECT nombre, ciudad
FROM clientes
WHERE email IS NULL
AND ciudad <> 'Madrid'
ORDER BY nombre;Devuelve Diego López y Mario Gil. Pablo Sanz queda fuera por vivir en Madrid.
2. Productos de pantalla o sin stock
Devuelve nombre, categoría y stock de productos cuya categoría sea Pantallas o cuyo stock sea cero. Ordena por nombre.
Ver la solución
SELECT nombre, categoria, stock
FROM productos
WHERE categoria = 'Pantallas'
OR stock = 0
ORDER BY nombre;La consulta devuelve Altavoz, Monitor 24, Monitor 27 y Portátil Pro.
Fuentes técnicas consultadas
Estas fuentes oficiales respaldan la sintaxis y los matices señalados en la lección.
- PostgreSQL: funciones y operadores de comparación
- PostgreSQL: coincidencia de patrones
- SQLite: expresiones
Comprueba si puedes explicarlo
En la práctica, ¿un accesorio con stock 0 debe aparecer? ¿Y uno con stock 10?
Ver respuesta razonada
El de stock 0 queda fuera; el de stock 10 entra. Primero exige la categoría adecuada y después el rango inclusivo de 1 a 10. Teclado, Monitor 24 y Monitor 27 cumplen ambas condiciones.
Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.
Qué debes recordar
- Divide la pregunta antes de escribir SQL.
- Usa
IN,BETWEEN,LIKEyIS NULLsegún la intención. - Haz explícita la agrupación lógica cuando combines
ANDyOR.
A continuación: continúa con ordenación y límites.