> lección 4/18 · 14 min

Búsqueda, orden y límites

Concepto

Con WHERE ya puedes filtrar. Esta lección suma cuatro herramientas que se usan todos los días: comparar contra una lista, buscar texto parecido, ordenar el resultado y quedarte con los primeros.

Sintaxis
SELECT columnas
FROM tabla
WHERE columna IN (valor1, valor2)
ORDER BY columna
LIMIT n;

IN: una lista de valores. Reemplaza varios OR sobre la misma columna.

SELECT titulo, nivel FROM cursos WHERE nivel IN ('Básico', 'Avanzado');

LIKE: buscar un patrón. % significa "cualquier texto, incluso ninguno". '%SQL%' encuentra títulos que contengan SQL en cualquier parte; 'R%', los que empiezan con R. En este editor LIKE no distingue mayúsculas; en PostgreSQL sí, y ahí se usa ILIKE para ignorarlas.

SELECT titulo FROM cursos WHERE titulo LIKE '%SQL%';

ORDER BY: ordenar. ASC (de menor a mayor, el valor por defecto) o DESC (de mayor a menor). Los textos se ordenan alfabéticamente. Sin ORDER BY, la base no garantiza ningún orden.

SELECT titulo, horas FROM cursos ORDER BY horas DESC;

LIMIT: los primeros n. Recorta el resultado después de ordenarlo. Juntos responden preguntas como "los 3 cursos más largos".

SELECT titulo, horas FROM cursos ORDER BY horas DESC LIMIT 3;

El orden de las cláusulas. SELECT, FROM, WHERE, ORDER BY y LIMIT, siempre en ese orden.

> tarea SQL

Para una reunión presencial caben 5 personas. Lista, en orden alfabético por nombre, a los primeros 5 estudiantes que viven en Santiago o en Concepción. Muestra nombre y ciudad.

Tablas disponibles
  • cursos: id, titulo, nivel, horas
  • estudiantes: id, nombre, correo, edad, ciudad
  • inscripciones: id, estudiante_id, curso_id, nota, estado

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.