我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL聚合查询与联合查询操作的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL聚合查询与联合查询操作的示例分析

这篇文章主要为大家展示了“MySQL聚合查询与联合查询操作的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL聚合查询与联合查询操作的示例分析”这篇文章吧。

一. 聚合查询

1.聚合函数(count,sum,avg...)

常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有:

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

  • 注意最后面都是可以加上where,order by这些语句的,这些聚合函数会根据这些语句的结果集来进行查询

  • 后面最好不要加上limit,因为MySQL的limit和别的数据库的limit不一样

  • 有使用统计列的聚合函数的时候,避免再写上其他列,不然会出现这种无意义显示第一列的情况

MySQL聚合查询与联合查询操作的示例分析

注意点:

count:可以使用count(*),count(0),count(1)这样,说白了实际上和select 1 from整个表是一样的道理,这个count里面的0,1只是作为参数传入而已,先select 1,然后再统计count的值

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

sum,max,min,avg都不可以传入*,必须传入字段或者表达式使用

avg可以和sum结合起来用,聚合函数都可以多个一起用

2.GROUP BY子句

SELECT 中使用 GROUP BY 子句可以对指定列进行分组查询。需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。

  • Select后面的聚合函数是等Group by执行完分组以后才进行的

  • Group by语句的实质就是分组,常配合聚合查询使用

语法:

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

Select指定的字段必须是group by后面有的,没有的只能出现在聚合函数中,不然会出问题

GROUP BY注意事项

Group by语句的实质就是分组,常配合聚合查询使用

只要有聚合函数出现,就可能要分组

分组操作中,查询允许的是分组字段,聚合函数,其他非分组字段需要保证分组后没有多行(如学生id分组,查询字段可以有学生姓名,因为学生id分组以后,只有一行)

分组前过滤条件用where,分组后用having(代码是顺序执行的)

执行顺序:from > on> join > where > group by > with > having >select > distinct > order by > limit

  • 最先从from开始执行,所以别名一般都在from这里命名,你在select命名也可以,不过select较后面执行,命名了前面执行那些地方都用不了。

  • Limit永远在最后执行

---select classid,average(score) from student where score>60 group by classid havinng classid<=3

先找出score > 60的行,然后按照classid分组,得到的结果里面,再选出class <=3的行,显示出分数总和(显示出1,2,3各班的分数大于60分的学生的平均分)

group by 就是将重复的行合并成一行

group by 很多个字段的时候,可能没有合并,但是达到了分组的效果,可以使用聚合函数了。

3.HAVING

GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING。HAVING是在GROUP BY 后面执行的

MySQL聚合查询与联合查询操作的示例分析

二. 联合查询((重点)多表)

1.内连接

语法:

MySQL聚合查询与联合查询操作的示例分析

这里第二个方法的话,你可能不知道哪个是连接条件,哪个是筛选结果集的条件。用哪种都行,还是优先用第一种吧,为了和后面的外连接对应。内连接就相当于是在得到的笛卡尔积上给了连接条件

MySQL聚合查询与联合查询操作的示例分析

这里要是不group by进行分组的话,就会像下面这样只有一行,相当于是把所有学生的所有成绩全部加起来了。但是我们这里需要的是单个学生的总成绩,所以我们要先按学生id进行分组。

MySQL聚合查询与联合查询操作的示例分析

2.外连接

外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接。

注意点:

  • 左连接:左表的数据不会依据连接条件(on后面的部分,包括and上去的)过滤而全部显示,其他条件还是可以过滤,比如后面再加上where等条件。

  • 如果右表有数据有不满足连接条件的值,右表数据会显示null,左表全显示

语法:(注意:On后面还能跟上where)

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

同样的查询方法,这次能显示出第8名成绩为空的学生的信息,左表也就是student表中的数据会全部显示出来,不会受到连接条件stu.id = sco.student_id这一连接条件的影响,如果是之前的内连接,就显示不出老外学中文这一学生的信息,因为在sco表中根本就没有老外学中文这一学生的id。

3.自连接

自连接是指在同一张表连接自身进行查询。

使用场景:同一张表,多行进行比较。

