【MySQL】MySQL中如何对数据进行排序
目录
- MySQL中的数据排序
- 一、 排序的基本使用
- 二、 使用列的别名来排序
- 三、 二级排序
MySQL中的数据排序
一、 排序的基本使用
- 在查询数据时,如果没有使用排序操作,默认情况下SQL会按元组添加的顺序来排列查询结果。
- 在SQL中,使用关键字
ORDER BY...
来进行排序操作。在此关键字后面可以添加关键字ASC
(ascend) 表示升序排列 (从小到大) ,DESC
(descend) 表示降序排列 (从大到小) 。 - 如果在
ORDER BY...
关键字后没有添加ASC
或DESC
来指明升序还是降序排列,SQL会默认按照升序ASC
排列。如下代码所示:
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary;
查询结果:
【例子1】查询员工表 employees
中的员工的 employee_id
、last_name
、salary
和 department_id
信息。并按 salary
从大到小 (降序) 进行排列。
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC;
查询结果:
二、 使用列的别名来排序
- 在SQL中,可以使用字段 (列) 的别名来进行排序。因为有时我们需要计算表中没有的字段 (如年薪
annual_salary
) ,或者有些字段名字实在是太长了,使用简短的别名可以提高我们编程的效率。如下例子所示:
【例子】查询员工表 employees
中的员工的 employee_id
、last_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中如何对数据进行排序相关推荐
- 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...
- php 去掉无关数据,php 读取 mysql 表中的double数据,去掉多余的0
php 读取 mysql 表中的double数据,去掉多余的0 mysql 中有 ttt 表结构和数据如下 CREATE TABLE `ttt` ( `id` int(11) NOT NULL AUT ...
- 怎么有效地查询MySQL表中的重复数据
在MySQL数据库中,偶尔会遇到需要查找表中出现的重复数据的情况.这种情况下,我们可以通过编写一些SQL查询语句轻松地找到并处理这些重复行.本文将介绍一些常见的方法和技巧,帮助你有效地查询MySQL表 ...
- sql 中实现打乱数据的排序
sql 中实现打乱数据的排序 order by NEWID() 就实现了数据的打乱 转载于:https://www.cnblogs.com/yangjinwang/p/3998271.html
- python给excel排序_使用Python对Excel中的列数据进行排序
有没有办法从excel表格中获取列,将列写入列表并将其排序,然后将它们重写为另一个Excel表格?这是我到目前为止所尝试的,但它只写入最后一列数据.我不需要前两行数据,因为它们只是标题.使用Pytho ...
- 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV
文章目录 本教程将详细讲解 1. MySQL / MariaDB 数据库数据「导出」 2. MySQL / MariaDB 数据库数据「导入」 3. 使用「卡拉云」一键导入导出 MySQL / Mar ...
- 1001系列之pandas0001如何从Mysql数据库中导入导出数据
一.Pymysql模块简介 Mysql数据库是数据挖掘任务的数据源之一,通过pymysql模块可以直接连接MySQL数据库,进行增删改查等操作. Python连接MySQL的流程如下: 1.1curs ...
- mysql在视图中增加新数据_怎么向Mysql视图中增加新数据
本篇文章主要给大家介绍mysql数据表中视图是怎么新增数据的. mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解. 从前面文章的介绍中,大家应 ...
- 向视图插入数据mysql_怎么向Mysql视图中增加新数据
本篇文章主要给大家介绍mysql数据表中视图是怎么新增数据的. mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解. 从前面文章的介绍中,大家应 ...
- 从mysql数据库中删除一行数据_mysql数据库删除一行数据
[MySQL]命令行工具和基本操作 原文:[MySQL]命令行工具和基本操作 一 MySQL命令行工具 (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有G ...
最新文章
- 详细介绍Intel SGX开发环境搭建和Hello Enclave程序运行
- Node.js 极简入门Helloworld版服务器例子
- 修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
- Hyper-V 的导入和导出
- 简单的combineByKey算子【看完就懂系列】
- qt +ChartDirector 绘制图表
- python中使用frame需要安装_python – 在SFrame中分组而不安装graphlab
- excel报表导出功能
- 调用阿里语音合成接口(文字转语音)
- java计算机毕业设计西安市城市绿地管理系统源码+系统+数据库+lw文档
- usb打印机linux识别不了怎么办,打印机usb连接电脑无法识别怎么办_打印机usb插上无响应怎么办-win7之家...
- 第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组(2021年4月18日)
- 免费教程《Excel VBA:办公自动化》
- Python编程语言好学吗 怎么能学好Python开发
- 成绩不好的穷孩子,该做出选择了
- python和r语言哪个简单_python与r语言哪个简单
- 你真的了解“药品追溯码”吗?
- 中秋节的月亮怎么拍?不用手机和相机,程序员照样能拍出大片的感觉
- MJ评《贫民窟的百万富翁》-满分10分
- 我的世界服务器神秘修改节点,我的世界NBT指令修改神秘时代4MOD方法详解