我们知道SQLSELECT语句用于从MySQL表中读取数据。下面这篇文章主要介绍MySQL如何对数据进行排序的相关信息。通过图文非常详细的介绍,有需要的朋友可以参考一下。
目录
一、排序的基本用法二。使用列别名排序III。二级排序汇总
一、 排序的基本使用
查询数据时,如果没有使用排序操作,默认情况下,SQL会按照元组添加的顺序对查询结果进行排序。在SQL中,关键字ORDER BY.用于排序。您可以在该关键字后添加关键字ASC(升序)来表示升序(从小到大),添加关键字DESC(降序)来表示降序(从大到小)。如果在排序依据后没有添加ASC或DESC.关键字来指示升序或降序,默认情况下,SQL将按升序ASC排序。代码如下:
SELECT雇员标识,姓氏,薪金
来自员工
按工资排序;
查询结果:
[示例1]在employees表中查询雇员的employee_id、last_name、salary和department_id信息。而且是按工资降序排列的。
SELECT雇员标识,姓氏,薪金
来自员工
按薪金DESC排序;
查询结果:
二、 使用列的别名来排序
在SQL中,可以使用字段(列)的别名进行排序。因为有时候我们需要计算表中没有的字段(比如annual_salary _ salary),或者有些字段名称太长,使用短别名可以提高我们的编程效率。如下例所示:
[示例]在employees表中查询雇员的雇员id、姓氏、月薪和年薪。并且按照年薪降序排列。
SELECT雇员id,姓氏,薪金,
薪金* (1 IFNULL(commission_pct,0) * 12)作为“年薪”
来自员工
按年薪DESC排序;
查询结果:
[注意]
格式要求,WHERE必须在FROM之后声明。列的别名只能在ORDER BY中使用.不是哪里。* *如果在WHERE中使用列的别名,SQL将报告错误。那为什么MySQL中的列别名不能用在WHERE中?原因如下:
【原因】
SELECT雇员标识,姓氏,部门标识
来自员工
其中department_id IN(50,60,70)
按部门id DESC排序;
在SQL中,查询语句不是按照上面第1行到第4行的代码从上到下执行的。相反,首先执行.查找要查询的表。然后执行第三行,其中.筛选出符合条件的元组。然后执行第1行选择.显示要查询的字段。这一步会生成列的别名,自然不能提供给上一步的WHERE。但是可以在下一步中提供给订单。最后,第四行,ORDER BY.按列排序。这时,可以使用列的别名进行排序。
查询结果:
三、 二级排序
在现实生活中,我们有时想先按一个字段排序,再按另一个字段排序。在SQL中,我们可以使用二级排序。请参见下面的用法示例:
[示例1]在employees表中查询雇员的雇员ID employee_id、名字姓氏、月薪和部门ID department_id。它们先按部门ID department_id降序排列,然后按薪金降序排列。
SELECT雇员标识,姓氏,薪金,部门标识
来自员工
按部门排序_id DESC,薪金desc;
查询结果:
以此类推,可以在ORDER BY后面加一个逗号,实现三级、四级…排序。
总结
这就是这篇关于MySQL如何对数据进行排序的文章。有关MySQL数据排序的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。