Este tutorial explica la cláusula ORDER BY de MySQL y su uso con las opciones ASC y DESC. Describiremos esta sentencia de MySQL con la ayuda de ejemplos sencillos.

1. Sintaxis de la cláusula ORDER BY
2. ORDER BY W/O ASC o DESC
3. ORDER BY DESC
4. ORDER BY Relative Position
5. ORDER BY Two Fields ASC & DESC

Vamos a repasar cada una de las secciones una por una.

Cláusula ORDER BY de MySQL

El comando SELECT de MySQL no devuelve un conjunto de resultados ordenados por defecto. Por lo tanto, para ordenar la salida, hay que añadir la cláusula ORDER BY en la consulta SELECT. Podemos conseguir lo siguiente utilizando la cláusula ORDER BY:

  • Realizar la ordenación de los registros por un único/múltiple campo
  • Ordenar las filas por columnas distintas en orden ascendente (ASC) o descendente (DESC).

A continuación se ilustra la sintaxis de la cláusula ORDER BY:

Sintaxis

# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

La cláusula ORDER BY realiza por defecto la ordenación en orden ascendente. El término ASC es un acrónimo de creciente mientras que DESC significa descendente. Para DESC, tiene que mencionarlo en su consulta SELECT.

Tenga en cuenta que incluso puede especificar una expresión con el ORDER BY en MySQL. Además, tanto las opciones ASC como DESC son opcionales para esta sentencia.

Aquí tienes algunos ejercicios de ejemplo para practicar.

Ejemplos de la cláusula ORDER BY de MySQL

Veamos cómo utilizar la cláusula ORDER BY con las consultas SELECT de MySQL.

Usando el orden por sin la opción asc/desc

Para demostrarlo, vamos a crear primero una tabla llamada Sample y poblarla con algunos datos de prueba.

CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );

A continuación, vamos a insertar algunos datos ficticios para nuestras pruebas.

Después de esto, tenemos que comprobar el contenido de nuestra tabla Sample. Ver a continuación.

SELECT *FROM Sample;

Su salida es la siguiente:

Ahora, vamos a ejercer la cláusula ORDER BY en el archivo «vendor_name». Y, observaremos el conjunto de resultados recibidos de la base de datos MySQL:

SELECT *FROM SampleORDER BY vendor_name;

Obtendremos un resultado que muestra la siguiente salida:

Podemos evaluar desde el conjunto de resultados anterior que la ordenación se llevó a cabo en el orden ascendente por defecto.

Ordenar en orden descendente

En este ejemplo, vamos a demostrar la cláusula ORDER BY para ordenar en el orden descendente. Para ello, tendremos que especificarlo explícitamente.

Aquí está la sentencia MySQL para ordenar en orden descendente:

SELECT *FROM SampleORDER BY vendor_name DESC;

La salida de SELECT es:

Ordenar por campo en posición relativa

Es posible utilizar la cláusula ORDER BY de MySQL para ordenar por un campo en posición RELATIVA.

Cuando especificamos los nombres de las columnas en la consulta SELECT, el primer campo está en la posición uno, el segundo en la dos, y así sucesivamente. Además, podemos validar este hecho con un ejemplo.

Aquí tenemos una sentencia SELECT que muestra los campos y ordena por una posición relativa.

SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

Aquí está el conjunto de resultados que se obtiene después de ejecutar el comando anterior:

Puede ver que MySQL ordenó por el campo sample_size que corresponde a la cuarta columna.

Usando ORDER BY para ordenar en dos columnas

Ya habíamos mencionado que se podía usar ORDER BY en uno o más campos. En este caso, MySQL trata el primer campo como primario y el segundo como secundario. Por lo tanto, primero ordena el primario y luego el segundo.

Por lo tanto, en este ejemplo, demostraremos ORDER BY en dos columnas, un campo como ASC, y otro DESC. Además, tenemos que insertar más registros para demostrar que la segunda columna también se ordena.

Puede ignorar la sentencia INSERT dada al principio y utilizar la de abajo.

Ahora, tenemos unas cuantas filas con los mismos nombres de proveedores pero con tamaños de muestra variados. Y, ahora vamos a ordenar basándonos en los campos vendor_name (primario) y sample_size (secundario).

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

Esta sentencia MySQL produce este resultado:

Puede ver que todos los valores del campo primario se han ordenado de forma ascendente. Y, también es evidente en la salida que la ordenación (en DESC) tuvo lugar en el segundo también.

Ahora, vamos a averiguar cuál sería el resultado, si hubiéramos ordenado sólo en el nombre del proveedor.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

Este comando dará como resultado:

Podemos ver en el resultado anterior que las filas pertenecientes a Google y Twitter no se ordenaron en sus tamaños de muestra.

Esperamos que después de terminar este tutorial, se sienta cómodo en el uso de la cláusula ORDER BY de MySQL. Sin embargo, puede practicar más con ejemplos para ganar confianza.

Además, para aprender SQL desde cero hasta la profundidad, lea nuestro tutorial MySQL paso a paso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.