MySQL - 多表查询


文章目录

    • 1.聚合查询
    • 2.分组查找
    • 3.联合查询
      • 内连接
      • 外连接
      • 自连接
      • 子查询
      • 合并查询
    • SQL查询各关键字的执行先后顺序
  • 总结


本文开始

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


总结

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

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

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

相关文章

Hdoop学习笔记(HDP)-Part.05 Yum源配置

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

mysql常用命令行代码

连接到 MySQL 服务器&#xff1a; mysql -u your_username -p替换 your_username 为你的 MySQL 用户名。系统会提示你输入密码。 退出 MySQL 命令行&#xff1a; EXIT;或者按 Ctrl D。 显示所有数据库&#xff1a; SHOW DATABASES;选择数据库&#xff1a; USE your_database…

计算机网络扫盲(1)——因特网

一、概述 因特网是一个世界范围的计算机网络&#xff0c;即它是一个互联了遍及全世界数十亿计算设备的网络。大家对此应该并不陌生&#xff0c;我们身边有着不计其数的计算机设备被接入了因特网&#xff0c;如今计算机网络这个术语似乎已经有点过时了&#xff0c;用因特网的术语…

CRM系统是怎样帮助销售流程自动化的?

销售业绩是衡量企业经营的重要指标&#xff0c;也是销售人员一直要达成的目标。销售业绩能否提高取决于销售人员的能力、客户服务水平&#xff0c;还需要借助有效的工具。CRM系统就是这样的一款软件。企业如何提高销售业绩&#xff1f;不妨试试CRM销售流程自动化。 CRM如何实现…

什么是新一代智能拓客系统?

新一代智能拓客系统是一种采用先进的人工智能技术&#xff0c;为企业提供高效拓展客户的工具。它基于大数据分析&#xff0c;可以快速识别潜在客户&#xff0c;并针对他们的需求进行个性化的营销活动。 新一代智能拓客系统主要特点有&#xff1a; 自动化&#xff1a;新一代智…

【C语言:数据在内存中的存储】

文章目录 1.整数在内存中的存储1.1整数在内存中的存储1.2整型提升 2.大小端字节序2.1什么是大小端2.2为什么有大小端之分 3.整数在内存中的存储相关题目题目一题目二题目三题目四题目五题目六题目七 4.浮点数在内存中的存储4.1浮点数存的过程4.2浮点数取得过程 在这之前呢&…

openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志

文章目录 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志137.1 检查操作系统日志137.2 检查openGauss运行日志137.3 清理运行日志 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志 日志是检查系统运行及故障定位的关键手段。建议按…

Windows下安全认证机制

NTLM&#xff08;NT LAN Manager&#xff09; NTLM协议是在Microsoft环境中使用的一种身份验证协议&#xff0c;它允许用户向服务器证明自己是谁&#xff08;挑战&#xff08;Chalenge&#xff09;/响应&#xff08;Response&#xff09;认证机制&#xff09;&#xff0c;以便…

TA-Lib学习研究笔记(八)——Momentum Indicators 中

TA-Lib学习研究笔记&#xff08;八&#xff09;——Momentum Indicators 中 Momentum Indicators 动量指标&#xff0c;是最重要的股票分析指标&#xff0c;能够通过数据量化分析价格、成交量&#xff0c;预测股票走势和强度&#xff0c;大部分指标都在股票软件中提供。 11. …

对el-select封装成组件使用

效果与直接使用el-select一样&#xff0c;多处用el-select显得代码冗余就进行了封装 效果图&#xff1a; el-select封装&#xff1a; <template><div class"my-select"><el-selectv-model"person.modelValue":placeholder"placehold…

Linux中的文件IO

文章目录 C语言文件操作系统文件I/O接口介绍 open函数返回值文件描述符fd0 & 1 & 2文件描述符的分配规则 重定向使用 dup2 系统调用 FILE理解文件系统理解硬链接软链接acm 动态库和静态库静态库与动态库生成静态库生成动态库&#xff1a; C语言文件操作 先来段代码回顾…

DBeaver 社区版(免费版)下载、安装、解决驱动更新出错问题

DBeaver 社区版&#xff08;免费版&#xff09; DBeaver有简洁版&#xff0c;企业版&#xff0c;旗舰版&#xff0c;社区版&#xff08;免费版&#xff09;。除了社区版&#xff0c;其他几个版本都是需要付费的&#xff0c;当然相对来说&#xff0c;功能也要更完善些&#xff…

pandas.get_dummies函数:把离散信息转换成onehot矩阵

pandas.get_dummies函数用来把可以分类信息转换成0和1矩阵。 函数参数 def get_dummies(data,prefix=None,prefix_sep="_",dummy_na: bool = False,columns=None,sparse: bool

进程间通信 消息队列 函数用法介绍

Linux的消息队列是一种在进程间传递消息的数据结构。它允许一个进程将一条消息放入队列&#xff0c;而其他进程可以从队列中取出并处理消息。消息队列在实现进程间通信(IPC)方面非常有用。 IPC对象 IPC(InterProcess Communication) 对象是活动在内核级别的一种进程间通信的工…

Fiddler抓包工具之fiddler设置过滤

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤&#xff1a; 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …

Azure Machine Learning - 在 Azure AI 搜索中创建全文查询

Azure AI搜索中如果要为全文搜索生成查询&#xff0c;本文提供了设置请求的步骤。 本文还介绍了查询结构&#xff0c;并说明了字段属性和语言分析器如何影响查询结果。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&a…

RISC-V_WCH系列微控器软件体系云端快速架构

1 概述 RISC-V内核的微控器MCU&#xff0c;正在以更高的性价比&#xff0c;快速取代传统的各类ARM系列微控制处理器。 针对常用的芯成RISC-V内核的泌恒WCH系列微控器MCU&#xff0c;推出了&#xff1a;RISC-V_WCH系列微控器软件体系快速架构云平台。只要以身份证号码做用户名…

C#拼夕夕自动化登录,电商网页自动化操作。WebView2

单纯靠WebView2是没办法通过JS实现自动登录操作的&#xff0c;包括浏览器插件&#xff0c;都不行&#xff0c;因为大公司对反爬机制控制的还是挺严格。 下面是实现效果&#xff0c;私信我&#xff0c;咨询解决方案。 20231202_153912 C#有偿Q群&#xff1a;927860652博客仅为…

交换综合实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、链路聚合&#xff08;配置Eth-trunk&#xff09; 2、配置vlan&#xff08;创建划分vlan&#xff0c;配置trunk干道&#xff09; 3、MSTP配置 4、VRRP配置 5、DHCP配置 6、vlan互通 7、NAT配置&#xff08;做ACL&#…

idea 旧项目替换成新项目(项目名称,模块,代码)

文章目录 修改项目名全局替换包名替换模块、文件前缀&#xff08;一定要先替换包名&#xff09;局部替换xml、yml等其他文件修改本地项目文件夹名称修改git配置 修改项目名 右击项目名称->Refactor->Rename(shiftF6) ctrlaltshifts 全局替换包名 全局选中包名替换&…