MySQL基础笔记(2)-连接查询

Mysql数据库内联查询、左连接查询、右连接查询、自连接查询介绍,库和表的相关练习 一.内联查询 1.inner join:只查询键值一致(交叉)的部分 2.演示 二.左连接 1.left join:以左表为标准,查询输出左表中没有的字段信息 2.演示 三.右连接 1.rightjoin:以右表为标准,查询输出右表中没有的字段信息 2.演示 四.自连接 将一张表通过别名虚拟为两张表,查询比较其中的不同字段 五.练习 1.新建/删除库和字段 2.单/多表查询 阅读详情

目录

MySql的连接查询

一、连接查询的作用

二、建表语句和数据

三、七种连接查询介绍

使用连接查询的格式

1、全连接

2、内连接

3、左外连接

4、左内连接

5、右外连接、右内连接即把右表视为主表,左表视为从表。

 


MySql的连接查询是多表查询的基础,也是查询语句中较难理解的一块内容,也是项目实际中常常使用到的,把连接查询的几种形式弄明白是十分必要的,这篇文章是我的MySql进阶专栏的第一篇文章,希望对你有帮助 。                             


MySql的连接查询

一、连接查询的作用

连接查询的使用场景:当我们有两张表,如一张部门表,一张员工表如图:

 

当我们需要查询出每个员工的信息和部门信息时,我们就需要使用连接查询,将两张表“连接”起来,让返回的查询结果中包含两张表的数据,这就是连接查询的作用。

 

 

二、建表语句和数据

为了方便我们的测试,我准备了两张表,一张是员工表,一张是部门表
 




