美文网首页
Mysql第五章 - 排序检索数据ORDER BY

Mysql第五章 - 排序检索数据ORDER BY

作者: 足__迹 | 来源:发表于2024-03-11 15:15 被阅读0次

举例:
输入:SELECT * FROM student s ;
输出:


image.png

注释:

上面的例子中,检索出来的并不是按照完全的随机顺序显示的,如果不进行排序操作,数据会以底层表中的顺序显示(最初添加表中的顺序),但是如果中间进行过删除或者修改,顺序会受到Mysql回收存储空间的影响,因此如果不明确排序顺序,则不应该假定检索出的数据有意义。

单个字段排序

输入:select * FROM student s order by name ;
分析:这条语句中指示按照 name 列顺序排序
输出:


按多个列排序
经常需要不止一个列进行数据排序,例如,按照远程姓名,年龄排序,(首先按照姓名排序,然后按照年龄排序)

例:
输入:select * FROM student s order by name,age;
分析:按多个列排序,只要指定列名,列名之间用逗号分开即可,以下例子中,仅在多行具有相同的name时,才会对列 age进行排序
输出:


image.png
指定排序方向

数据排序默认为升序排序,可以通过指定关键字指定排序顺序。
举例:

  • 按照年龄以降序排序
    输入:select * FROM student s order by age DESC ;
    输出:


    image.png
  • 多列排序,先按照姓名降序排序,然后对年龄顺序排序
    输入:select * FROM student s order by name DESC,age ;
    输出:


    image.png
  • 组合使用,获取一列中数据最小值
    输入:select * FROM student s order by age DESC LIMIT 1 ;
    分析: age DESC保证行是按照由大到最小检索的,而
    LIMIT 1告诉MySQL仅返回一行
    输出:


    image.png

1,DESC关键字只应用到直接位于其前面的列名,如果想在多个列上进行降序排序,必须
对每个列指定DESC关键字。
2,DESC相反的关键字是ASC,但实际上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也
不指定DESC,则假定为ASC)
3,ORDER BY子句,必须是SELECT语句中的最后一条子句

引用:

区分大小写和排序顺序 在对文本性的数据进行排序时,A与a相同吗?a位于B之前还是位于Z之后?这些问题不是理论问题,其答案取决于数据库如何设置。在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为。但是,许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做)。这里,关键的问题是,如果确实需要改变这种排序顺序,用简单的ORDER BY子句做不到。你必须请求数据库管理员的帮助

相关文章

网友评论

      本文标题:Mysql第五章 - 排序检索数据ORDER BY

      本文链接:https://www.haomeiwen.com/subject/tedhpdtx.html