MySQL查询之排序查询

Posted 没谱的曲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL查询之排序查询相关的知识,希望对你有一定的参考价值。

前言

之前总结的有mysql查询中的

排序查询

为什么要使用排序查询?

当我们查询内容时,经常出现查询的内容杂乱无章,不方便阅读数据,这时我们就需要将查询出来的数据以升序或降序的方式进行排列,以方便阅读数据。

排序查询的语法

SELECT 查询列表
FROM
WHERE 筛选条件 (可以没有
ORDER BY 排序的列表 [ASC(升序)/DESC(降序)]

执行顺序

该语句的执行顺序为:
先执行from子句------->执行where子句进行数据筛选------->
再执行select语句进行查询------>最后执行order by子句进行数据排序

排序查询的特点

特点一:在排序查询中ASC代表升序排列,DESC代表降序排列,如果不写将默认为ASC(升序)

举例1:查询员工姓名及工资,要求按工资从高到低排序

SELECT 
	`name`,`salary`
FROM 
	employees
ORDER BY 
	salary DESC;

查询结果:

举例2:查询员工姓名及工资,要求按工资从低到高排序
方法1:使用ASC升序排列

SELECT 
	`name`,`salary`
FROM 
	employees
ORDER BY 
	salary ASC;

查询结果:

方法2:默认进行升序排序

SELECT 
	`name`,`salary`
FROM 
	employees
ORDER BY 
	salary;

查询结果:

可以看到省略后输出的顺序依旧是升序排列

特点二:ORDER BY子句中可以支持的有单个字段、多个字段、表达式、函数和别名

举例(多个字段):查询员工编号、姓名、工资,要求按工资升序,同时按编号降序

SELECT 
	employee_id,
	`name`,
	salary
	
FROM
	employees
ORDER BY 
	salary ASC,
	employee_id DESC;

查询结果:

举例(表达式):查询员工姓名、年薪,要求按年薪升序排列

SELECT 
	`name`,
	salary*12 年薪
FROM
	employees
ORDER BY 
	salary*12;

查询结果:

举例(函数):查询员工的姓名、英文名、及英文名的长度,要求按英文名的长度降序排列

SELECT 
	`name`,
	`english_name`,
	LENGTH(`english_name`) 英文名长度
FROM
	employees
ORDER BY 
	LENGTH(`english_name`) DESC;

查询结果:

举例(别名):查询员工的姓名、英文名、及英文名的长度,要求按英文名的长度升序排列

SELECT 
	`name`,
	`english_name`,
	LENGTH(`english_name`) 英文名长度
FROM
	employees
ORDER BY 
	英文名长度 ASC;

查询结果:

特点三:ORDER BY子句一般情况都是放在查询语句的最后面(limit子句除外)

举例:查询员工的姓名、英文名、及英文名的长度,要求按英文名的长度升序排列,并且只检索其中的第5~10行

SELECT 
	`name`,
	`english_name`,
	LENGTH(`english_name`) 英文名长度
FROM
	employees
ORDER BY 
	英文名长度 ASC
LIMIT 4,6;

查询结果:

总结

排序查询主要使用order by子句以及熟练掌握ASC(升序排列)和DESC(降序排列)两个函数,结合该子句的特点进行操作。排序查询算是比较简单的查询,熟练掌握后对之后的学习会有所帮助。

以上是关于MySQL查询之排序查询的主要内容,如果未能解决你的问题,请参考以下文章

mysql 排序查询字段

MySQL查询基础

sql 升序降序排列

MySQL查询之排序查询

MySQL查询之排序查询

带你玩转JavaWeb开发之六-mysql基本语法详解及实例