MySQL——DQL语言基础(3)

排序查询

引入:

        select *from employees;

语法:

        select 查询列表

        from 表

        【where 筛选条件】

        order by 排序列表 【asc|desc】

特点:

        1、asc代表的是升序,desc代表的是降序

            如果不写,默认是升序;

        2、order by子句中可以支持单个字段、多个字段、表达式、函数、别名;

        3、order by子句一般是放在查询语句的最后面,limit子句除外。

例1:查询员工信息,要求工资从高到低排序

SELECT * FROM employees ORDER BY salary DESC;


降序的话把 dese改成asc即可

SELECT * FROM employees ORDER BY salary ASC;


例2:查询部门编号>=90的员工信息,按入职时间的先后进行排序【添加筛选条件】

SELECT

  *

FROM

  employees

WHERE department_id >= 90

ORDER BY hiredate ASC;


例3:按年薪的高低显示员工的信息和 年薪【按表达式排序】

SELECT *,salary*12*(1+IFNULL(commission_pct,0))年薪

FROM employees

ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;

例4:按年薪的高低显示员工的信息和 年薪【按别名排序】

SELECT *,salary*12*(1+IFNULL(commission_pct,0))年薪

FROM employees

ORDER BY 年薪 DESC;

从这个例子中可以知道 排序是支持别名的

例5:按名字的长度显示员工的姓名和工资【按函数排序】

SELECT LENGTH(last_name)字节长度,last_name,salary

FROM employees

ORDER BY LENGTH(last_name) DESC;

例6:查询员工信息,要求先按工资排序,再按员工编号排序【按多个字段排序】

SELECT *

FROM employees

ORDER BY salary ASC,employee_id DESC;


在这个例子中,多字段排序时salary是按升序排的,而employee_id是按降序排的,但是因为在这个查询语句中salary写在前面,即先按写在前面的进行排序,在排到同样的值的时候,再通过第二个条件进行排序。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数据库学习笔记 DB:数据库(database):存储数据的“仓库” DBMS:数据库管理系统、数据库软件(产品)...
    xinmin阅读 295评论 0 0
  • oracle数据库 前言 oracle sql 第一章 Selecting Rows 第二章 Sortin...
    冰川_阅读 1,054评论 0 0
  • 进阶1:基础查询 /*语法:select 查询列表 from 表名; 类似于:System.out.println...
    雪上霜阅读 1,295评论 0 0
  • 什么是SQL SQL是Structured Quevy Language(结构化查询语言)的缩写。 ​ SQL...
    我叫吴智斌阅读 2,042评论 1 9
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 6,136评论 0 5

友情链接更多精彩内容