聚合与分组
1、分组查询
select 字段 from 表 group by 字段;
select 字段,count(*) from 表 group by 字段;
在分组的情况下,只能够出现分组字段和聚合字段,其他的字段没有意义,会报错!!!
2、聚合筛选(having)
select 字段1 from 表名 group by 字段1,字段2 having 字段2>=80;
加having条件表达式,可以对输出的结果做出限制。
如果一个查询语句中同时包含了别名(as),聚合函数,where,having,优先执行where,然后执行聚合函数和别名,最后执行having!!
3、子查询
将一个查询的结果留下来用语下一次查询(select中嵌套select)
要求:
1)嵌套在查询内部。
2)必须始终出现在圆括号内。
4、内连接(inner join)
1)无条件内连接:
无条件内连接,又名交叉连接/笛卡尔连接
第一张表中的每一项会和另一张表的每一项一次组合
Mysql>select * from student [inner] join scoren
2)有条件内连接:
在无条件内连接的基础上,加上一个on子局
当连接的时候,筛选出那些有实际意义的记录来进行组合
Mysql>select * from student inner join scoren on dept_id =id;