Ordenando datos

Una de las clausulas de uso habitual es order by que permite ordenar los resultados por orden alfabético o numérico según el tipo de campo que queramos ordenar. Ejemplo:

Observamos que la lista se ha ordenado por el “TITULO“. MySQL dispone de dos formas de ordenación; asc y desc. La primera ordena en orden ascendente y que es la que se usa por defecto si no especificamos el tipo de orden, la segunda ordena que la ordenación se haga de manera descendente, es decir, de abajo a arriba.

Queremos ordenar por el número de páginas los títulos de nuestros libros y lo haremos en orden ascendente.

Aunque no es estrictamente necesaria la orden “asc” se aplica de manera predeterminada, el uso de esta palabra clave aporta más claridad.

Limitando el número de resultados

Por ahora mostramos el número completo de resultados acorde con las consultas que hemos realizado. Sin embargo, en una base de datos real, puede que se trate de varios miles de registros que no nos gustaría verlos todos a la vez. Para ello podemos usar la clausula “limit“. Esta clausula no es convencional de SQL que, por lo tanto, no podrá utilizarse de la misma forma en todas las bases de datos, pero en MySQL resulta de una gran potencia y utilidad. Si deseamos buscar solo un TITULO y el ISBN de los libros ordenados por PAGINAS, escribiremos la siguiente consulta:

Estamos buscando el título “Programación Shell“. Sin embargo, limit permite devolver únicamente dicho registro, de la siguiente manera:

Colocando un número detrás de la clausula limit, este determinara el número de filas que mostrará.

NOTA:LIMIT 0 no devuelve ningún registro. Nos puede parecer que carece de utilidad, pero es una buena forma de probar una consulta en bases de datos de gran tamaño sin ejecutarlas.

 

La clausula limit también puede establecer el desplazamiento que usar, es decir, desde qué resultado comenzar la operación de limitación. El siguiente ejemplo devuelve el segundo registro en orden descendente.

Los ordenadores siempre empiezan a contar desde cero, por lo que si especificamos un desplazamiento de 1, la búsqueda comenzará por el segundo registro. Lo comprobamos:

El comando limit 1 equivale a utilizar limit 0,1, ya que se asume el cero como valor predeterminado si no especificamos nada. Pero ¿como recuperar el tercer, cuarto y quinto registro en orden descendente por el campo TITULO?

Desglosamos el comando limit 2,3

El comando limit se suele utilizar en motores de búsqueda que ejecuten MySQL, por ejemplo, para obtener 10 resultados por página utilizaremos limit 0,10 para la primera página, limit 10,10 para la segunda, etc.

  • Hemos aprendido a ordenar las tablas con la clausula order by.
  • Vimos que hay dos maneras de ordenación, orden descendente (desc) y orden ascendente (asc).
  • Hemos aprendido una nueva clausula limit.

 

 

Anuncios