【MySQL】表的内连和外连

news2024/12/29 10:36:18

本期我们来谈谈表的连接


目录

一、内连接

二、外连接

2.1 左外连接

2.2 右外连接


一、内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们上期学习的复合查询都是内连接,也是在开发过程中使用的最多的连接查询

使用内连接时我们还可以使用下面的语法格式:

select 字段 from 表1 inner join 表2 on 连接条件 where 其他条件;

下面我们用实例来演示(来自oracle 9i的经典测试表,该资源已上传):

显示SMITH的名字和部门名称

我们按之前复合查询的方法可以这样子:

select ename,dname from emp,dept where ename='SMITH' and emp.deptno=dept.deptno;

下面介绍一种新的语法格式,先连接两个表做笛卡尔积:

select * from emp inner join dept;

 再在之前的语句后面加上on然后跟上筛选条件找出合理的数据:

select * from emp inner join dept on emp.deptno=dept.deptno;

最后再加上一个条件判断筛选出只有SMITH的数据:

select ename,dname from emp inner join dept on emp.deptno=dept.deptno where ename='SMITH';

二、外连接

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

2.1 左外连接

左外连接语法:

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

左外连接:左表(表名1)的记录将会全部表示出来,而右表(表名2)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

我们举例说明

先建立两张表,并插入些数据:

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);

我们现在使用左外连接连接一下这两个表:

可以看到左表stu有id为3和4的学生即使没有对应的成绩也被保留下来了,并且在表中显示NULL

2.2 右外连接

右外连接语法:

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

右外连接:顾名思义与左外连接相反,右表(表名2)的记录将会全部表示出来,而左表(表名1)只会显示符合搜索条件的记录。左表记录不足的地方均为NULL

我们来举个时间利用场景:列出部门名称和这些部门的员工信息,同时列出没有员工的部门

如果我们调换一下两表位置,使用左外连接效果也是一样的:


感谢各位的阅览~下期很快和大家见面~

更多MySQL技能请看:http://t.csdn.cn/W9dQl

博主努力更新中~

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

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

相关文章

proteus结合keil-arm编译器构建STM32单片机项目进行仿真

proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。 下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。 新建工程指定路径,Schematic,PCB layout都选择默…

记一次mybatis-plus关于Long和long自动添加过滤条件的bug记录

文章目录 1.前提条件2.相关知识3.原理解释:4.情景复现: 1.前提条件 接口代码是由mybatis-plus封装的page分页 有一个实体类属性类型是long和Long的区别:long会添加一个过滤条件未异常情况,改成Long则不会添加是正常情况,详细情况参…

leetcode358周赛

2815. 数组中的最大数对和 核心思想:维护每一个最大的数字的最大值,然后一边更新最大值,一边统计结果。其中求nums中的每一个数的数位最大值可以用map的方法,我自己做的时候是用的%10,感觉map这种方法很巧妙。 2816. …

如何在iPhone手机上修改手机定位和模拟导航?

如何在iPhone手机上修改手机定位和模拟导航? English 首先,你需要在Mac电脑上下载安装 Location Simulator/定位模拟工具 和 Runner 这两款应用程序。 完成安装后,打开软件,并用USB连接手机设备 修改iPhone手机定位和模拟导航 …

锐捷无线产品运维

