MySQL数据库(三)

前言

聚合查询、分组查询、联合查询是数据库知识中最重要的一部分,是将表的行与行之间进行运算。

784852ccb4d64958ac228cde40c72314.jpeg (1440×1080)

目录

前言

一、聚合查询

(一)聚合函数

1、count 

2、sum

3、avg

4、max

5、min

二、分组查询

(一)group by

(二)指定条件筛选

1、分组前筛选,使用where条件

2、分组后筛选,使用having条件

3、同时分组前和分组后筛选

三、联合查询(多表查询)

(一)内连接

(二)外连接

1、左外连接

2、右外连接

3、外连接多个表

(三)自连接

(四)子查询

(五)合并查询 union

四、新增和查询联合

结语


一、聚合查询

(一)聚合函数

函数与括号之间不能有空格

1、count 

查询到的数据的数量,null不会计入结果

select count(列名) from 表名;

同时,也可以使用全列查询:

select count(*) from 表名;

2、sum

查询到的数据的总和,null不会计入结果、不是数字没有意义,不能进行全列查询

select sum(列名) from 表名;

3、avg

查询到的数据的平均值,不是数字没有意义,不能进行全列查询

select avg(列名) from 表名;

4、max

查询到的数据的最大值,不是数字没有意义,不能进行全列查询

select max(列名) from 表名;

5、min

查询到的数据的最小值,不是数字没有意义,不能进行全列查询

select min(列名) from 表名;

二、分组查询

(一)group by

指定一个列,把列里面相同的值分为一组进行查询

列如:

 同时,select 指定的列,要么是带有聚合函数的要么是group by 指定的列不能是一个非聚合非group by 的列,否则查询结果无意义。

(二)指定条件筛选

1、分组前筛选,使用where条件

2、分组后筛选,使用having条件

3、同时分组前和分组后筛选

三、联合查询(多表查询)

联合查询是将多个表结合起来,列如有表emp、表staff,有如下信息:

 将该两个表进行笛卡尔积,得到:

 此时,列数是两个表的列数之和,行数是两个表的行数之积。

(一)内连接

select *from 表1,表2;

也可以在结合两表时,加一些条件限制表的内容:

select *from 表1,表2 where 条件;

也可以使用join on 表达式,列如:

select *from 表1 join 表2 on 条件;

针对多个表时:

select *from 表1 join 表2 on 条件 join 表3 on 条件;

(二)外连接

可查询数据不是一一对应的若干表,无数据时用null填充

1、左外连接

select *from 表1 left join 表2 on 条件;

以表1为准,表1中所有的数据体现出现

2、右外连接

select *from 表1 right join 表2 on 条件;

以表2为准,表2中所有的数据体现出现

3、外连接多个表

select *from 表1 left/right join 表2 on 条件 left/right join 表3 on 条件;

(三)自连接

自连接就是自己和自己连接,本质就是把行关系转为列关系

自连接需要指定表的别名!!

select *from 表1 as a,表2 as b;

(四)子查询

把多条查询语句合并成一条

列如:

(五)合并查询 union

把两条查询结果合并在一起

select *from 表名 where 条件1 union select *from 表名 where 条件2;

union all 不会去重;    union 会自动去重

四、新增和查询联合

把查询结果作为新增的数据

查询结果的数据类型必须和插入表的数据类型匹配(个数、类型)

insert into 表1(列名,列名..) select 列名,列名.. from 表2;

将表2中的数据复制到表1当中。

也可以写成:

insert into 表1 select *from 表2;

结语

SQL查询中各个关键字的执行先后顺序:

from > on > join > where > group by > with > having > select > distinct > order by > limit

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐,谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/17556.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python手写算法】利用梯度下降实现线性拟合

利用梯度下降实现线性拟合,效果和sklearn LinearRegression()差不多。 学习率初始设置为0.1结果算高的,直接让我的参数变成了nan。(体会到了飞出去的感觉) 把学习率调小了之后就正常了 # codingutf-8 import matplotlib.pyplot a…

<数据结构>NO9.选择类排序|直接选择排序|堆排序

