Objetivo

Al finalizar esta lección podrás:

  • Buscar texto con patrones usando LIKE.
  • Filtrar por una lista de valores usando IN.
  • Filtrar rangos numéricos o fechas usando BETWEEN.
  • Elegir la opción correcta según el problema.

Explicación

1) LIKE (buscar por patrón)

LIKE se usa cuando quieres buscar texto que: empieza con, termina con o contiene algo.

El comodín más usado es %:

  • 'A%' = empieza con A
  • '%a' = termina con a
  • '%mo%' = contiene “mo”
SELECT nombre
FROM productos
WHERE nombre LIKE 'Cuaderno%';

2) IN (lista de valores)

IN se usa cuando quieres filtrar por varios valores sin escribir muchos OR.

SELECT nombre, ciudad
FROM clientes
WHERE ciudad IN ('Quito', 'Guayaquil');

3) BETWEEN (rango)

BETWEEN se usa para rangos. Normalmente incluye ambos extremos.

SELECT nombre, precio
FROM productos
WHERE precio BETWEEN 1 AND 5;

Nota: BETWEEN suele incluir el valor mínimo y el máximo.

Conceptos clave

  • LIKE: patrón de texto (usa %).
  • IN: pertenece a una lista de valores.
  • BETWEEN: está dentro de un rango (incluye extremos en la mayoría de casos).
  • Recomendación: usa IN en lugar de muchos OR para mayor claridad.

Ejemplos (con tu dataset)

LIKE: productos que contienen una palabra

Buscar productos que contengan “Cuaderno”.

SELECT nombre, categoria
FROM productos
WHERE nombre LIKE '%Cuaderno%';

LIKE: productos que empiezan con una palabra

SELECT nombre
FROM productos
WHERE nombre LIKE 'Cuaderno%';

IN: clientes de varias ciudades

SELECT nombre, ciudad
FROM clientes
WHERE ciudad IN ('Quito', 'Guayaquil');

IN: productos de varias categorías

SELECT nombre, categoria
FROM productos
WHERE categoria IN ('Papelería', 'Accesorio');

BETWEEN: rango de precios

SELECT nombre, precio
FROM productos
WHERE precio BETWEEN 1 AND 5;

BETWEEN: rango de stock

SELECT nombre, stock
FROM productos
WHERE stock BETWEEN 30 AND 100;

Ejercicios propuestos (con solución explicada)

Primero intenta resolver. Luego abre la solución.

Ejercicio 1 (LIKE)

Lista productos cuyo nombre contenga la palabra 'Cuaderno'.

Ver solución
SELECT nombre, precio
FROM productos
WHERE nombre LIKE '%Cuaderno%';

Explicación: % permite que haya texto antes y después de “Cuaderno”.

Ejercicio 2 (LIKE)

Lista productos cuyo nombre empiece con 'C'.

Ver solución
SELECT nombre
FROM productos
WHERE nombre LIKE 'C%';

Explicación: 'C%' significa “empieza con C”.

Ejercicio 3 (IN)

Lista clientes que sean de Quito, Guayaquil o Cuenca (en una sola consulta).

Ver solución
SELECT nombre, ciudad
FROM clientes
WHERE ciudad IN ('Quito', 'Guayaquil', 'Cuenca');

Explicación: IN evita escribir varios OR.

Ejercicio 4 (IN)

Lista productos que pertenezcan a Papelería o Electrónica.

Ver solución
SELECT nombre, categoria
FROM productos
WHERE categoria IN ('Papelería', 'Electrónica');

Explicación: filtra por categorías específicas usando IN.

Ejercicio 5 (BETWEEN)

Lista productos cuyo precio esté entre 1 y 10 (incluyendo 1 y 10).

Ver solución
SELECT nombre, precio
FROM productos
WHERE precio BETWEEN 1 AND 10;

Explicación: BETWEEN funciona como rango; normalmente incluye extremos.

Ejercicio 6 (BETWEEN)

Lista productos con stock entre 20 y 80.

Ver solución
SELECT nombre, stock
FROM productos
WHERE stock BETWEEN 20 AND 80;

Explicación: útil para rangos de existencia.

Ejercicio 7 (Integrador)

Lista productos de Papelería cuyo precio esté entre 1 y 3, ordenados por precio (menor→mayor).

Ver solución
SELECT nombre, categoria, precio
FROM productos
WHERE categoria = 'Papelería'
  AND precio BETWEEN 1 AND 3
ORDER BY precio ASC;

Explicación: combinas WHERE + BETWEEN + ORDER BY.

Errores comunes

  • ❌ Usar = para “contiene” — ✅ para contiene usa LIKE '%texto%'.
  • ❌ Escribir IN (Quito, Guayaquil) sin comillas — ✅ texto siempre con comillas.
  • ❌ Confundir BETWEEN — ✅ se escribe: BETWEEN min AND max.