美文网首页
Mysql 的 select 语法使用(二)

Mysql 的 select 语法使用(二)

作者: 改昵称已被占用 | 来源:发表于2020-04-08 23:54 被阅读0次
    timg.jpeg

    本节将介绍如何使用 select 语句的 order by 子句,根据需要排序检索出的数据

    order by 子句

    子句通常由一个关键字和所提供的数据组成

    order by 简单使用

    select * 
    from student
    order by sage;
    

    此 sql 语句表示查询所有出 student 表中的所有数据,并按照 sage 字段进行升序排序,输出为:

    +------+--------+---------------------+------+
    | SId  | Sname  | Sage                | Ssex |
    +------+--------+---------------------+------+
    | 07   | 郑竹   | 1989-07-01 00:00:00 | 女   |
    | 01   | 赵雷   | 1990-01-01 00:00:00 | 男   |
    | 03   | 孙风   | 1990-05-20 00:00:00 | 男   |
    | 04   | 李云   | 1990-08-06 00:00:00 | 男   |
    | 02   | 钱电   | 1990-12-21 00:00:00 | 男   |
    | 05   | 周梅   | 1991-12-01 00:00:00 | 女   |
    | 06   | 吴兰   | 1992-03-01 00:00:00 | 女   |
    | 12   | 赵六   | 2017-01-01 00:00:00 | 女   |
    | 09   | 张三   | 2017-12-20 00:00:00 | 女   |
    | 10   | 李四   | 2017-12-25 00:00:00 | 女   |
    | 11   | 李四   | 2017-12-30 00:00:00 | 女   |
    | 13   | 孙七   | 2018-01-01 00:00:00 | 女   |
    +------+--------+---------------------+------+
    

    order by 按多列排序

    select * 
    from student
    order by sage, sid;
    

    此 sql 语句表示查询所有出 student 表中的所有数据,并按照 sage 字段进行升序排序,当 sage 字段内容一样,则按照 sid 的升序进行排序,输出为:

    +------+--------+---------------------+------+
    | SId  | Sname  | Sage                | Ssex |
    +------+--------+---------------------+------+
    | 07   | 郑竹   | 1989-07-01 00:00:00 | 女   |
    | 01   | 赵雷   | 1990-01-01 00:00:00 | 男   |
    | 03   | 孙风   | 1990-05-20 00:00:00 | 男   |
    | 04   | 李云   | 1990-05-20 00:00:00 | 男   |
    | 02   | 钱电   | 1990-12-21 00:00:00 | 男   |
    | 05   | 周梅   | 1991-12-01 00:00:00 | 女   |
    | 06   | 吴兰   | 1992-03-01 00:00:00 | 女   |
    | 12   | 赵六   | 2017-01-01 00:00:00 | 女   |
    | 09   | 张三   | 2017-12-20 00:00:00 | 女   |
    | 10   | 李四   | 2017-12-25 00:00:00 | 女   |
    | 11   | 李四   | 2017-12-30 00:00:00 | 女   |
    | 13   | 孙七   | 2018-01-01 00:00:00 | 女   |
    +------+--------+---------------------+------+
    

    order by 制定排序方向

    select * 
    from student
    order by sage desc;
    

    此 sql 语句表示查询所有出 student 表中的所有数据,并按照 sage 字段进行降序排序,输出为:

    +------+--------+---------------------+------+
    | SId  | Sname  | Sage                | Ssex |
    +------+--------+---------------------+------+
    | 13   | 孙七   | 2018-01-01 00:00:00 | 女   |
    | 11   | 李四   | 2017-12-30 00:00:00 | 女   |
    | 10   | 李四   | 2017-12-25 00:00:00 | 女   |
    | 09   | 张三   | 2017-12-20 00:00:00 | 女   |
    | 12   | 赵六   | 2017-01-01 00:00:00 | 女   |
    | 06   | 吴兰   | 1992-03-01 00:00:00 | 女   |
    | 05   | 周梅   | 1991-12-01 00:00:00 | 女   |
    | 02   | 钱电   | 1990-12-21 00:00:00 | 男   |
    | 04   | 李云   | 1990-08-06 00:00:00 | 男   |
    | 03   | 孙风   | 1990-05-20 00:00:00 | 男   |
    | 01   | 赵雷   | 1990-01-01 00:00:00 | 男   |
    | 07   | 郑竹   | 1989-07-01 00:00:00 | 女   |
    +------+--------+---------------------+------+
    

    desc 关键字只应用到直接位于其前面的列名,如果想在多个列上进行降序排序, 必须对每列指定 desc 关键字

    select * 
    from student
    order by sage, sid desc;
    

    此 sql 语句表示查询所有出 student 表中的所有数据,并按照 sage 字段进行升序排序,当 sage 字段内容一样,则按照 sid 的降序进行排序,输出为:

    +------+--------+---------------------+------+
    | SId  | Sname  | Sage                | Ssex |
    +------+--------+---------------------+------+
    | 07   | 郑竹   | 1989-07-01 00:00:00 | 女   |
    | 01   | 赵雷   | 1990-01-01 00:00:00 | 男   |
    | 03   | 孙风   | 1990-05-20 00:00:00 | 男   |
    | 04   | 李云   | 1990-05-20 00:00:00 | 男   |
    | 02   | 钱电   | 1990-12-21 00:00:00 | 男   |
    | 05   | 周梅   | 1991-12-01 00:00:00 | 女   |
    | 06   | 吴兰   | 1992-03-01 00:00:00 | 女   |
    | 12   | 赵六   | 2017-01-01 00:00:00 | 女   |
    | 09   | 张三   | 2017-12-20 00:00:00 | 女   |
    | 10   | 李四   | 2017-12-25 00:00:00 | 女   |
    | 11   | 李四   | 2017-12-30 00:00:00 | 女   |
    | 13   | 孙七   | 2018-01-01 00:00:00 | 女   |
    +------+--------+---------------------+------+
    

    ps:order by 关键字结合 limit 关键字可以查找出学生中年龄最大或最小的学生

    select * 
    from student
    order by sage desc
    limit 1;
    

    此 sql 语句通过对 sage 字段进行降序排序,并使用 limit 关键字去处第一条来查询出年龄最小的学生,输出为:

    +------+--------+---------------------+------+
    | SId  | Sname  | Sage                | Ssex |
    +------+--------+---------------------+------+
    | 13   | 孙七   | 2018-01-01 00:00:00 | 女   |
    +------+--------+---------------------+------+
    

    在给出 order by 子句时,应该保证它位于 from 子句之后。如果使用 limit,它必须位于 order by 之后。使用子句的次序不对将产生错误消息

    相关文章

      网友评论

          本文标题:Mysql 的 select 语法使用(二)

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