文章目录 选择排序1.直接选择排序优化直接选择排序 2. 堆排序 选择排序 基本思想 选组排序是从待排序数据中选出最大/最小的元素放入到序列的起始位置,直到待排序数据全部有序。 直接选择排序和堆排序的基本思想均符合选择排序。 1.直接选择排序 假设数据按升序…

时间序列预测 | Matlab基于粒子群算法(PSO)优化径向基神经网络(PSO-RBF)的时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测| Matlab基于粒子群算法(PSO)优化径向基神经网络(PSO-RBF)的时间序列预测 评价指标包括:MAE、MBE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warni…

改进二进制粒子群算法在配电网重构中的应用(Matlab实现)【论文复现】

目录 0 概述 1 配电网重构的目标函数 2 算例 3 matlab代码实现 0 概述 配电系统中存在大量的分段开关和联络开关,配电网重构正是通过调整分段开关和联络升大的组合状态来变换网络结构,用于优化配电网某些指标,使其达到最优状态。正常运行时,则通过两…

高效工作:ADManager Plus的利器

在当今快节奏的商业环境中,高效的工作是成功的关键。对于IT管理员来说,管理和维护Active Directory(AD)环境是一项重要的任务。然而,手动处理繁琐的AD管理任务可能会占用大量的时间和精力,影响工作效率。为…

RLHF-基于人类反馈的强化学习

RLHF 文章目录 RLHF强化学习基础回顾为什么要使用基于人类反馈的强化学习大纲RLHF的起源大预言模型中的RLHF案例 ChatGPT RLHF中的技术细节预训练语言模型训练奖励模型基于RL进行微调 RLHF 的未来 强化学习基础回顾 智能体通过采取行动与环境进行交互,并返回状态和奖…

SpringCloud微服务(三)RabbitMQ、SpringAMQP、elasticsearch、DSL、MQ、ES详细介绍

目录 一、初始MQ 同步调用 异步调用 什么是MQ 执行下面的命令来运行MQ容器: 如果冲突了,可以先查询 RabbitMQ概述 常见消息模型 HelloWorld案例 二、SpringAMQP 引入依赖 Work Queue 消费预取限制 ​编辑 发布、订阅 发布订阅Fanout Ex…

能不能推荐个 vue 后台管理系统模板?

前言 下面是我整理的vue2和vue3的一些后台管理系统模板,希望对你有帮助~ Vue2 1、iview-admin Star: 16.4k 基于 iview组件库开发的一款后台管理系统框架,提供了一系列的强大组件和基础模板,方便开发人员快速搭建一套功能丰富、界面美观、…

红帽回应对开源的承诺

导读红帽上周宣布了限制源代码访问性的政策,称其企业发行版 RHEL (Red Hat Enterprise Linux) 相关源码仅通过 CentOS Stream 公开,付费客户和合作伙伴可通过 Red Hat Customer Portal 访问到源代码。 红帽上周宣布了限制源代码访问性的政策&#xff0c…

在Microsoft Excel中带单位的数字如何求和

使用 Excel 中的 SUM 函数对一系列单元格、整列或非连续单元格求和。要创建出色的 SUM 公式,请将 SUM 函数与其他 Excel 函数结合使用,然而 SUM 函数不能直接对带单位的数字进行求和。 当直接相加带单位的几个数字会出现如下错误: 错误的原因…

Keepalived 安装与配置

安装 Keepalived apt -y install keepalived 里边有一个杠y,就是我安装的时候里面有yes,就直接是yes 添加 Keepalived 配置 安装好之后, 下一步就开始去来写这个配置文件了,就在这里面去建一个 etc 当中,就是在这个 etc 当中建一个…

HTTP第17讲——Cookie机制

Cookie的诞生背景 HTTP 是“无状态”的,这既是优点也是缺点。优点是服务器没有状态差异,可以很容易地组成集群,而缺点就是无法支持需要记录状态的事务操作。 后来发明的 Cookie 技术,给 HTTP 增加了“记忆能力”。 什么是Cookie…