sql >> Base de Datos >  >> RDS >> Mysql

ROW_NUMBER en SQL:seleccione el ejemplo principal en SQL y SQL Server

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.