MySQL数据库学习之排序查询和分组查询

第二章

第一节 排序查询 

	案例:按薪水降序排序
		mysql> select ename,sal from emp order by sal desc;
		+--------+---------+
		| ename  | sal     |
		+--------+---------+
		| Andrew | 6000.00 |
		| jenny  | 5500.00 |
		| White  | 4500.00 |
		| Jack   | 4000.00 |
		| cathy  | 4000.00 |
		| merry  | 3500.00 |
		| Andy   | 3500.00 |
		| Angus  | 3000.00 |
		| lucy   | 2800.00 |
		| Hellen | 2700.00 |
		| ford   | 2700.00 |
		| Jacob  | 2700.00 |
		+--------+---------+

	案例:按薪水升序排序(asc可以省略)
		mysql> select ename,sal from emp order by sal asc;
		+--------+---------+
		| ename  | sal     |
		+--------+---------+
		| Hellen | 2700.00 |
		| ford   | 2700.00 |
		| Jacob  | 2700.00 |
		| lucy   | 2800.00 |
		| Angus  | 3000.00 |
		| merry  | 3500.00 |
		| Andy   | 3500.00 |
		| Jack   | 4000.00 |
		| cathy  | 4000.00 |
		| White  | 4500.00 |
		| jenny  | 5500.00 |
		| Andrew | 6000.00 |
		+--------+---------+
	
	案例:按薪水升序,姓名降序排序(asc可以省略)
		mysql> select ename,sal from emp order by sal asc,ename desc;

第二节 数据处理函数/单行处理函数

	lower、upper、substr、length、trim
		案例:把名字大写显示,字段重命名
		mysql> select upper(ename) as name from emp;
		+--------+
		| name   |
		+--------+
		| JACK   |
		| WHITE  |
		| CATHY  |
		| MERRY  |
		| LUCY   |
		| HELLEN |
		| JENNY  |
		| ANDREW |
		| FORD   |
		| ANGUS  |
		| ANDY   |
		| JACOB  |
		+--------+
	
		案例:把名字一部分显示出来
		mysql> select substr(ename,1,3) as ename from emp;
		+-------+
		| ename |
		+-------+
		| Jac   |
		| Whi   |
		| cat   |
		| mer   |
		| luc   |
		| Hel   |
		| jen   |
		| And   |
		| for   |
		| Ang   |
		| And   |
		| Jac   |
		+-------+

第三节 分组查询

		分组函数/聚合函数/多行处理函数
		--count、sum、avg、max、min
		--group by 【表示通过哪个或者哪些字段进行分组】
		--having【having和where功能相同,where在group by之前完成过滤,having在group by之后完成过滤】
		案例:按照工作进行分组,求每种工作的最大薪水
		mysql> select job,max(sal) from emp group by job;
		+-----------+----------+
		| job       | max(sal) |
		+-----------+----------+
		| salesman  |  5500.00 |
		| Manager   |  6000.00 |
		| Secretary |  4000.00 |
		| Analyst   |  3500.00 |
		| Assistant |  3000.00 |
		| Typist    |  2700.00 |
		+-----------+----------+
		案例:求不同部门不同工作的最大薪水
		mysql> select deptno,job,max(sal) from emp group by deptno,job;
		+--------+-----------+----------+
		| deptno | job       | max(sal) |
		+--------+-----------+----------+
		|      3 | salesman  |  5500.00 |
		|      2 | Manager   |  4500.00 |
		|      1 | Secretary |  4000.00 |
		|      4 | Analyst   |  3500.00 |
		|      5 | Assistant |  2800.00 |
		|      6 | Typist    |  2700.00 |
		|      1 | Manager   |  6000.00 |
		|      7 | salesman  |  3500.00 |
		|      3 | Assistant |  3000.00 |
		|      2 | Secretary |  2700.00 |
		+--------+-----------+----------+
		案例:找出每种工作岗位的平均薪水,要求显示平均薪水大于1500
		mysql> select job,avg(sal) from emp group by job having avg(sal)>1500;
		+-----------+-------------+
		| job       | avg(sal)    |
		+-----------+-------------+
		| salesman  | 3925.000000 |
		| Manager   | 5250.000000 |
		| Secretary | 3350.000000 |
		| Analyst   | 3500.000000 |
		| Assistant | 2900.000000 |
		| Typist    | 2700.000000 |
		+-----------+-------------+

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值