0
点赞
收藏
分享

微信扫一扫

MySQL分组统计与多表联合查询的基本知识归纳总结


一 分组统计

count( )    统计记录数

MySQL分组统计与多表联合查询的基本知识归纳总结_字段


min( )    统计指定字段的最小值

MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_02


max( )    统计指定字段的最大值

MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_03


avg( )    统计指定字段的平局值

MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_04


sum( )    统计指定字段的和

MySQL分组统计与多表联合查询的基本知识归纳总结_字段_05


group by    对指定字段进行分组



1

2


-- 统计student表中每个年龄的总数selectage,count(age) fromstudent groupbyage;


having    对分组后的数据进行条件筛选,与where相似,但是只针对分组后的数据,where无法筛选聚合函数

MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_06


MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_07

二 多表联合查询

笛卡尔积

​笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。​

MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_08


inner join    内连接,也叫等值连接,查询符合A表与B表匹配关系的数据

MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_09


注释 :​ join ​与 ​inner join ​是一样的效果,所以在使用inner join时可将inner省略。

显式( explicit ) inner join 与 隐式( implicit )inner join

MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_10


left join    左连接,从左表产生一套完整的记录,与匹配的记录(右表) .如果没有匹配,右侧将包含null。

MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_11


注释 :​ left join ​与 ​left outer join ​是一样的效果,所以在使用left outer join时可将outer省略

right join    右连接,从右表产生一套完整的记录,与匹配的记录(左表) .如果没有匹配,右侧将包含null。

MySQL分组统计与多表联合查询的基本知识归纳总结_字段_12


full join    全连接,产生的所有记录(双方匹配记录)在表A和表B。如果一张表没有匹配,则另一张表将包含null。

MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_13


自连接    与表自身进行检索操作,in other words 就是与另一张一模一样的表进行join关联操作

MySQL分组统计与多表联合查询的基本知识归纳总结_自连接_14

注释:​可以看出​子查询​的方式需要​查询2次student表​,而​自连接​的方式是​笛卡尔积​,只需要查询一次student表,效率方面肯定是高于子查询方式的,所以​在能够使用自连接方式查询的时候尽量不要使用子查询


MySQL分组统计与多表联合查询的基本知识归纳总结_字段_15

MySQL分组统计与多表联合查询的基本知识归纳总结_字段_16MySQL分组统计与多表联合查询的基本知识归纳总结_字段_17MySQL分组统计与多表联合查询的基本知识归纳总结_子查询_18MySQL分组统计与多表联合查询的基本知识归纳总结_字段_19



举报

相关推荐

0 条评论