SQL, o lenguaje de consulta estructurado, nos permite recopilar datos de una base de datos a través de consultas. También nos permite insertar, actualizar y eliminar esos datos.
En esta publicación de blog, nos centraremos en cómo obtener datos y limitar los resultados mediante SQL.
¿Por qué deberías limitar los resultados de las consultas SQL?
Una base de datos suele ser una gran colección de datos. A veces no necesitamos obtener todos los resultados. Para limitar los resultados, podemos optimizar la consulta.
Limitar los resultados de las consultas es importante para el rendimiento de la base de datos. Obtener un resultado grande cuando no es necesario genera una carga adicional en la base de datos y afecta la experiencia del usuario.
Cómo limitar los resultados de consulta en SQL
La sintaxis es diferente para SQL Server, Oracle y MySQL para limitar los datos.
- MySQL usa
LIMIT
. - ORACLE usa
FETCH FIRST
. - MS Access y SQL Server usan
TOP
.
Veremos ejemplos de cómo funciona cada uno en detalle a continuación.
Base de datos de demostración
Tenemos la siguiente tabla llamada students
con sus detalles como se puede ver a continuación:
ID | Nombre | Género |
---|---|---|
1 | Ryan | M |
2 | Juana | F |
3 | Miranda Andersen | F |
4 | Dalia Mata | F |
5 | Lilianna Boyd | F |
6 | Lexie Sharp | M |
7 | Jazlene Córdova | F |
8 | Brycen Werner | M |
9 | Karissa Turner | F |
10 | Aisha Dodson | F |
11 | Aydin Reeves | M |
Cómo limitar una consulta en MySQL
A continuación se muestra la sintaxis de MySQL.
SELECT (expression)
FROM
table_name
LIMIT 5;
Como ejemplo, seleccionaremos los primeros 5 registros de la tabla.
Usemos nuestra tabla students
para esta demostración.
-- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
Salida:
Cómo combinar LIMIT con ORDER BY
Cuando combina LIMIT con ORDER BY, puede obtener resultados más significativos. Por ejemplo, podemos usar esto para encontrar los 5 mejores estudiantes que obtuvieron una puntuación superior al 70 % en su examen.
Ordenemos nuestra mesa students
con la columna name
y elige los 5 primeros del resultado. Puedes hacerlo así:
SELECT * FROM students
order by name
LIMIT 5;
Salida:
Cómo limitar los resultados:sintaxis de Oracle
A continuación se muestra la sintaxis equivalente para nuestro primer ejemplo en Oracle.
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
En versiones anteriores de Oracle, puede usar ROWNUM para restringir el número de filas devueltas por una consulta.
Ejemplo:
SELECT * FROM
students
WHERE ROWNUM < 5;
Cómo limitar los resultados en SQL:sintaxis de MS Access
A continuación se muestra la sintaxis equivalente para nuestro primer ejemplo en MS Access.
SELECT TOP 5 * FROM students;
Resumiendo
La funcionalidad LIMIT puede ser muy poderosa para la optimización de consultas cuando se combina con la clasificación. Las consultas eficientes son más ligeras para el sistema y rápidas para el usuario. Siempre se recomienda LIMITAR los resultados cuando corresponda.