🙏 Realmente necesitamos su apoyo. Necesitamos financiamiento para continuar nuestra misión: publicar nuevas lecciones y mejorar la plataforma. Si puede, por favor apoye el proyecto con una donación. Ayude al proyecto ahora →
Código SQL copiado al portapapeles

Lección 2.6: Limitando Resultados con LIMIT y OFFSET

Al trabajar con tablas grandes, a menudo no deseas recuperar cada fila. A veces solo necesitas los primeros registros, o quieres implementar "paginación" (mostrando resultados en la Página 1, Página 2, etc.). Para estas tareas, utilizamos las cláusulas LIMIT y OFFSET.

La Cláusula LIMIT

La cláusula LIMIT se utiliza para especificar el número máximo de filas que la consulta debe devolver.

Sintaxis

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count;
  • count: El número máximo de filas a devolver.

Nota: Se recomienda encarecidamente usar LIMIT junto con ORDER BY. Sin ordenamiento, las "primeras X filas" podrían ser cualquier fila, dependiendo de cómo el motor de base de datos optimiza la consulta.

La Cláusula OFFSET

La cláusula OFFSET le indica a la base de datos que omita un número específico de filas antes de comenzar a devolver los resultados.

Sintaxis

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count OFFSET skip;
  • skip: El número de filas a omitir antes de comenzar a devolver filas.

Paginación: Combinando LIMIT y OFFSET

La paginación es el proceso de dividir un conjunto de resultados grande en páginas discretas. Este es el caso de uso más común para combinar LIMIT y OFFSET.

  • Página 1: LIMIT 10 OFFSET 0 (Filas 1-10)
  • Página 2: LIMIT 10 OFFSET 10 (Filas 11-20)
  • Página 3: LIMIT 10 OFFSET 20 (Filas 21-30)

Ejemplos

Ejemplo 1: Los 5 Filmes Más Largos

Esta consulta encuentra los 5 filmes más largos en la tabla film.

SELECT title, length
FROM film
ORDER BY length DESC
LIMIT 5;

Ejemplo 2: Omitiendo Registros

Esta consulta omite los primeros 10 actores (ordenados por ID) y devuelve los siguientes 5.

SELECT actor_id, first_name, last_name
FROM actor
ORDER BY actor_id
LIMIT 5 OFFSET 10;

Conclusiones Clave de esta Lección:

  • LIMIT restringe el número de filas en el conjunto de resultados.
  • OFFSET omite un número especificado de filas antes de devolver datos.
  • Combinar LIMIT y OFFSET es la forma estándar de implementar paginación.
  • Siempre usa ORDER BY con estas cláusulas para asegurar resultados predecibles. Resultados verdaderamente predecibles están garantizados solo cuando se ordena por valores únicos (o por una combinación de columnas que define un orden único).

En la próxima lección, veremos cómo combinar WHERE, ORDER BY y LIMIT para construir consultas poderosas y precisas.