目录
1.mysql聚合函数:
2.having(用来过滤数据):
HAVING 不能单独使用,必须要跟 GROUP BY 一起使用
WHERE 与 HAVING 的对比
3.升序和降序
4.等于
5.实战demo:
1.mysql聚合函数:
常用的聚合函数有:COUNT(),SUM(),AVG(),MIN(),MAX()。
2.having(用来过滤数据):
HAVING 不能单独使用,必须要跟 GROUP BY 一起使用
注意:
要求1:如果过滤条件中使用了聚合函数,则必须使用 HAVING 来替换 WHERE ,否则报错.
要求2: HAVING 必须声明在 GROUP BY 的后面。
要求3:开发中,我们使用 HAVING 的前提是SQL中使用了 GROUP BY 。
WHERE 与 HAVING 的对比
1.从适用范围上来讲,HAVING的适用范围更广。
2.如果从过滤条件中没有聚合函数:这种条件下,WHERE的执行效率要高于 HAVING。(where效率高的原因:WHERE 是先筛选后连接,而 HAVING 是先连接后筛选。 这一点,就决定了在关联查询中,WHERE 比 HAVING 更高效。)
综上,有聚合函数用HAVING,没有聚合函数用WHERE。
3.升序和降序
升序asc,从小到大
降序desc,从大到小
4.等于
使用=
5.三种join的区别
left join
表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。
right join
表1右连接表2,以右为主,表示以表2为主,关联查询表1的数据,查出表2所有数据以及表1和表2有交集的数据,
join
其实就是“inner join”,为了简写才写成join,两个是表示一个的,内连接,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来
6.实战demo:
mysql常见题目:图解SQL面试题:经典50题 - 知乎