Saltar al contenido principal

Cómo utilizar mejor la cláusula LIMIT de SQL

Aprende a aplicar la cláusula LIMIT de SQL para filtrar datos. Domina el uso de la cláusula LIMIT en las bases de datos PostgreSQL y MySQL.
Actualizado 29 jul 2024  · 8 min de lectura

La cláusula SQL LIMIT controla el número de registros devueltos en una consulta. Como su nombre indica, la cláusula LIMIT restringe las filas que se muestran tras filtrar los datos. Esta cláusula es importante cuando manejas grandes conjuntos de datos, pero sólo quieres recuperar partes concretas de ellos.

Si eres un aspirante a profesional de los datos, te recomiendo encarecidamente que sigas los cursos Introducción a SQL y Fundamentos de SQL de DataCamp para adquirir las habilidades pertinentes en SQL para el análisis de datos.

La respuesta breve: ¿Qué es la cláusula LÍMITE de SQL?

La cláusula SQL LIMIT es una cláusula útil que especifica el número de registros que debe devolver una consulta después de filtrar los datos. Esta técnica permite devolver sólo un subconjunto de datos para su visualización o análisis. Por lo tanto, la cláusula LIMIT es importante para dividir los datos grandes en trozos más pequeños en la paginación de datos. También se utiliza para optimizar el rendimiento, a fin de evitar consultas de gran tamaño que podrían ralentizar el rendimiento de la base de datos.

El ejemplo siguiente muestra el uso básico de la cláusula LIMIT para mostrar sólo los 10 registros principales de la tabla employees.

-- Select all columns from the employees table
-- and limit the number of returned rows to 10.
SELECT * 
FROM employees
LIMIT 10;

Sintaxis de la cláusula LIMIT de SQL

La cláusula SQL LIMIT se incluye en la sentencia SELECT para controlar el número de registros que devuelve una consulta. La cláusula LIMIT se añade al final de la sentencia para filtrar los registros según se especifique. También puedes consultar la Hoja de trucos de conceptos básicos de SQL de DataCamp para obtener más información sobre LIMIT y otras cláusulas comunes de SQL.

-- Select columns column1, column2, ... from the table table_name
SELECT column1, column2, ...
FROM table_name
-- Limit the number of rows returned to number_of_rows
LIMIT number_of_rows;

Aquí tienes la cláusula LIMIT en un ejemplo práctico. La consulta mostrará sólo 10 registros de la tabla employees de las columnas first_name, last_name y department.

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10
LIMIT 10;

A veces, puedes utilizar la cláusula opcional OFFSET para omitir un número determinado de filas antes de mostrar las filas previstas. La sintaxis de OFFSET se muestra a continuación.

-- Select column_names from the table table_name
SELECT column_names
FROM table_name
-- Arrange the results in ascending order based on column_name
ORDER BY column_name
-- Limit the number of rows returned to number_of_rows, starting from offset_value
LIMIT number_of_rows OFFSET offset_value;

En la consulta SQL anterior, el number_of_rows indica el número de filas a devolver, mientras que el offset_value muestra el número de filas que la consulta debe saltarse antes de devolverlas. 

El ejemplo siguiente muestra cómo utilizar las cláusulas SQL OFFSET y LIMIT para controlar el número de filas a devolver. Mientras que la cláusula LIMIT especifica que se devuelvan 10 registros, la cláusula OFFSET de la consulta omite los 5 primeros registros. Por lo tanto, los resultados mostrarán registros desde la 6ª fila de los datos hasta la 15ª fila (10 filas).

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10, starting from the 6th row (offset of 5)
LIMIT 10 OFFSET 5;

Puntos importantes a recordar sobre la cláusula LIMIT de SQL

Comprender cómo aplicar correctamente la cláusula LIMIT y sus variaciones en las distintas bases de datos SQL es crucial para optimizar el rendimiento de las consultas y garantizar una recuperación precisa de los datos. Veamos algunos puntos importantes. 

Colocación de la cláusula LIMIT en la sentencia SELECT

