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


这篇文章主要介绍“MySQL中的聚合查询和联合查询怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中的聚合查询和联合查询怎么实现”文章能帮助大家解决问题。函数说明count查询到的数据的数量sum查询到的数据的总和(针对数值,否则无意义)avg查询到的数据的平均值(针对数值,否则无意义)max查询到的数据的最大值(针对数值,否则无意义)min查询到的数据的最小值(针对数值,否则无意义)select中使用 group by子句可以对指定列进行分组查询。使用 group by进行分组查询时,select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中。group by子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用Having关于分组查询指定条件有三种情况:1.分组之前,指定条件(先筛选,再分组)用where2.分组之后,指定条件(先分组,再筛选)用having3.分组之前和分组之后都指定条件(先where后having)关于执行顺序:多表查询是对多张表的数据取笛卡尔积,笛卡尔积是通过排列组合算出来的,因此包含了很多无效数据,因此需要加上连接条件,用来筛选有效的数据。1.首先计算笛卡尔积2.引入连接条件(如:where student.id = score.student_id)3.再根据需求,加入必要的条件(where where st免费云主机域名udent.id = score.student_id and student.name=’xxx’)4.去掉多余的列,只保留需要关注的列(select student.name,score.score from student,score where where student.id = score.student_id and student.name=’xxx’)语法:select 字段 from 表1 (as)别名1 [inner] join 表2 (as)别名2 on 连接条件 and 其他条件;select 字段 from 表1 (as)别名1,表2 (as)别名2 where 连接条件 and 其他条件;示例:查询“张三”同学的成绩或者外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接。语法:左外连接,表1完全显示select 字段名from 表名1 left join 表名2 on 连接条件;右外连接,表2完全显示select 字段 from 表名1 right join 表名2 on连接条件;自连接是指在同一张表中连接自身进行查询。示例:显示所有“数学”成绩比“语文”成绩高的学生成绩信息先查询“数学”和“语文”课程的idselectid,name fromcourse wherename=’数学’ orname=’语文’;数学id=1;语文id=2;再查询成绩表中,“数学”成绩比“语文”成绩 好的信息子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。单行子查询:返回一行记录的子查询多行子查询:返回多行记录的子查询1.使用(not) in 关键字使用inselect* fromscore wherecourse_id in(selectid fromcourse wherename=’语文’ orname=’英文’);使用not inselect* fromscore wherecourse_id not in(selectid fromcourse wherename!=’语文’ andname!=’英文’);1.使用(not) exists 关键字使用existsselect* fromscore sco whereexists (selectsco.id fromcourse couwhere(name=’语文’ orname=’英文’) andcou.id= sco.course_id);使用not existsselect* fromscore sco where notexists (selectsco.id fromcourse couwhere(name!=’语文’ andname!=’英文’) andcou.id= sco.course_id);在from子句中使用子查询,把一个子查询当做一个临时表使用。(not)in是放在内存中的,如果查询的数据太大,内存中放不下,此时就需要使用(not)exists。exists本质上就是让数据库执行多个查询操作,并把结果放在磁盘中,因此对于exists来说,执行效率大大低于in,而且可读性也不是很好,这种比较适合处理一些特殊的场景。合并查询本质上就是把两个查询结果集合并成一个,但是要求这两个结果集的列一样,才能合并。即:为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用union和union all时,前后查询的结果集中,字段需要一致。1.union关键字用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。示例:或者使用or来实现2.union all关键字用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。示例:可以看到结果集中出现重复数据关于“MySQL中的聚合查询和联合查询怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: 基于C语言如何实现钻石棋游戏

这篇文章主要介绍了基于C语言如何实现钻石棋游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C语言如何实现钻石棋游戏文章都会有所收获,下面我们一起来看看吧。这是一个单人钻石棋游戏,游戏中有两种颜色的棋子:红色和绿色。每个玩家在…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/25 17:41
Next 05/25 17:41

相关推荐