MySQL - 多表查询



本文开始

1.聚合查询

聚合查询,使用的是聚合函数:count(),sum(),avg(),max(),min

  • count() - 求查询到数据的数量
-- 统计班级总共有多少同学
select count(*) from student;
select count(0) from student; -- 会返回查询结果集中的总行数
-- 统计某列(qq列)有多少个
select count(qq) from student;
  • sum() - 求查询到数据的总和
select * sum(math) from score;
  • avg() - 求查询到数据的平均值
select avg() from score;
  • max() - 求查询到数据的最大值
select max(math) from score;
  • min() - 求查询到数据的最小值
select min(english) from score where english > 60;

2.分组查找

  • group by - 指定列进行分组查询
insert into emp(name, role, salary) values
('张三','服务员', 300),
('李四','服务员', 2000),
('王五','老板', 10000);

-- 查找emp表,按照角色分组,查询角色的最高工资
select role,max(salary) from emp group by role;
  • having - 对group by进行分组后,对分组后条件进行过滤
-- 平均工资低于1000的角色和它的平均工资
select role, avg(salary) from emp group by role having avg(salary) < 1000;

3.联合查询

内连接

  • 关键字:表1 join 表2 on
    直接使用: 表1,表2
-- 语法
select 字段 from1 别名1,2 别名2 where 连接条件 and 其他条件;
select 字段 from1 别名1 [inner] join2 别名2 on 连接条件 and 其他条件;


-- 例 查询张三的成绩
select 
	stu.name,sco.score 
from 
	student stu 
	join score sco on stu.id = sco.id and stu.name='张三';

外连接

  • 左外连接:
    左侧的表完全显示我们就说是左外连接,如果是遇到了,左侧表中存在,右侧表中不存在的数据,此时就会把对应的列填成空值
-- 左外连接,表1完全显示
select 字段名 from 表名1 left join 表名2 on 连接条件;
-- 右外连接,表2完全显示
select 字段 from 表名1 right join 表名2 on 连接条件;
  • 右外连接:右侧的表完全显示我们就说是右外连接 。如果遇到了右侧表中存在,左侧表中不存在的数据,也会把对应的列填成null.

– 了解不是重点掌握

自连接

  • 自连接: 自连接是指在同一张表连接自身进行查询,把行之间的关系转换成列之间的关系,方便条件编写
-- 自连接语法:
select ... from1,表1 where 条件
select ... from1 join1 on 条件

子查询

  • 子查询: 嵌套查询,是指嵌入在其他sql语句中的select语句;非常不建议使用,会把 简单的 sql 变的复杂
select ... from1 where 字段1 = (select ... from ...);

合并查询

  • 合并查询: union /union all 合并多个结果集
    union: 去除重复数据
    union all:不去除重复数据

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

SQL查询中各个关键字的执行先后顺序:
from > on> join > where > group by > with > having >
select > distinct > order by > limit


总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐

  1. MySQL - 查询

    2023-12-06 20:32:04       42 阅读
  2. MySQL-查询

    2023-12-06 20:32:04       41 阅读
  3. MySQL查询

    2023-12-06 20:32:04       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 20:32:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 20:32:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 20:32:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 20:32:04       20 阅读

热门阅读

  1. 网页开发 HTML

    2023-12-06 20:32:04       41 阅读
  2. CentOS7.5安装zookeeper3.9.1详细步骤

    2023-12-06 20:32:04       37 阅读
  3. WordPress插件无法安装一直失败的原因和解决办法

    2023-12-06 20:32:04       35 阅读
  4. IPv4/IPv6 组播对应的MAC地址

    2023-12-06 20:32:04       33 阅读
  5. IDEA-快捷键大全

    2023-12-06 20:32:04       27 阅读
  6. sql常用语法练习

    2023-12-06 20:32:04       35 阅读
  7. Linux 离线安装NFS共享文件

    2023-12-06 20:32:04       35 阅读
  8. nodejs接收前端分片并组合成完整文件

    2023-12-06 20:32:04       38 阅读