CREATE TABLE `department` (

  `id` int(11) NOT NULL,

  `name` varchar(32) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


insert  into `department`(`id`,`name`) values

(1,'前台部'),

(2,'后台部'),

(3,'算法部'),

(4,'运维部'),

(5,'运营部');


CREATE TABLE `stuff` (

  `id` int(11) NOT NULL,

  `dep_id` int(11) NOT NULL,

  `name` varchar(32) DEFAULT NULL,

  `gender` char(1) DEFAULT NULL,

  `salary` int(11) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `dep_id` (`dep_id`),

  CONSTRAINT `stuff_ibfk_1` FOREIGN KEY (`dep_id`) REFERENCES `department` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `stuff`(`id`,`dep_id`,`name`,`gender`,`salary`) values

(1,1,'小王','男',1000),

(2,1,'小李','男',1500),

(3,2,'小陈','女',2000),

(4,3,'小良','女',2000),

(5,4,'小张','女',3500),

(6,3,'小星','男',1500),

(7,1,'小彭','男',3400),

(8,2,'小龙','男',6000),

(9,4,'小玉','女',7600),

(10,3,'小陈','男',4555);

 

 

三、七种连接查询介绍

Mysql主要使用的连接查询有几种连接形式,分为:全连接、内连接、外连接、左外连接、右外连接、左内连接、右内连接;

 

使用连接查询的格式

SELECT * FROM A a xxx JOIN B b ON  a.xx = b. xx;

JOIN左侧的表称为左表,右侧的表称为右表,ON后边是连接的条件。

 

1、全连接

查询出两张表中所有的组合,这种数据毫无意义,在开发中不会使用

SELECT * FROM stuff s CROSS JOIN department d ;

 

2、内连接

在上面的全连接中可以看出,一共生成了50条数据,也就是每个表中的每条数据都相互连接了,但是这样毫无意义,所以衍生出了内连接,即根据条件查询出两张表中共有的部分,如查询出员工表和部门表,连接条件是员工部门id和部门表id相同,这样的数据才是有用的

 

 

SELECT * FROM stuff s INNER JOIN department d ON s.`dep_id` = d.`id`

 

3、左外连接

这是开发中常用的一种连接方式,左外连接时,左表是主表,右表是从表,通过ON条件连接后,主表的所有记录都会被查询出来,而从表只会显示符合ON条件的记录,查不到的数据以null填充。

 

如以员工为主表,通过左外连接部门表为从表,那么将查询出员工表所有的记录

SELECT * FROM stuff s left outer JOIN department d ON s.`dep_id` = d.`id`

 

当使用部门表为主表时,查询出以下结果:

SELECT * FROM  department d LEFT OUTER JOIN stuff s ON s.`dep_id` = d.`id`

注意,使用左外或者右外连接时,OUTER可不写

4、左内连接

这种连接用得比较少,它以左表为主表,查询出自身独有的那部分记录,从表的数据以null表示

SELECT * FROM  department d LEFT JOIN stuff s ON s.`dep_id` = d.`id` WHERE s.`dep_id` IS NULL

 

5、右外连接、右内连接即把右表视为主表,左表视为从表。

NXP S32K1 SPI驱动实战:从配置到DMA传输的完整流程解析 本文深入解析了NXP S32K1系列MCU的SPI驱动开发全流程。基于S32 Design Studio环境,详细阐述了从引脚配置、LPSPI模块初始化,到实现阻塞、中断及DMA三种传输模式的实战代码与配置要点。文章重点剖析了DMA传输的配置细节与性能优化,旨在帮助开发者构建高效、稳定的嵌入式SPI通信,并提供了SPI Flash驱动的综合案例。 阅读详情

相关推荐

A股历史数据免费下载终极指南:4000+个股数据一键打包获取

本文提供了获取A股历史数据的完整免费方案,重点介绍了Tushare Pro、AkShare等开源金融数据API的使用方法。通过详细的Python脚本示例,指导读者如何自动化批量抓取、清洗、存储4000多只个股的历史行情数据,并分享数据质量校验与性能优化技巧,助力量化研究与市场分析。

ooo22的博客 2253

Mysql中的七种常用查询连接详解

一、概述 在实际开发中,大部分的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。一个业务都会对应多张表,比如:学生和班级,起码两张表。(避免产生数据的冗余)。二、连接查询的分类 1、根据语法出现的年代来划分: sql97--仅仅支持内连接(一些老的DBA可能还在使用这种语法。) sql99--推荐使用,支持左外+右外(左外+右外)+交叉 2、根据功能划分分类: 交叉连接:笛卡尔积。 内连接:等值连接、非等值连接、自连接。 外连接:左外连接(左连接)、右外连接...

qq_41946216的博客 1万+

setoolkit克隆网站获取用户信息

一、环境 kali、DVWA 二、步骤 首先打开kali,输入setoolkit 依次选择选项1-选项2-选项3-选项2 输入钓鱼网站的网址(默认为本地网址) 输入要克隆的网址URL 这里我的网址如图,将网址复制 然后模拟攻击场景,攻击者向受害者发送了一条钓鱼链接,此链接与DVWA的登陆页面完全一样,受害者点击之后并进行登陆信息 点击login之后,用户信息就被setool...

BeatRex的博客 2998

MySQL连接查询

内连接(INNER JOIN)查询、外连接查询 、LEFT JOIN(左连接)、RIGHT JOIN(右连接):

weixin_45392969的博客 2279

Unity镜子效果的实现(无需镜子Shader)

Unity镜子效果制作教程 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助力快速实现一个简单的镜面反射效果为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Cre...

weixin_33947521的博客 9567

电源完整性之Cadence Sigrity Power SI_AC阻抗仿真

之前和大家分享过电源完整性之仿真设计原理链接: [link](https://blog.youkuaiyun.com/weixin_41808082/article/details/117065140?spm=1001.2014.3001.5501).今天接着上一篇文章总结一下电源AC阻抗的的仿真操作流程及一些simulation中的设置参数,用到的时候Cadence Sigrity 中的Power SI组件,下面开始享受仿真的快乐吧: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的Power SI

刘小同学的博客 1万+

MySQL基础篇 | 连接查询、子查询(嵌套)

MySQL基础篇【第四篇】| 连接查询(内连接和外连接)、子查询(嵌套)

m0_61933976的博客 1万+

整车 EOL下线 测试系统介绍

整车下线(EOL)测试专门针对整车进行设计开发,是车企将组装好的整车交付客户前的 最后一道检测工序。EOL 测试针对的是整车下线测试,不同于零部件下线,是整车级别的下线 测试,测试过程关系整车的每个零部件,其测试质量直接影响到整车的质量好坏。因此,整车EOL测试是整车下线必不可少的测试过程.

王小奎的博客 5495

MySQL -- 连接查询

MySQL使用连接查询(JOIN)是为了从多个相关表中获取数据。

Afison的博客 3930

【QT开发】web开发,内嵌网页展示和交互工具QWebEngineView类详解及实战应用

QWebEngineView 类为 Qt 应用提供了强大的网页展示和交互能力。通过合理运用其方法、属性和事件,能够创建出功能丰富、用户体验良好的网页浏览界面。在开发过程中,要注意处理常见问题,以确保网页的正常展示和交互效果。

科技改变人类,技术成就未来 2004

Simulink开发项1000例实战专栏--实例148:构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块

电动汽车的动力电池是其核心部件,而电池的健康状态(State of Health, SOH)直接影响车辆的续航能力和使用寿命。SOH通常定义为当前电池容量与初始容量的比值,用百分比表示。通过基于MATLAB/Simulink平台的SOH评估仿真,可以实时监测电池的退化情况,并为电池管理系统(BMS)提供决策依据。本项目旨在构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块,并通过仿真验证SOH评估的准确性。

xiaoheshang_123的博客 342

MySQL基础学习笔记——连接查询(2):左(外)连接查询 . left outer join . on

左(外)连接查询 . left outer join . on 定义:以左表为主根据条件查询右表数据,如果根据条件查询不到右表数据不存在使用null值填充。 # 语法 select 字段 from 表1 left outer join 表2 on 表1.字段1=表2.字段2; left outer join:就是左连接查询关键字,outer可以省略; on:就是连接查询条件; 表1:表示...

鬼义虎神的学习笔记 710

实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇?这其实是两种模型架构的本质差异,GPT系列擅长指令跟随和语言精炼,而Gemini原生支持超长上下文,适合深度文本生成。两者在深度生成与精炼表达上形成了天然互补。我们可以将它们组合起来使用发挥他们各自的特长。

智能AI让学术科研更容易 523

MySQL连接查询——MySQL 基础查询你会了吗?

前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己。也要告诫读者,把基础打扎实。读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询——MySQL 基础查询你会了吗? 文章目录2、MySql连接查询2.1、内连接(sql92 和sql99)2.1.1、sql92`1、等值连接`2、 为表起别名6、可以加排序吗?7、可以实现三表连接吗?2、非等值连接3、自连接2.1.2、sql99标准1、等值连接2、非等值连接3、 自连接2.2、外连接左外连接右.

weixin_44689277的博客 4850

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

MySQL连接查询学习笔记

作用:将多个表的数据通过关联关系组合,获取更全面的信息。类型内连接(INNER JOIN)左连接(LEFT JOIN)右连接(RIGHT JOIN)全连接(FULL JOIN,MySQL需用UNION模拟)连接类型保留数据范围不匹配处理INNER JOIN仅匹配的行不显示LEFT JOIN左表全部 + 右表匹配右表列NULL填充RIGHT JOIN右表全部 + 左表匹配左表列NULL填充FULL JOIN左右表全部未匹配侧列NULL填充适用场景内连接:需精确匹配时(如订单与商品)。

Rey_family的博客 1304

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL基础课堂笔记

MySQL基础知识学习笔记整理 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库...

不怕万人阻挡,只怕自己投降 9655

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

MySQL基础——连接查询(全面解析)(七种常用连接查询)

在实际开发中,⼤部分的情况下都不是从单表中查询数据,⼀般都是多张表联合查询取出最终的结果。⼀个业务都会对应多张表,比如:学生和班级,起码两张表。(避免产生数据的冗余)。1、内连接:假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。AB两张表没有主副之分,两张表是平等的。2、外连接:假设A和B表进行连接,使用外连接的话, AB两张表中有⼀张表是主表,⼀张表是副表,主要查询主表中的数据,捎带着查询副表。

心碎烤肠的博客 2019

MySQL基础(六)-----子查询和连接查询

子查询简而言之就是在一个查询里面再嵌套一个或者多个查询语句; 连接查询指的就是将多个表或者单个表连接在一起进行查询

leen的博客 5008

MySQL连接查询—自身连接

若一个查询同时涉及两个表及以上的表,则称之为连接查询。 连接查询是关系数据库中最主要的查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件查询等 1.等值于非等值连接查询 连接查询的where子句中用来连接两个表的条件成为连接条件或连接谓词,一般格式为 表名1.列名1 {比较运算符} 表名2.列名2 当连接运算符为“=”时,称之为等值连接。使用其他运算...

孤岛的鲸 9400

2025.4.2 MySQL学习笔记:连接查询

连接查询是关系型数据库中非常重要的查询方式之一,它允许我们将多个表的数据通过某种关联关系组合在一起进行查询,从而获取更全面、更有意义的信息。在MySQL中,连接查询主要包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(MySQL中不直接支持,但可以通过其他方式实现)。连接查询是MySQL中非常强大的功能,通过内连接、左连接、右连接和全连接,我们可以根据不同的需求组合多个表的数据。

2503_90960068的博客 1035

【JavaWeb后端学习笔记】MySQL多表查询(内连接、外连接、子查询)

多表查询有两大类:连接查询和子查询。连接查询又分为隐式/显式内连接和左/右外连接。子查询又分为标量子查询、列子查询、行子查询和表子查询。多表查询是建立在单表查询的基础之上的,因此需要熟练单表查询。开始前需要运行01.数据准备.sql脚本中的代码,准备表和数据。

wrjwww的博客 1508

【基础篇】MySQL系列之连接查询

🔹大家好,我是颜语凌。 🔶个人主页:颜语凌 🔹文章介绍:MySQL基础篇系列文章 🔶欢迎点赞➕关注➕评论 目录 一、连接查询的类型 二、SQL语句实现 2.1 内连接查询 2.2左连接查询 2.3右连接查询 2.4自连接查询 三、小结 一、连接查询的类型 连接查询可以实现多个表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成。 ...

weixin_54667422的博客 2054

Mysql连接查询详解

记得刚工作几年的时候,就写了一篇关于Mysql连接查询的博客文章,里面简单的认为先对关联表的记录进行笛卡尔积,然后再根据where条件过滤,现在看来有点贻笑大方了。正好最近看了《mysql是怎样运行的》这本书,所以对Mysql连接查询的原理和过程重新做下总结。

弹指天下 7184

【MySQL】多表连接查询

多表连接查询是关系型数据库中最重要的特性之一,它允许我们从多个相关表中检索数据,将它们按照指定的关系组合在一起显示。MySQL支持多种连接类型,使开发者能够灵活地进行数据检索和分析。

Guiat的博客 2026

MySQL学习笔记2:where 条件查询

简介 本系列(MySQL学习笔记)是我基于B站上非常受欢迎的MySQL 基础+高级篇- 数据库 -sql -尚硅谷视频所做的笔记,方便大家学习和掌握MySQL。 说明 1.这个系列基本包含了视频中老师讲课的基本所有内容,包括知识点、案例、部分测试题。 2.所需的配套资料(来自B站评论区) @黎曼的猜想: 配套资料下载–>公众号公众号 DragonWell 回复:mysql 注意:是公众号!!是公众号!!是公众号,点那个 搜一搜 搜索!!! 不是私人号,是公众号!!! (可以直接在 搜一搜 搜

AsajuHuishi的博客 548
上一篇: LeetCode(4)-链表:快慢指针
下一篇: MySQL基础笔记(3)-常用函数
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值