CodeGym /Cursos /SQL SELF /Limitando la cantidad de filas (LIMIT) y controlando el r...

Limitando la cantidad de filas (LIMIT) y controlando el resultado

SQL SELF
Nivel 3 , Lección 0
Disponible

¿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:

  1. Reducir la carga en el servidor y la red.
  2. 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.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION