数据库学习(四)

时间:2022-06-01 19:20:53

 聚合与分组


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;