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

Ordenar en MySQL usando orden por cláusula

Este tutorial es parte de la serie Aprenda consultas SQL básicas usando MySQL. En este tutorial, analizaremos las consultas SQL para realizar la clasificación de las filas de la tabla en MySQL utilizando la cláusula ORDER BY con las palabras clave ASC o DESC para clasificar en orden ascendente o descendente.

Ordenar por consulta

El ORDEN por La cláusula se puede usar para ordenar las filas de la tabla en orden ascendente o descendente.

# ORDER BY - Syntax - Default Ascending
SELECT * FROM `table_name` ORDER BY `column_name`;

# ORDER BY - Syntax - Ascending
SELECT * FROM `table_name` ORDER BY `column_name` ASC;

# ORDER BY - Syntax - Descending
SELECT * FROM `table_name` ORDER BY `column_name` DESC;

Explicación de consulta

El ORDENAR POR La cláusula se puede usar para ordenar las filas especificando la columna que se usará para ordenar. También podemos usar la cláusula ORDER BY con WHERE para realizar las operaciones de filtrado o búsqueda con clasificación.

Tenemos que especificar al menos una columna usando la cláusula ORDER BY para ordenar las filas. También podemos especificar el orden para ordenar las filas ya sea en orden ascendente o descendente utilizando las palabras clave ASC o DESC respectivamente.

También podemos aplicar múltiples operaciones de clasificación donde la clasificación posterior se puede aplicar siguiendo los resultados devueltos por las operaciones de clasificación que vienen primero.

Ejemplos

Esta sección proporciona ejemplos para realizar la clasificación utilizando la cláusula ORDER BY con y sin la cláusula WHERE. Utilice la consulta que se menciona a continuación para crear la tabla de usuarios que tenga la identificación, el nombre, el apellido y las columnas activas para almacenar los datos del usuario.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

La consulta mencionada a continuación se puede utilizar para insertar datos en la tabla de usuario.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'John', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

La consulta mencionada anteriormente insertará 5 filas en la tabla con la identificación, el nombre, el apellido y las columnas activas para representar a 5 usuarios diferentes.

Ahora usaremos la cláusula ORDER BY sin la cláusula WHERE para ordenar las filas usando las columnas de nombre o apellido de la tabla de usuario. Se puede hacer usando la cláusula ORDER BY en MySQL como se muestra a continuación.

# ORDER BY - Ascending
SELECT * FROM `user` ORDER BY `first_name`;
SELECT * FROM `user` ORDER BY `first_name` ASC;

# Result
4 Harsh Upadhyay 1
1 John Smith 1
3 John Ponting 0
2 Rick Jones 1
5 Tajwinder Singh 0


# ORDER BY - Descending
SELECT * FROM `user` ORDER BY `first_name` DESC;

# Result
5 Tajwinder Singh 0
2 Rick Jones 1
1 John Smith 1
3 John Ponting 0
4 Harsh Upadhyay 1


# ORDER BY - Ascending - Multiple
SELECT * FROM `user` ORDER BY `first_name`, `last_name`;

# Result
4 Harsh Upadhyay 1
3 John Ponting 0
1 John Smith 1
2 Rick Jones 1
5 Tajwinder Singh 0

Las consultas mencionadas anteriormente realizan la clasificación en orden ascendente y descendente utilizando la cláusula ORDER BY. Ahora ordenaremos las filas con la cláusula WHERE como se muestra a continuación.

# ORDER BY - Ascending - Filter active users
SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name`;

# Result
4 Harsh Upadhyay 1
1 John Smith 1
2 Rick Jones 1


# ORDER BY - Descending - Filter active users
SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name` DESC;

# Result
2 Rick Jones 1
1 John Smith 1
4 Harsh Upadhyay 1

Así es como podemos usar la cláusula ORDER BY con y sin la cláusula WHERE para ordenar las filas de la tabla para las columnas específicas.