mysql必知必会--排序检索数据
排序数据
其实,检索出的数据并不是以纯粹的随机顺序显示的。如果不排
序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初
添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺
序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控
制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认
为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有
意义。
子句(clause) SQL语句由子句构成,有些子句是必需的,而
有的是可选的。一个子句通常由一个关键字和所提供的数据组
成。子句的例子有 SELECT 语句的 FROM 子句
为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。
ORDER BY 子句取一个或多个列的名字,据此对输出进行排序
通过非选择列进行排序 通常, ORDER BY 子句中使用的列将
是为显示所选择的列。但是,实际上并不一定要这样,用非
检索的列排序数据是完全合法的
按多个列排序
经常需要按不止一个列进行数据排序。例如,如果要显示雇员清单,
可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。
如果多个雇员具有相同的姓,这样做很有用。
为了按多个列排序,只要指定列名,列名之间用逗号分开即可(就
像选择多个列时所做的那样)。
重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。
指定排序方向
数据排序不限于升序排序(从 A 到 Z )。这只是默认的排序顺序,还可
以使用 ORDER BY 子句以降序(从 Z 到 A )顺序排序。为了进行降序排序,
必须指定 DESC 关键字
但是,如果打算用多个列排序怎么办?下面的例子以降序排序产品
(最贵的在最前面),然后再对产品名排序

DESC 关键字只应用到直接位于其前面的列名。在上例中,只对
prod_price 列指定 DESC ,对 prod_name 列不指定。因此,
prod_price 列以降序排序,而 prod_name 列(在每个价格内)仍然按标准
的升序排序。
在多个列上降序排序 如果想在多个列上进行降序排序,必须
对每个列指定 DESC 关键字
与 DESC 相反的关键字是 ASC ( ASCENDING ),在升序排序时可以指定它。
但实际上, ASC 没有多大用处,因为升序是默认的(如果既不指定 ASC 也
不指定 DESC ,则假定为 ASC )
区分大小写和排序顺序 在对文本性的数据进行排序时,A与
a相同吗?a位于B之前还是位于Z之后?这些问题不是理论问
题,其答案取决于数据库如何设置。
在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL
(和大多数数据库管理系统)的默认行为。但是,许多数据库
管理员能够在需要时改变这种行为(如果你的数据库包含大量
外语字符,可能必须这样做)。
这里,关键的问题是,如果确实需要改变这种排序顺序,用简
单的 ORDER BY 子句做不到。你必须请求数据库管理员的帮助
使用 ORDER BY 和 LIMIT 的组合,能够找出一个列中最高或最低的值。
下面的例子演示如何找出最昂贵物品的值:

prod_price DESC 保证行是按照由最昂贵到最便宜检索的,而
LIMIT 1 告诉MySQL仅返回一行。
ORDER BY 子句的位置 在给出 ORDER BY 子句时,应该保证它
位于 FROM 子句之后。如果使用 LIMIT ,它必须位于 ORDER BY
本章学习了如何用 SELECT 语句的 ORDER BY 子句对检索出的数据进行
排序。这个子句必须是 SELECT 语句中的最后一条子句。可根据需要,利
用它在一个或多个列上对数据进行排序
之后。使用子句的次序不对将产生错误消息
mysql必知必会--排序检索数据的更多相关文章
- 《MySQL必知必会》检索数据,排序检索数据(select ,* ,distinct ,limit , . , order by ,desc)
<MySQL必知必会>检索数据,排序检索数据 1.检索数据 1.1 select 语句 为了使用SELECT检索表数据,必须至少给出两条信息一想选择什 么,以及从什么地方选择. 1.2 检 ...
- MySQL必知必会 读书笔记三:检索数据和数据排序
检索数据 SELECT语句 它的用途是从一个或多个表中检索信息. 为了使用SELECT检索表数据,必须至少给出两条信息--想选择什 么,以及从什么地方选择. 检索单个列 SELECT col_1 FR ...
- mysql必知必会(四、检索数据,五、排序检索数据,六、过滤数据,七、数据过滤)
四.select语句 1.检索单个列 select prod_name from products; 2.检索多个列 select prod_name, prod_price from product ...
- 【SQL必知必会笔记(2)】检索数据、排序检索数据
上个笔记中介绍了一些关于数据库.SQL的基础知识,并且创建我们后续练习所需的数据库.表以及表之间的关系,从本文开始进入我们的正题:SQL语句的练习. 文章目录 1.检索数据(SELECT语句) 1.1 ...
- SQL 必知必会·笔记<2>检索和排序数据
1.检索数据 使用SELECT 检索表数据,必须至少给出两条信息——想选择什么, 以及从什么地方选择. 检索不同的值 使用DISTINCT关键字,检索不同的值,使用示例: SELECT DISTINC ...
- 《mysql必知必会》笔记1(检索、排序、过滤、计算、汇聚、分组)
一:了解SQL 1:列是表中的字段,所有表都由一个或多个列组成的.行是表中的记录,表中的数据都按行存储. 2:表中每一行都应该有可以唯一标识自己的一列或一组列.主键(一列或一组列),其值能够唯一区分每 ...
- MySql必知必会实战练习(三)数据过滤
在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...
- 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)
<MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...
- 《MySQL 必知必会》读书总结
这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...
- 《MySQL必知必会》[01] 基本查询
<MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...
随机推荐
- PTA 练习 7-24 喊山 (30 分)
7-24 喊山 (30 分) 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的& ...
- oracle11G 已开启监听,但远程连接依旧无监听解决过程
1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...
- Gradle | Gradle项目无法导入依赖包
Gradle | Gradle项目无法导入依赖包 背景 今天使用idea导入一个Gradle项目,使用 gradle build构建成功,但是项目还是无法正常导入依赖包,显示错误如下: 解决方案 后来 ...
- html块级元素的水平垂、直居中的方式
说明 对于初学者来说,块级元素的剧中,也是一大难题,我学习的时候,也是一脸懵逼,每次遇到都要百度,但是写的多了也自然记住一些常用的剧中方式,但是还是很模糊,今天就来好好总结一些. 布局 布局即为简单, ...
- C语言学习笔记--关于指针的一些小认知
int main() { int i; char *str = "hu mian yuan"; int length = strlen(str); printf("str ...
- Cacti 抓取数据方式 安装spine
安装好cacti后首先要设置获取数据的方式 Cacti 获取数据的方式有两种,1.监控端的脚本(可以是php, shell, perl 或其他脚本)2.或者 snmp 协议获取. Cacti 会在固定 ...
- H5异步加载多图
异步加载多图(可能没啥用,加载慢)(图片预加载,提前给浏览器缓存图片) 1. 用一个计数变量记录需要加载的图片个数 2. 用new Image()去加载,加载完给此对象的src赋值要加载的url路径( ...
- 7个有用的JS技巧
就如其他的编程语言一样,JavaScript也具有许多技巧来完成简单和困难的任务. 一些技巧已广为人知,而有一些技巧也会让你耳目一新. 让我们来看看今天可以开始使用的七个JavaScript技巧吧! ...
- [MacOS]Chrome 强制刷新
Chrome 调试的时候经常发现缓存没有清理 MacOS :⌘+⇧+r Windows:Ctrl + F5
- Pch文件预编译
因为项目用到Pch文件链接宏变量,因而稍作研究怎样使用,define宏变量其实并不合适 ,static const才最适合 Pch文件听说是上古世纪存在的文件,主要是用来全局预编译文件统一在一个出口, ...