MySQL必知必会 学习笔记 第五章 排序检索数据

约定不等于承诺〃 2022-12-26 00:53 197阅读 0赞

检索出的数据如果不排序,不是以纯粹的随机顺序显示的,一般以行在底层表中出现的顺序显示,这可以是数据最初添加到表中的顺序,但如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响,因此不能依赖不排序的顺序。关系数据库的设计理论认为,如不明确规定排序顺序,则不应假定检索出的数据顺序有意义。

SQL语句由子句构成,有些子句是必需的,有些是可选的。子句通常由一个关键字和所提供的数据组成。例子是SELECT语句的FROM子句。

ORDER BY子句对检索结果排序:

  1. SELECT columnName1
  2. FROM tableName
  3. ORDER BY columnName2; # colName2可以是colName1

可以根据非检索出的列对数据排序。

按多个列排序:

  1. SELECT columnName
  2. FROM tableName
  3. ORDER BY columnName1, columnName2;

以上先按columnName1排序,colName1相同时按columnName2排序。

ORDER BY的默认排序是升序(从a到z),也可以降序排序:

  1. SELECT columnName1
  2. FROM tableName
  3. ORDER BY columnName2 DESC;

DESC只作用于它之前的列:

  1. SELECT columnName
  2. FROM tableName
  3. ORDER BY columnName1 DESC, columnName2;

先按columnName1的降序排序,colName1相同的按columnName2的升序排序。

如果想按多个列的降序排序,每个列都要指定DESC。

ASC是升序,由于升序是默认排序方式,所以加不加ASC都可以。

对文本类数据排序时A与a是否相同,a位于B之前还是Z之后,取决于数据库如何设置。MySQL(和大多DBMS一样)的字典排序顺序中,A与a相同。

选出某列中最大的值:

  1. SELECT columnName
  2. FROM tableName
  3. ORDER BY columnName DESC
  4. LIMIT 1

ORDER BY子句应在FROM之后,LIMIT子句应在ORDER BY之后。

发表评论

表情:
评论列表 (有 0 条评论,197人围观)

还没有评论,来说两句吧...

相关阅读