MySQL表的内外连接

MySQL表的内外连接

  • 一.内连接
  • 二.外连接
    • 1. 左外连接
    • 2. 右外连接
  • 三.案例

表的连接分为内连和外连。

一.内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。而使用where进行笛卡尔积筛选的时候,后面必须跟着一个过滤条件,将不合理的数据筛选掉,并且这时候再跟着其他条件就需要and其他条件,所以这种方式的内连接虽然可以,但是容易将内连接的条件与其他约束条件混淆,不容易区分。

于是,为了能够特殊标注其是内连接,就采用了如下语句:

select 字段 from1 inner join2 on 连接条件 and 其他条件;

案例:显示SMITH的名字和部门名称

这时,我们可以用多表查询,并笛卡尔积方式连接,并进行筛选:

image-20230731171311459

采用内连接的方式:

image-20230731171428834

采用内连接的方式,就可以很好的将内连接的条件与其他条件进行区分。

二.外连接

外连接分为左外连接和右外连接

1. 左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接。即有可能出现这样的情况:学生表里有四个人,但成绩表中只有三个成绩,这种情况还是常见的,因为存在着部分学生没有考试的情况,但是此时我们仍想将已知的信息显示出来,那么在连接时就会出现空值的情况。

即将学生表放在左侧,成绩表放在右侧,此时左侧的表完全显示,右侧的表由于缺少对应的一条信息,其内部的值为空。语法与内连接的区别就是将inner替换成了left。

select 字段名  from 表名1 left join 表名2 on 连接条件

案例:

-- 建两张表
create table stu (id int, name varchar(30)); -- 学生表
insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);

image-20230731191753498

由于其中一个id无法匹配,所以该学生没有对应的成绩。如果将stu与exam的位置反过来,则会显示exam的全部信息,然后将stu能匹配上的属于与exam进行匹配。

image-20230731191937132

2. 右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接。这与左外连接的规则是一样的,只不过主导的表变成了右侧。

select 字段名  from 表名1 right join 表名2 on 连接条件

image-20230731192259612

实际上,只有一个左外连接已经够了,因为我们可以将表的位置交换,这与右外连接没什么区别。

三.案例

案例:列出部门名称和这些部门的员工信息,同时列出没有员工的部门。

image-20230731192659587

通过观察,emp表中不存在部门号为40的员工。从上面要求:同时列出没有员工的部门可以看出,部门为主,因此若选择左外连接,部门表在左侧;选择右外连接,部门表在右侧。

select * from dept left join emp on dept.deptno=emp.deptno order by dept.deptno;

image-20230731193102085

这就统计出来了我们想要的结果。

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

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

相关文章

DBA 职责及日常工作职责

DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统需求创建数据库存储结构. 4.根据开发人员设计的应用系统需求创建数据库对象 5…

刷题DAY15

第一题 给定一个数组arr 求子数组最大累加和 最暴力的 枚举每一个子数组 出结果 优化解 用一个cur指针保存累加和 每次cur变大 就用它更新max 如果cur累加到0以下 回复成0 假设答案法 假设我们最大的子数组是i 到 j位置上的 那么这个i 到j 之间 必不存在一个k使i...k累加和…

网络面试题-UDPTCP

1 UDP 1.1 ⾯向报⽂ UDP 是⼀个⾯向报⽂(报⽂可以理解为⼀段段的数据)的协议。意思就是UDP 只是报⽂的搬运⼯,不会对报⽂进⾏任何拆分和拼接操作 具体来说 在发送端,应⽤层将数据传递给传输层的 UDP 协议, UDP 只会…

Aligning Large Language Models with Human: A Survey

本文也是LLM相关的综述文章,针对《Aligning Large Language Models with Human: A Survey》的翻译。 对齐人类与大语言模型:综述 摘要1 引言2 对齐数据收集2.1 来自人类的指令2.1.1 NLP基准2.1.2 人工构造指令 2.2 来自强大LLM的指令2.2.1 自指令2.2.2 …

sql分类 DDL、DML、DCL

