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查询之排序查询的主要内容,如果未能解决你的问题,请参考以下文章