Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Classificando no MySQL usando a cláusula Order By


Este tutorial faz parte da série Aprenda consultas básicas de SQL usando MySQL. Neste tutorial, discutiremos consultas SQL para realizar a classificação das linhas da tabela no MySQL usando a cláusula ORDER BY com as palavras-chave ASC ou DESC para classificar em ordem crescente ou decrescente.


Ordenar por consulta




O SOLICITAR POR A cláusula pode ser usada para realizar a classificação nas linhas da tabela em ordem crescente ou decrescente.


# 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;


Explicação da consulta




O ORDEM POR A cláusula pode ser usada para classificar as linhas especificando a coluna a ser usada para classificação. Também podemos usar a cláusula ORDER BY com WHERE para realizar as operações de filtro ou pesquisa com ordenação.



Temos que especificar pelo menos uma coluna usando a cláusula ORDER BY para classificar as linhas. Também podemos especificar a ordem para classificar as linhas em ordem crescente ou decrescente usando palavras-chave ASC ou DESC, respectivamente.



Também podemos aplicar várias operações de classificação onde a classificação subsequente pode ser aplicada seguindo os resultados retornados pelas operações de classificação que ocorrerem primeiro.


Exemplos




Esta seção fornece exemplos para realizar a classificação usando a cláusula ORDER BY com e sem a cláusula WHERE. Use a consulta mencionada abaixo para criar a tabela de usuário com o id, nome, sobrenome e colunas ativas para armazenar os dados do usuário.


# 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`));



A consulta abaixo mencionada pode ser usada para inserir dados na tabela do usuário.


# 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 );



A consulta acima mencionada irá inserir 5 linhas na tabela com o id, primeiro nome, sobrenome e colunas ativas para representar 5 usuários diferentes.



Agora usaremos a cláusula ORDER BY sem a cláusula WHERE para classificar as linhas usando as colunas de nome ou sobrenome da tabela de usuário. Isso pode ser feito usando a cláusula ORDER BY no MySQL como mostrado abaixo.


# 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



As consultas mencionadas acima executam a classificação em ordem crescente e decrescente usando a cláusula ORDER BY. Agora vamos classificar as linhas com a cláusula WHERE conforme mostrado abaixo.


# 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



É assim que podemos usar a cláusula ORDER BY com e sem a cláusula WHERE para classificar as linhas da tabela para as colunas específicas.