目录 登录AP产品 Console登录(只可以现场登录) Web/Telnet/SSH登录(可以现场、远程登录) 配置AP的管理地址 通过Web界面远程登录 通过Telnet、SSH等命令行的方式登录 登录AC产品 Console登录(只可以现场登录&a…

CSS中的position属性有哪些值,并分别描述它们的作用。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ static⭐ relative⭐ absolute⭐ fixed⭐ sticky⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那…

梯度下降介绍

什么是梯度 梯度是微积分中一个很重要的概念,在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率;在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函…

【2023年11月第四版教材】《第4章-信息系统管理(合集篇)》

第4章-信息系统管理之管理方法(第四版新增章节)(第一部分) 章节说明1 管理方法1.1 信息系统四个要素1.2 信息系统四大领域1.3 信息系统战略三角1.4 信息系统架构转换1.5 信息系统体系架构1.6 信息系统运行1.7 运行和监控1.8 管理和…

day42时间格式转化

题目描述: 解题思路 1.将字符串给以" "为间隔进行切割然后各个部分进行不同的处理。 字符串切割使用 strtok(char* a, char* b) 函数,该函数返回切割完成后第一个子串的指针。 //切割,返回第一个字串的指针。这里注意,…

Kafka3.0.0版本——Broker( 退役旧节点)示例

目录 一、服务器信息二、先启动4台zookeeper,再启动4台kafka三、通过PrettyZoo工具验证启动的kafka是否ok四、查看4台kafka集群节点上是否存在创建的名称为news的主题五、退役旧节点5.1、执行负载均衡操作5.2、 执行停止命令5.3、再次查看kafka中的创建过的名称为ne…

单片机通讯技术应用解析:传感器数据交互、外设控制与配置等案例分析

随着科技的不断发展,单片机通讯技术在各个领域的应用越来越广泛。本文将从单片机通讯技术的基本原理、常见通讯方式以及应用案例等方面进行详细介绍和分析。 首先,我们将深入探讨单片机通讯技术的基本原理和通讯方式。单片机通讯的基本原理是通过特定的…

Element Plus报错:ResizeObserver loop completed with undelivered notifications.

el-selected踩坑&#xff1a;el-selected 显示下拉框 mouseover 时报错&#xff01;&#xff01;&#xff01; 原来是属性 popper-append-to-body 被废除&#xff0c;改为 teleported。 element ui <el-select:popper-append-to-body"false"value-key"id&q…

【无监督】2、MAE | 自监督模型提取的图像特征也很能打!(CVPR2022 Oral)

文章目录 一、背景二、方法三、效果 论文&#xff1a;Masked Autoencoders Are Scalable Vision Learners 代码&#xff1a;https://github.com/facebookresearch/mae 出处&#xff1a;CVPR2022 Oral | 何凯明 | FAIR 一、背景 本文的标题突出了两个词&#xff1a; masked…

基于 ObjectOutputStream 实现 对象与二进制数据 的序列化和反序列化

目录 为什么要进行序列化呢&#xff1f; 如何实现 对象与二进制数据 的序列化和反序列化&#xff1f; 为什么要进行序列化呢&#xff1f; 主要是为了把一个对象&#xff08;结构化的数据&#xff09;转化成一个 字符串 / 字节数组&#xff0c;方便我们存储&#xff08;有时候需…

Web安全:中间件漏洞

中间件一般指的是IIS、Apache、Nginx、Tomcat及Weblogic等一系列Web服务器中间件。中间件存在漏洞会直接威胁Web服务器代码及后台数据库的安全。 以前出现过的中间件漏洞一般是文件解析漏洞&#xff0c;例如IIS文件解析漏洞、Apache文件解析漏洞及Nginx文件解析漏洞等。如今我…

大模型时代和传统机器学习时代工具栈侧重点有所不同

大模型时代和传统机器学习时代工具栈侧重点有所不同 本章从企业训练模型、构建AI赋能应用的工作流视角出发,详解涉及的主要环节,并关注LLMOps和MLOps在流程上的侧重点差异。我们认为AI = Data + Code,历经数据准备、模型训练、模型部署、产品整合,分环节看: ► 数据准…

服务器安全防御要注意哪些方面?

服务器安全是我们每个互联网公司都应该做好的一个环节&#xff0c;每个互联网公司都会涉及到信息数据安全&#xff0c;而这些数据信息一般存放的地方都是在服务器&#xff0c;如果服务器受到破坏&#xff0c;我们的数据信息将会受到侵犯届时将会造成不可挽回的损失&#xff0c;…

三维模型OSGB格式轻量化在网络传输中的重要性探讨

三维模型OSGB格式轻量化在网络传输中的重要性探讨 随着三维模型应用的不断增加&#xff0c;网络传输成为了将三维模型从一个地方传输到另一个地方的主要方式。在网络传输中&#xff0c;数据量越大&#xff0c;传输速度就越慢&#xff0c;因此轻量化OSGB格式的三维模型数据在网络…

C#_详解浮点数类型特征

浮点数 浮点数基础 float double decimal 浮点数示例 float f; double d; decimal m;//①超过精度位数&#xff0c;数字无效 f 1234567890f; Console.WriteLine("f {0}",f);//f 1.234568E09//②再赋给更大精度度量&#xff0c;不能恢复数字 d f; Console.Write…

excel入门

上下左右移动 enter:换行&#xff0c;向下移动 shiftenter:向上移动 tab:向右移动 shifttab:向左移动 合并居中操作 开始-》合并居中 CtrlM 内容过长盖过了下一个单元格内容 双击列与列之间线 同时修改多行或者多列宽度或者高度 修改单行高度宽度 选中某一行拉取指定高…