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
 …

mysql 排序某个状态排在最前面_mysql


本次总结必须要记住的重点:

分组函数
输入多行,最终输出结果1行

分组函数自动忽略NULL

SQL语句当中有一个语法规则,分组函数不可直接出现在where函数中
原因
group by 在 where执行后执行。

单行处理函数

输入一行,输出一行