MySQL学习 第二天
- 分组函数
- 单行处理函数
- group by 和 having
- 本次总结必须要记住的重点:
个人总结的可能不是很好 ,有不对的请说哦。
模糊查询(like)
在模糊查询中,必须掌握两个特殊的符,一个是%,一个是_
%
代表多个字符。
_
代表任意1个字符。
排序
升序
select eanme,sql from emp order by sql;
注意
默认是升序。怎么指定升序或者降序呢?asc表示升序,desc表示降序。
select ename,sql from emp order by sql asc;
select ename,sql from emp order by sql asc;
越靠前的字段越能起到主导作用,只有当前面的字段无法排序,才会启动后面的字段。
随便说一下 order是最后执行的
分组函数
- count 计数
- sum 求和
- avg 平均值
- max 最大值
- min 最小值
记住
所有的分组函数都是对“某一组”数据进行操作。
求和 sum
select sum(sal) from emp;
最大值 max
select max(sal) from emp;
最小值 min
select min(sal) from emp;
平均值 avg
select avg(sal) from emp;
计数 count
select count(ename) ftom emp;
分组函数一共个。分组函数还有另一个名字,多行处理函数,多行处理函数的特点:输入多行,最终输出结果1行。
重点
分组函数自动忽略NULL。
记住
count() 和 count(具体的某个字段),他有什么区别呢
cout() 不是统计某个字段中的数据个数,而是统计总记录条数。(和某个字段物关)
count(具体的某个字段) 表示统计cornm不为NULL的总数量。
分组函数也可以组合来使用
案例:
select count(*),sum(sal),avg(sal),max(sal) from emp;
单行处理函数
什么是单行处理函数
输入一行,输出一行。
注意:
所有数据库都是这样的,只要有NULL参与的运算结果一定是NULL。
ifnull空处理函数:
ifnull ( 可能为NULL的数据 , 被当作什么处理 )
属于单行处理函数。
注意重点:
SQL语句当中有一个语法规则,分组函数不可直接出现在where函数中。
原因
group by 在 where执行后执行。
group by 和 having
guroup by:按照某个字段或者某些字段精选分组。
having:having是对分组之后的数据进行再次过过滤
案例: 找出每个工作岗位最高薪资。
select may(sal) from emp group group by job;
注意:
分组函数一般都会和group by联合使用,这也是为什么会被称呼为分组函数的原因。并且然后一个分组函数(count,sum,avg,max,min)都是在group by语句执行结束后才会执行。当一条sql语句中没有group by的话,整张表自成一组。
执行顺序
select 5
…
from 1
…
where 2
…
group by 3
…
having 4
…
order 6
…
selectfromwheregrouphavingoreber
本次总结必须要记住的重点:
分组函数
输入多行,最终输出结果1行
分组函数自动忽略NULL
SQL语句当中有一个语法规则,分组函数不可直接出现在where函数中。
原因
group by 在 where执行后执行。
单行处理函数
输入一行,输出一行