Ordenar y limitar resultados
Ya sabes pedir datos y filtrarlos. Falta una pieza obvia: decidir en qué orden los quieres ver, y cuántos. Nadie quiere desplazarse por 10.000 filas cuando solo necesita las 5 más caras — hoy aprendes a poner tus resultados en fila india, y a cortar la lista justo donde te interesa.
ORDER BY: poner los resultados en orden
Por defecto, una base de datos NO garantiza ningún orden particular en el
resultado — puede parecer ordenado por casualidad, pero no cuentes con ello.
ORDER BY fuerza un orden explícito, de menor a
mayor por defecto.
Ascendente, de menor a mayor. Es el orden por defecto: no hace falta escribirlo, aunque puedes hacerlo explícito.
Descendente, de mayor a menor. Este sí tienes que escribirlo siempre.
Puedes ordenar por varias columnas a la vez, separadas por comas — como en el ejemplo de arriba: primero agrupa por ciudad, y dentro de cada ciudad, ordena por nombre. Es exactamente como ordenar una lista de contactos por apellido y, si hay empate, por nombre.
Limitar resultados: LIMIT
Cuando solo quieres "los 3 primeros" o "el más caro", combinas
ORDER BY con LIMIT
(así se llama en SQLite, MySQL y PostgreSQL — en SQL Server el equivalente se
llama TOP y se escribe de otra forma, justo después
de SELECT).
La forma equivalente en SQL Server (Microsoft). El TOP va justo después de SELECT, no al final como LIMIT.
Usar LIMIT sin ORDER BY
esperando "los primeros" de forma fiable. Sin un orden explícito, "los primeros
3" pueden ser tres filas distintas cada vez que ejecutes la consulta. Si el
orden te importa, dilo con ORDER BY — siempre.
Ponlo a prueba
Comprueba lo que has aprendido
1. ¿Cuál es el orden por defecto de ORDER BY si no escribes ASC ni DESC?
2. Quieres los 5 productos más baratos. ¿Qué combinación usas?
3. ¿Qué riesgo tiene usar LIMIT sin ORDER BY?