La cláusula LIMIT suele colocarse al final de la declaración SELECT, después de la cláusula FROM. Si utilizas otras cláusulas de agregación opcionales como WHERE, GROUP BY y ORDER BY, asegúrate de que la cláusula LIMIT se encuentra al final de la consulta.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Limit the number of rows returned to 5, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

Combinar LIMIT con la cláusula ORDER BY

La cláusula LIMIT puede combinarse con el agregado ORDER BY para obtener resultados coherentes y predecibles. Esta técnica garantiza que los datos se almacenan en un orden determinado antes de recuperarlos. En el ejemplo siguiente, ordenamos los datos por el hire_date en orden descendente antes de mostrar las filas filtradas.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10
LIMIT 10;

Yo recomendaría seguir la carrera de Analista de Datos Asociado en SQL y el curso de Informes en SQL de DataCamp para aprender más sobre las funciones agregadas y sus aplicaciones en el análisis de datos.

Variaciones y sintaxis de SQL LIMIT en las distintas bases de datos

Los ejemplos anteriores muestran el uso de las cláusulas SQL LIMIT en bases de datos PostgreSQL, SQLite y MySQL compatibles.

Para conseguir resultados similares en SQL Server, considera la posibilidad de utilizar la función TOP para controlar el número de registros a devolver a partir de unos datos dados.

-- Select the top 10 records of first_name, last_name from the employees table
SELECT TOP 10 first_name, last_name
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC;

Del mismo modo, la base de datos Oracle admite el uso de FETCH FIRST n ROWS ONLY para controlar el número de registros a devolver en una consulta.

-- Select the first_name and last_name columns from the employees table
SELECT first_name, last_name
FROM employees
-- Order the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to the first 10 rows
FETCH FIRST 10 ROWS ONLY;

LIMIT y OFFSET en la paginación

SQL LIMIT y OFFSET suelen combinarse para conseguir una paginación eficaz de los datos. Esta técnica garantiza que los grandes conjuntos de datos se dividan en trozos más pequeños y manejables para una visualización adecuada.

En el ejemplo siguiente, la cláusula LIMIT y OFFSET limita las filas mostradas a 10, pero empieza a partir de la fila 21.

-- Select all columns from the employees table
SELECT *
-- Arrange the results in descending order based on hire_date
FROM employees
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

Casos comunes de uso de la cláusula LIMIT de SQL

  • Paginación: Combinada con la cláusula OFFSET, la cláusula LIMIT se utiliza en aplicaciones web para la paginación de datos. Esta técnica muestra los datos en trozos/subconjuntos más pequeños, como en diferentes páginas web.
  • Optimizar el rendimiento: La cláusula LIMIT puede mejorar el rendimiento de la consulta reduciendo la carga de los servidores de la base de datos. Consigue esta técnica obteniendo y devolviendo simultáneamente subconjuntos de datos más pequeños.
  • Muestreo de datos: La cláusula LIMIT es útil en el análisis de datos, ya que permite obtener subconjuntos de datos más pequeños. Este método ayuda a los analistas de datos a mejorar el rendimiento durante el análisis.

Limitaciones del comando SQL Limit

Las limitaciones de la cláusula SQL LIMIT son las siguientes:

  • Falta de apoyo de todas las bases de datos: La cláusula LIMIT no es compatible con todas las bases de datos. Por ejemplo, la cláusula LIMIT no está disponible en las bases de datos SQL Server y Oracle. 
  • Problemas de rendimiento con valores de OFFSET grandes: Utilizar valores grandes de OFFSET puede ralentizar los servidores de bases de datos, lo que provoca una ejecución más lenta de las consultas.

Para evitar las limitaciones de las distintas bases de datos, considera la posibilidad de utilizar las siguientes alternativas.x

La cláusula TOP en SQL Server

La cláusula TOP da los mismos resultados que la cláusula LIMIT para la base de datos SQL Server.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT TOP 10 first_name, last_name
FROM employees
ORDER BY hire_date DESC;

FETCH FIRST n ROWS ONLY en SQL Server y DB2

