目录

  • MySQL中的数据排序
  • 一、 排序的基本使用
  • 二、 使用列的别名来排序
  • 三、 二级排序

MySQL中的数据排序

一、 排序的基本使用

  • 在查询数据时,如果没有使用排序操作,默认情况下SQL会按元组添加的顺序来排列查询结果。
  • 在SQL中,使用关键字 ORDER BY... 来进行排序操作。在此关键字后面可以添加关键字 ASC (ascend) 表示升序排列 (从小到大) ,DESC (descend) 表示降序排列 (从大到小) 。
  • 如果在 ORDER BY... 关键字后没有添加 ASCDESC 来指明升序还是降序排列,SQL会默认按照升序 ASC 排列。如下代码所示:
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary;

查询结果:

【例子1】查询员工表 employees 中的员工的 employee_idlast_namesalarydepartment_id 信息。并按 salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC;

查询结果:

二、 使用列的别名来排序

  • 在SQL中,可以使用字段 (列) 的别名来进行排序。因为有时我们需要计算表中没有的字段 (如年薪 annual_salary ) ,或者有些字段名字实在是太长了,使用简短的别名可以提高我们编程的效率。如下例子所示:

【例子】查询员工表 employees 中的员工的 employee_idlast_name 、月薪 salary 和 年薪 annual_salary 信息。并按 annual_salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary,
salary * (1 + IFNULL(commission_pct, 0) * 12) AS "annual_salary"
FROM employees
ORDER BY annual_salary DESC;

查询结果:

【注意】

  • 格式要求,WHERE 必须声明在 FROM 后。

  • 列的别名只能在 ORDER BY... 中使用,不能在 WHERE 中使用。**如果在 WHERE 中使用列的别名,SQL会报错。那为什么MySQL中列的别名不能在 WHERE 中使用呢?原因如下:

【原因】

SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id IN(50, 60, 70)
ORDER BY department_id DESC;
  • 在SQL中,查询语句不是按照上述代码从第1行到第4行从上往下执行的。而是首先执行第2行 FROM... ,先去找要查询的表。
  • 再执行第3行 WHERE... ,去筛选符合条件的元组。
  • 然后执行第1行 SELECT... ,显示你要查询的字段。在这一步才会生成列的别名,自然无法提供给上一步的 WHERE 来使用。但是可以提供给下一步的 ORDER BY 来使用。
  • 最后才是第4行 ORDER BY... ,按某列排序。这个时候可以使用列的别名来进行排序。

查询结果:

三、 二级排序

在现实生活中,我们有时候希望先按某个字段排序,再按另一个字段排序。在SQL中我们可以使用二级排序来实现。使用方法请看下面例子:

【例子1】查询员工表 employees 中的员工的员工ID employee_id 、名字 last_name 、月薪 salary 和部门ID department_id 。并先按部门ID department_id 降序排列,再按 salary 从大到小 (降序) 进行排列。

SELECT employee_id, last_name, salary, department_id
FROM employees
ORDER BY department_id DESC, salary DESC;

查询结果:

依次类推,可以在 ORDER BY 后面加逗号,来实现三级、四级…排序。

【MySQL】MySQL中如何对数据进行排序相关推荐

  1. 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...

  2. php 去掉无关数据,php 读取 mysql 表中的double数据,去掉多余的0

    php 读取 mysql 表中的double数据,去掉多余的0 mysql 中有 ttt 表结构和数据如下 CREATE TABLE `ttt` ( `id` int(11) NOT NULL AUT ...

  3. 怎么有效地查询MySQL表中的重复数据

    在MySQL数据库中,偶尔会遇到需要查找表中出现的重复数据的情况.这种情况下,我们可以通过编写一些SQL查询语句轻松地找到并处理这些重复行.本文将介绍一些常见的方法和技巧,帮助你有效地查询MySQL表 ...

  4. sql 中实现打乱数据的排序

    sql 中实现打乱数据的排序 order by NEWID() 就实现了数据的打乱  转载于:https://www.cnblogs.com/yangjinwang/p/3998271.html

  5. python给excel排序_使用Python对Excel中的列数据进行排序

    有没有办法从excel表格中获取列,将列写入列表并将其排序,然后将它们重写为另一个Excel表格?这是我到目前为止所尝试的,但它只写入最后一列数据.我不需要前两行数据,因为它们只是标题.使用Pytho ...

  6. 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV

    文章目录 本教程将详细讲解 1. MySQL / MariaDB 数据库数据「导出」 2. MySQL / MariaDB 数据库数据「导入」 3. 使用「卡拉云」一键导入导出 MySQL / Mar ...

  7. 1001系列之pandas0001如何从Mysql数据库中导入导出数据

    一.Pymysql模块简介 Mysql数据库是数据挖掘任务的数据源之一,通过pymysql模块可以直接连接MySQL数据库,进行增删改查等操作. Python连接MySQL的流程如下: 1.1curs ...

  8. mysql在视图中增加新数据_怎么向Mysql视图中增加新数据

    本篇文章主要给大家介绍mysql数据表中视图是怎么新增数据的. mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解. 从前面文章的介绍中,大家应 ...

  9. 向视图插入数据mysql_怎么向Mysql视图中增加新数据

    本篇文章主要给大家介绍mysql数据表中视图是怎么新增数据的. mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解. 从前面文章的介绍中,大家应 ...

  10. 从mysql数据库中删除一行数据_mysql数据库删除一行数据

    [MySQL]命令行工具和基本操作 原文:[MySQL]命令行工具和基本操作 一 MySQL命令行工具  (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有G ...

最新文章

  1. 详细介绍Intel SGX开发环境搭建和Hello Enclave程序运行
  2. Node.js 极简入门Helloworld版服务器例子
  3. 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
  4. Hyper-V 的导入和导出
  5. 简单的combineByKey算子【看完就懂系列】
  6. qt +ChartDirector 绘制图表
  7. python中使用frame需要安装_python – 在SFrame中分组而不安装graphlab
  8. excel报表导出功能
  9. 调用阿里语音合成接口(文字转语音)
  10. java计算机毕业设计西安市城市绿地管理系统源码+系统+数据库+lw文档
  11. usb打印机linux识别不了怎么办,打印机usb连接电脑无法识别怎么办_打印机usb插上无响应怎么办-win7之家...
  12. 第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组(2021年4月18日)
  13. 免费教程《Excel VBA:办公自动化》
  14. Python编程语言好学吗 怎么能学好Python开发
  15. 成绩不好的穷孩子,该做出选择了
  16. python和r语言哪个简单_python与r语言哪个简单
  17. 你真的了解“药品追溯码”吗?
  18. 中秋节的月亮怎么拍?不用手机和相机,程序员照样能拍出大片的感觉
  19. MJ评《贫民窟的百万富翁》-满分10分
  20. 我的世界服务器神秘修改节点,我的世界NBT指令修改神秘时代4MOD方法详解

热门文章

  1. 大数据毕设 - 大数据二手房数据分析与可视化(python 爬虫)
  2. vue 多种方法实现名字拼接
  3. 管理是一门艺术,好坏全在细微之间
  4. 如何解决Vray for 3ds Max中的3个错误
  5. 万能数据库查询分析器使用技巧之(十一)
  6. ASP.NET建筑工程管理系统
  7. html微信气泡插件,微信加上个性化插件工具,瞬间逼格满满
  8. Java面试官推荐的开发面试要点
  9. 海量数据、丰厚奖金,美团外卖推荐技术评测邀你来战!
  10. 前端图片上传那些事儿