注:自连接查询也可以使用join on语句来进行查询。

MySQL聚合查询与联合查询操作的示例分析

4.子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

查询与“不想毕业” 同学的同班同学:(自连接)

MySQL聚合查询与联合查询操作的示例分析

多行子查询:返回多行记录的子查询(用的多)

案例:查询“语文”或“英文”课程的成绩信息:(内连接)

MySQL聚合查询与联合查询操作的示例分析

MySQL聚合查询与联合查询操作的示例分析

这里的group by没有起到合并的作用,但是起到了分组的作用

MySQL聚合查询与联合查询操作的示例分析

5.合并查询

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用UNION和UNION ALL时,前后查询的结果集中,字段需要一致

**有些情况下,多张表之间没法关联,但是要查询一样字段的数据

**union的效率比or高

  • union

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行(取到的数据内容完全一样的时候,会自动去重)。

案例:查询id小于3,或者名字为“英文”的课程:

MySQL聚合查询与联合查询操作的示例分析

  • union all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。(取到的数据完全一样的时候,都会显示出来,不会进行去重)

案例:查询id小于3,或者名字为“Java”的课程

MySQL聚合查询与联合查询操作的示例分析

以上是“MySQL聚合查询与联合查询操作的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL聚合查询与联合查询操作的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL聚合查询与联合查询操作的示例分析

这篇文章主要为大家展示了“MySQL聚合查询与联合查询操作的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL聚合查询与联合查询操作的示例分析”这篇文章吧。一. 聚合查询1.聚合函
2023-06-29

MYSQL聚合查询、分组查询、联合查询举例详解

目录聚合查询聚合函数count()sum()avg()max()和min()总结分组查询group by 子句having 子句联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询合并查询总结 聚合查询聚合查
MYSQL聚合查询、分组查询、联合查询举例详解
2024-09-23

MySQL中的聚合查询和联合查询操作代码

目录一、聚合查询(行编程与行之间的计算)1.常见的聚合函数有:2.group by3.having二、联合查询(多表查询)1.进行联合查询的步骤:2.内连接(from,join on)3.外连接(left/right join on)4.自
2023-03-20

MySQL三表联合查询操作举例

目录一、题目概述二、查询思路三、错误总结附:sql 三个表联合查询(三表左联查询)总结一、题目概述给定三张表(学生表、科目表、成绩表),查出各科成绩最高的学生的信息(学号、姓名、科目名称、成绩)。三张表下所示。二、查询思路1.查询出各科
2023-03-06

MySQL中的聚合查询和联合查询怎么实现

这篇文章主要介绍“MySQL中的聚合查询和联合查询怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中的聚合查询和联合查询怎么实现”文章能帮助大家解决问题。一、聚合查询(行与行之间的计
2023-07-05

MySQL 数据库约束、聚合查询和联合查询使用案例

目录数据库约束约束类型使用案例聚合查询聚合函数使用案例GROUP BY子句HAVING 联合查询内连接外连接 自连接 联合查询使用案例子查询子查询案例合并查询合并查询案例数据库约束约束类型数据库的约束类型主要包括以下几种:主键约束(P
MySQL 数据库约束、聚合查询和联合查询使用案例
2024-08-27

Java Fluent Mybatis聚合查询与apply方法流程的示例分析

这篇文章将为大家详细讲解有关Java Fluent Mybatis聚合查询与apply方法流程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据准备为了聚合查询的条件,添加了几条数据。MIN我们
2023-06-25

mysql连接查询、联合查询、子查询原理与用法实例详解

本文实例讲述了mysql连接查询、联合查询、子查询原理与用法。分享给大家供大家参考,具体如下: 本文内容:连接查询联合查询子查询from子查询where子查询exists子查询首发日期:2018-04-11连接查询:连接查询就是将多个表联合
2022-05-12

MySQL中的多表联合查询功能操作

目录一.介绍数据准备交叉连接查询 内连接查询外连接子查询特点子查询关键字all关键字any关键字和some关键字in关键字exists关键字 自关联查询总结一.介绍多表查询就是同时查询两个或两个以上的表,因为有的时候用户在查看数据的时候
2023-02-01

编程热搜

目录