La página FETCH FIRST n ROWS ONLY también devuelve resultados similares a los de la cláusula LIMIT para las bases de datos SQL Server y DB2.

-- Select the first 10 rows from the employees table ordered by hire_date
SELECT first_name, last_name
FROM employees
ORDER BY hire_date DESC
FETCH FIRST 10 ROWS ONLY;

ROWNUM en Oracle

En la base de datos Oracle, la función ROWNUM controla el número de registros devueltos a partir de los datos. La función se combina en una subconsulta para filtrar los datos según sea necesario.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT * FROM (
    SELECT first_name, last_name
    FROM employees
    ORDER BY hire_date DESC
) WHERE ROWNUM <= 10;

Conclusión

La cláusula SQL LIMIT es importante para restringir el número de filas mostradas tras recuperar datos de una base de datos. Como profesional de los datos, es importante comprender los distintos casos de uso de la cláusula LIMIT para el análisis y la manipulación de datos. Del mismo modo, debes tener en cuenta la compatibilidad de la base de datos con la cláusula LIMIT y utilizar otras funciones alternativas cuando utilices bases de datos incompatibles, como SQL Server y Oracle.

Para comprender las distintas aplicaciones de la cláusula SQL LIMIT, debes seguir practicando con distintos conjuntos de datos. Los cursos Aprende SQL y SQL Intermedio de DataCamp son apropiados para adquirir conocimientos avanzados de SQL. También recomiendo obtener la Certificación de Asociado SQL de DataCamp para demostrar tus conocimientos sobre el uso de SQL y destacar entre otros profesionales de los datos.

Preguntas frecuentes

¿Para qué sirve la función LIMIT de SQL?

La función SQL LIMIT controla el número de filas devueltas a partir de los datos filtrados.

¿Cuál es el uso principal del LÍMITE SQL?

SQL LIMIT se utiliza principalmente para la paginación de datos en páginas web para restringir el número de filas en pantalla.

¿Se admite la cláusula LIMIT de SQL en todas las bases de datos?

La función SQL LIMIT sólo es compatible con las bases de datos PostgreSQL, MySQL y SQLite. La cláusula no es compatible con las bases de datos SQL Server y Oracle.

¿Cuál es la alternativa a la cláusula LIMIT en las bases de datos no compatibles?

La alternativa a la función SQL LIMIT en SQL Server son las cláusulasTOP y FETCH FIRST n ROWS ONLY. La base de datos Oracle utiliza la función ROWNUM como alternativa a LIMIT.

¿Para qué sirve OFFSET en la cláusula LIMIT de SQL?

Podemos utilizar OFFSET para especificar el número de filas que hay que omitir antes de devolver el número concreto de filas de la cláusula LIMIT cláusula.

Temas

Aprende SQL con DataCamp

curso

Introduction to SQL

2 hr
780.6K
Learn how to create and query relational databases using SQL in just two hours.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Cómo utilizar GROUP BY y HAVING en SQL

Una guía intuitiva para descubrir los dos comandos SQL más populares para agregar filas de tu conjunto de datos
Eugenia Anello's photo

Eugenia Anello

6 min

tutorial

Seleccionar varias columnas en SQL

Aprende a seleccionar fácilmente varias columnas de una tabla de base de datos en SQL, o a seleccionar todas las columnas de una tabla en una simple consulta.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

FUNCIÓN SQL COUNT()

COUNT() te permite contar el número de filas que cumplen determinadas condiciones. Aprende a utilizarlo en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

tutorial

CALIFICAR: La sentencia de filtrado SQL que nunca supo que necesitaba

Conozca la cláusula SQL QUALIFY, un método de filtrado esencial aunque poco conocido en SQL. Comprender su sintaxis, usos y en qué se diferencia de otros métodos de filtrado SQL.
Kurtis Pykes 's photo

Kurtis Pykes

8 min

tutorial

Ejemplos y tutoriales de consultas SQL

Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

FUNCIÓN SQL FORMAT()

FORMAT() es una de las funciones más utilizadas en SQL. Conozca sus principales aplicaciones en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

See MoreSee More