DDL (Data Definition Language 数据定义语言) 这些语句定了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构 如: CREATE \ DROP \ ALTER \ RENAME \ TRUNCATE 等 DML(Data Manipulation Langua…

前端面试的性能优化部分(3)每天10个小知识点

31.请解释前端性能优化的重要性以及优化的目标是什么? 前端性能优化是指在网页或应用的前端部分(通常是指用户界面)进行改进,以提高其加载速度、响应性能和用户体验。在现代互联网应用中,前端性能优化至关重要&#x…

antDv table组件滚动截图方法的实现

在开发中经常遇到table内容过多产生滚动的场景,正常情况下不产生滚动进行截图就很好实现,一旦产生滚动就会变得有点棘手。 下面分两种场景阐述解决的方法过程 场景一:右侧不固定列的情况 场景二:右侧固定列的情况 场景一 打开…

汽车电子功能安全

功能安全考虑 分析方法:FMEA,DFMEA(设计潜在失效模式和影响分析) 严重度(Severity),暴露率(Exposure),可控性(Controllability)评估…

IDEA中maven项目失效,pom.xml文件橙色/橘色

IDEA中maven项目失效,pom.xml文件橙色/橘色 IDEA中Maven项目失效 IDEA中创建的maven项目中的文件夹都变成普通格式,pom.xml变成橙色 右键点击橙色的pom.xml文件,选择add as maven project maven项目开始重新导入相应依赖,恢复…

JavaScript |(四)正则表达式 | 尚硅谷JavaScript基础实战

学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 📚正则表达式📚正则表达式字面量方式📚字符串&正则表达式🐇split()🐇search()🐇match()🐇replace()…

MyBatis-动态SQL-if and where

动态SQL 随着用户的输入或外部条件的变化而变化的SQL语句,我们称之为动态SQL语句 select *from empwhere name like concat(%, #{name}, %)and gender #{gender}and entrydate between #{begin} and #{end}order by update_time desc; 在上述的SQL语句…

如何实现 token 加密

介绍下如何实现 token 加密 以最常见的 token 格式 jwt 为例 token 分为三段,分别是 header、payload、signature 其中,header 标识签名算法和令牌类型;payload 标识主体信息,包含令牌过期时间、发布时间、发行者、主体内容等&…

科技引领,教育革新|EasyV助力数字孪生智慧教育建设!

数字孪生校园是以物联网、大数据、云计算、人工智能、三维可视化等新型数字化技术为基础,构建的数智校园的“大脑”。对校园的人、车、资产设施、各业务系统进行全联接,实现数据全融合、状态全可视、业务全可管、事件全可控,使校园更安全、更…

2023-08-04 LeetCode每日一题(不同路径 III)

2023-08-04每日一题 一、题目编号 980. 不同路径 III二、题目链接 点击跳转到题目位置 三、题目描述 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以…

985/211/双一流大学名单

985大学“985工程”是在1998年5月北京大学百年校庆的致辞中提到的,因为日期在98年5月,所以称作“985”。该工程在1999年时正式启动,最初选定的院校包括清华大学,北京大学等九所院校。现包括我国39所院校。 211大学“211 工程”是…

Noah-MP陆面过程模型建模方法与站点、区域模拟教程

详情点击链接:Noah-MP陆面过程模型建模方法与站点、区域模拟教程 陆面过程的内容(陆表能量平衡、水循环、碳循环等),陆面过程研究的重要性。 图 1 陆面过程主要研究内容 陆面过程模型的发展、基本原理、常用陆面过程模型等。 图…

yay无法更新问题解决

背景 更新yay后,yay安装软件捞出问题,查的github上的都不靠谱。因此需要把yay的版本固定下,正常的11版本是可用的 解决方案 sudo pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si # 注…

Frida Error: getPackageInfoNoCheck(): has more than one overload的解决方法

使用frida绕过证书的时候执行代码: frida -U -f de.robv.android.xposed.installer --codeshare akabe1/frida-multiple-unpinning --no-pause遇到这样的错误 Error: getPackageInfoNoCheck(): has more than one overload, use .overload() to choose from: 网上查…

uniapp 实现滑动元素并下方有滚动条显示

用uniapp实现下图的样式 代码如下&#xff1a; <template><view class"content"><view class"data-box" ref"dataBox" touchend"handleEnd"><view class"data-list"><view class"data-ite…

算法训练营第五十六天||● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 这道题涉及到两个字符串删除操作&#xff0c;注意递推公式&#xff0c;理解不到位&#xff0c;需要再次做 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]&#xff1a;以i-1为结尾的字符串word1&#xff0c;和以j-1位结尾…