¿Cómo limitar la cantidad de filas que devuelve una consulta? Si solo necesitas los primeros 5 estudiantes, el empleado con el salario más alto o una lista del top-10 de productos, ¡el comando LIMIT es justo lo que necesitas!
Cuando trabajas con bases de datos, los resultados de una consulta pueden ser enormes. En estas situaciones, necesitas limitar la cantidad de datos devueltos para:
- Reducir la carga en el servidor y la red.
- Analizar los datos más fácilmente sin tener que hacer scroll por páginas infinitas.
Aquí va una analogía sencilla: imagina que querías invitar a una chica en un bar, pero accidentalmente pagaste la bebida de todos los clientes. Sin duda, es impresionante, pero ¿para qué necesitas tantas chicas? Así que aprendemos a pedir solo lo que necesitamos, y LIMIT nos ayuda con eso.
Sintaxis básica de LIMIT
Así es como se ve todo:
SELECT columna1, columna2
FROM tabla
LIMIT cantidad_de_filas;
Ejemplo 1: Limitando registros
Supongamos que tenemos una tabla students con 1000 filas. Queremos ver solo los primeros 3 registros:
SELECT *
FROM students
LIMIT 3;
Resultado:
| id | name | age |
|---|---|---|
| 1 | Otto | 20 |
| 2 | Anna | 22 |
| 3 | Alex | 19 |
Fácil: en vez de una lista larguísima, solo vemos tres filas. LIMIT devolvió justo la cantidad que pedimos.
Aplicaciones prácticas de LIMIT
Ejemplo 2: Top productos
Estás trabajando con la tabla de productos products y quieres saber los nombres y precios de los cinco productos más caros. Primero ordenamos por precio descendente y luego limitamos el resultado:
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
Resultado:
| product_name | price |
|---|---|
| iPhone 16 Pro Max | 1500 |
| MacBook Pro | 1200 |
| AirPods Pro | 300 |
| iPad Pro | 280 |
| Apple Watch | 250 |
Ahora solo ves el top-5 de productos con el precio más alto.
¿Cómo LIMIT ayuda a probar consultas?
Cuando desarrollas consultas SQL seguro te encuentras con grandes volúmenes de datos. LIMIT te ayuda a comprobar primero si la consulta es correcta, devolviendo solo una pequeña parte de los datos. Por ejemplo:
SELECT *
FROM transactions_log
LIMIT 10;
Cuando ya estés seguro de que la lógica de la consulta es correcta, puedes quitar el LIMIT.
Particularidades del uso de LIMIT
1. LIMIT sin ORDER BY
Si no pones una ordenación ORDER BY, LIMIT devolverá los datos en orden aleatorio — bueno, en el orden en que están guardados en la tabla. Normalmente no es un problema, pero a veces puede ser impredecible.
Por ejemplo:
SELECT name, age
FROM students
LIMIT 3;
Sin ORDER BY no puedes estar seguro de qué tres registros aparecerán en el resultado.
Para evitarlo, usa ORDER BY:
SELECT name, age
FROM students
ORDER BY age DESC
LIMIT 3;
2. Uso combinado con WHERE
Podemos combinar WHERE para filtrar filas y LIMIT para limitar el resultado. Es útil cuando hay demasiados datos y solo te interesan las primeras coincidencias.
SELECT *
FROM students
WHERE age > 18
LIMIT 5;
Esta consulta devuelve los primeros 5 estudiantes mayores de 18 años.
3. Aplicación práctica: ver la primera página de datos
Si trabajas con un sistema que muestra datos (por ejemplo, una app web), puedes usar LIMIT para mostrar la primera página de datos.
SELECT *
FROM employees
ORDER BY hire_date
LIMIT 10;
Aquí obtienes los primeros 10 empleados, ordenados por fecha de contratación.
Ejemplo avanzado: Combinando LIMIT con agregados
Imagina que quieres mostrar las tres categorías de productos más populares:
SELECT category, COUNT(*) AS total_products
FROM products
GROUP BY category
ORDER BY total_products DESC
LIMIT 3;
Esta consulta primero agrupa los productos por categoría, los ordena por cantidad y luego deja solo tres filas.
Cómo funciona exactamente el operador GROUP BY y la función COUNT() lo verás en las próximas lecciones.
Errores típicos al usar LIMIT
Al trabajar con LIMIT puedes encontrarte con algunos problemas:
"Orden aleatorio de filas": si te olvidas de ORDER BY, los datos pueden llegar en un orden inesperado. Siempre pon el orden si es importante.
"Corte de datos importantes": por ejemplo, si dos registros tienen el mismo valor en la columna de ordenación, LIMIT puede devolver un resultado incompleto. Añade criterios de ordenación extra para evitarlo.
SELECT *
FROM students
ORDER BY age DESC, name ASC
LIMIT 5;
"Combinación incorrecta con WHERE". A veces las condiciones de filtrado reducen tanto el resultado que LIMIT no tiene sentido. Por ejemplo, si WHERE devuelve solo 2 registros y LIMIT pone 10, igual solo tendrás 2 filas.
"Dependencia de la base de datos". Algunas SGBD tienen una sintaxis alternativa para limitar filas (por ejemplo, TOP en SQL Server). PostgreSQL usa LIMIT.
¿Para qué sirve LIMIT en la vida real?
Interfaces con muchas filas: imagina una tienda online donde ves los productos por páginas. La primera página puede tener solo 10 registros, y LIMIT lo hace posible.
Informes: muchas veces solo te interesa la parte superior de los datos (por ejemplo, top-5 empleados, líderes de ventas, estudiantes con mejores notas).
Pruebas y optimización de consultas: en vez de trabajar con millones de filas, puedes probar rápido la consulta con una muestra pequeña.
GO TO FULL VERSION