前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL数据库(三)

MySQL数据库(三)

作者头像
用户10788736
发布2023-10-16 08:35:49
2190
发布2023-10-16 08:35:49
举报
文章被收录于专栏:CSDN搬移文章

前言

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

一、聚合查询

(一)聚合函数

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

1、count 

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

代码语言:javascript
复制
select count(列名) from 表名;

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

代码语言:javascript
复制
select count(*) from 表名;
2、sum

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

代码语言:javascript
复制
select sum(列名) from 表名;
3、avg

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

代码语言:javascript
复制
select avg(列名) from 表名;
4、max

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

代码语言:javascript
复制
select max(列名) from 表名;
5、min

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

代码语言:javascript
复制
select min(列名) from 表名;

二、分组查询

(一)group by

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

列如:

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

(二)指定条件筛选

1、分组前筛选,使用where条件
2、分组后筛选,使用having条件
3、同时分组前和分组后筛选

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

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

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

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

(一)内连接

代码语言:javascript
复制
select *from 表1,表2;

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

代码语言:javascript
复制
select *from 表1,表2 where 条件;

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

代码语言:javascript
复制
select *from 表1 join 表2 on 条件;

针对多个表时:

代码语言:javascript
复制
select *from 表1 join 表2 on 条件 join 表3 on 条件;

(二)外连接

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

1、左外连接
代码语言:javascript
复制
select *from 表1 left join 表2 on 条件;

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

2、右外连接
代码语言:javascript
复制
select *from 表1 right join 表2 on 条件;

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

3、外连接多个表
代码语言:javascript
复制
select *from 表1 left/right join 表2 on 条件 left/right join 表3 on 条件;

(三)自连接

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

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

代码语言:javascript
复制
select *from 表1 as a,表2 as b;

(四)子查询

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

列如:

(五)合并查询 union

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

代码语言:javascript
复制
select *from 表名 where 条件1 union select *from 表名 where 条件2;

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

四、新增和查询联合

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

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

代码语言:javascript
复制
insert into 表1(列名,列名..) select 列名,列名.. from 表2;

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

也可以写成:

代码语言:javascript
复制
insert into 表1 select *from 表2;

结语

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、聚合查询
    • (一)聚合函数
      • 1、count 
      • 2、sum
      • 3、avg
      • 4、max
      • 5、min
  • 二、分组查询
    • (一)group by
      • (二)指定条件筛选
        • 1、分组前筛选,使用where条件
        • 2、分组后筛选,使用having条件
        • 3、同时分组前和分组后筛选
    • 三、联合查询(多表查询)
      • (一)内连接
        • (二)外连接
          • 1、左外连接
          • 2、右外连接
          • 3、外连接多个表
        • (三)自连接
          • (四)子查询
            • (五)合并查询 union
            • 四、新增和查询联合
            • 结语
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档