SQL的连接join

一、连接说明

unionintersect等集合运算,它的特征是以 “行” 为单位进行操作,通俗点说,就是进行这些集合运算,会导致记录行数的增减,使用union会增加记录行数,使用 intersectexpect 会减少行记录,集合运算不会导致 “列” 数量的改变。而连接(join) 操作,就是将其他表中的列添加过来,进行 “列添加”的运算。当需要从多张表中取出不同的列组成一个新的查询结果时,就需要用的连接(join)运算了。以下是几种连接运算的简单说明。

1、join 和 inner join

joininner join是一样的,为了简写省掉 inner 可直接写为 join, 内连接,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来,如下:

在这里插入图片描述

2、left join 左连接

left join 左连接,表A left join 表B,以左为主,表示以表A为主,关联上表B的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下

在这里插入图片描述

3、right join 右连接

right join 右连接,表A right join 表B,以右为主,表示以表B为主,关联查询表A的数据,查出表B所有数据以及表A和表B有交集的数据,如下:

在这里插入图片描述

4、outer join

outer joinMySQL中, 外连接必须指定主表,需指定左右,也即 left outer joinright outer join,实际上,就是 left joinright join,为了方便书写把outer省略掉了,在Oracle中,支持全外连接,即 full outer join;

5、交叉连接 CROSS JOIN

交叉连接 CROSS JOIN (也就是耳熟能详的的笛卡尔积),交叉连接的结果是两个表中行数的乘积,交叉连接的结果中包含了内连接,外连接,全连接的所有结果。实际业务中很少会使用交叉连接,因为交叉连接的记过没有实用价值,运算结果函数太多,需要浪费很多运算性能。

6、连接总结

下图可以囊括连接的所有情况

在这里插入图片描述

二、案例

1、表结构

(1)stu表

idname
1张三
2李四
3王二

(2)score表

idfk_stuscore
1110
2220
4440

2、内连接

select * from stu join score on stu.id = score.fk_stu;
idnameid(1)fk_stuscore
1张三1110
2李四2220

3、左连接

select * from stu left join score on stu.id = score.fk_stu;
idnameid(1)fk_stuscore
1张三1110
2李四2220
3王二

4、右连接

select * from stu right join score on stu.id = score.fk_stu;
idnameid(1)fk_stuscore
1张三1110
2李四2220
4440

5、全连接

select * from stu full join score on stu.id = score.fk_stu;
idnameid(1)fk_stuscore
1张三1110
2李四2220
4440
3王二

6、交叉连接

select * from stu cross join score;
1张三1110
2李四1110
3王二1110
1张三2220
2李四2220
3王二2220
1张三4440
2李四4440
3王二4440

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

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

相关文章

后端-锁专题:synchronized(java对象结构、锁的类型、锁升级流程...)

文章目录 对象的结构以及大小内存换算java的常见数据类型以及所占字节数分析对象总共占多少字节,各项占多少字节对象头结构 锁类型锁升级流程 对象的结构以及大小内存换算 java的常见数据类型以及所占字节数 String:8字节 64位 int:4字节 …

asp.net勤工助学管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 勤工助学管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 系统运行视频 https://www.bilibili.com/video/BV1Sz4y1F7GP/ 二、功能介绍 本系统使用Microsoft Visual Studio…

Threejs_10 光线投射技术完成画布三维事件交互

你完成了一个threejs的模型之后,里面有很多东西,你咋知道你点击的是哪个呢??如何触发你点击的事件呢?再canvas画布中可不能和html事件一样直接使用e.target来完成了哦。如何做到呢? 光线投射实现三维定位 …

自动化物流运输设备模组要选择哪种类型?

在自动化物流运输设备中,选择合适的模组类型取决于具体的运输需求和应用场景。 1、同步带模组:同步带模组是一种低噪音、低成本的物流运输设备,适用于中短距离、轻型货物的运输。它采用同步带传动的方式,具有传动准确、运行稳定、…

12 分布式锁加入看门狗

1、看门狗的流程图 2、看门狗的代码实现 /****类说明:Redis的key-value结构*/ public class LockItem {private final String key;private final String value;public LockItem(String key, String value) {this.key key;this.value value;}public String getKey…

消消乐游戏开发,消除类游戏

消除游戏是一类简单而又充满乐趣的休闲游戏,通过匹配相同的元素来完成任务,其简单直观的玩法吸引了大量玩家。本文将为你介绍设计和开发一款成功的消除游戏的关键步骤。 1. 确定核心玩法机制 消除游戏的核心在于匹配相同的元素。首先,明确定…

MyBatis Generator 插件 详解自动生成代码

MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量,甚至不用程序员手动写sql。 它将为所有版本的MyBatis以及版本2.2.0之后的i…

YOLOV5 C++部署的人员检测项目【学习笔记(十一)】

本文为修改后的转载,没有转载链接,所以文章类型暂为原创 文章目录 一、安装Pytorch 及 YOLO v51.1 安装GPU版 pytorch1.2 安装YOLO v5所需依赖 二、YOLO v5训练自定义数据2.1 标注数据2.1.1 安装labelImg2.1.2 标注 2.2 准备数据集2.2.1 组织目录结构2.…

深度学习之三(卷积神经网络--Convolutional Neural Networks,CNNs)

概念 卷积神经网络(Convolutional Neural Networks,CNNs)是一种特殊的神经网络结构,专门用于处理具有网格状结构(如图像、音频)的数据。CNN 在计算机视觉领域取得了巨大成功,广泛应用于图像识别、物体检测、图像生成等任务。以下是 CNN 的主要理论概念: 在数学中,卷…

TeXLive 2023安装教程

TeXLive 2023安装教程 本文介绍最新TeX发行版——TeXLive 2023的安装步骤。如果你想用LaTeX进行写作,那么需要搭建LaTeX环境:可以选择下面两种方案之一进行安装:(1)TeXLive 2023TeXStudio或者(2)TeXLive 2023WinEdt 11。其中TeXLive 2023是由…

[Mac软件]Downie 4.6.34视频下载工具

以下是关于Downie软件的介绍: Downie是一款非常实用的视频下载软件,专门为Mac用户设计。这款软件的使用方法非常简单,只需要将想要下载的视频链接复制到Downie的界面,它就能够自动下载。 Downie最大的特点就是支持的网站非常多&a…

五大匹配算法

五大匹配算法 五大匹配算法 BF 匹配、RK 匹配、KMP 匹配、BM 匹配、Sunday 匹配。 1、BF 匹配 // BF 匹配(暴力匹配) public static int bfMatch(String text, String pattern) {char[] t text.toCharArray();char[] p pattern.toCharArray();int i …

vs code git问题:文件明明已加入忽略文件中,还是出现

vs code git问题:文件明明已加入忽略文件中,还是出现 原因: 因为之前这些文件都已经提交过,线上GIT已经存在,已存在就不能忽略, 解决办法: 先要删除这些文件提交上去,然后把这些文…

使用USB转JTAG芯片CH347在Vivado下调试

简介 高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。 通过XVC协议,将CH347应用于Vivado下,简单尝试可以成功,源码如下,希望可以一起共建&a…

软件系统运维方案

1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 点击获取所有软件开发资料:点我获取

一文了解Spring依赖注入时循环依赖问题

目录 什么是循环依赖 凡是Java的循环依赖都会有问题? 为什么Spring循环依赖会有问题? Spring解决循环依赖问题的思路? 设置二级缓存对象池 方案一直接将实例化对象放入早期对象池 方案一缺点 方案二-将实例化对象处理AOP后放入早期对象…

入行IC | 从小白助理级,到总监专家级,到底要经历怎样的成长阶段呢?

《中国集成电路产业人才发展报告》是业内和IC设计、IC人才都息息相关的一份报告。 (文末可领全部报告资料) * 从报告数据来看,无论在半导体产业的哪个环节,个人发展路径和年薪待遇都是逐级攀升的趋势。 那么从小白助理级&a…

口袋参谋:找关键词的三种方法!

​如何找热搜关键词?99%的商家都不知道。那么今天可以根据我说的三种方法去做。 第一种方法:利用竞争对手 通过分析竞争对手,正在使用和采取何种优化方法,来帮助你理解市场上正在流行什么样的关键字,这些热词可以直接从…

Java自动化驱动浏览器搜索稻香

下载最新的Chrome浏览器 查看chrome版本,在浏览器地址栏输入:chrome://version/ 下载对应的浏览器驱动,将其放到一个目录中,我放到了D:/chromedriver-win64 导入对应的依赖【注意:不要导入最新的版本,最…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大重点分析

数字化时代银行网点厅堂营销存在以下5大重点: 1、厅堂宣传。应以主推产品作为厅堂宣传的宣传重点,结合视频宣传、平面物料、互动机具、陈列物料等多维度,开展有序重复展示,进而加大吸引客户关注度。 2、产品推荐。在识别出中高端…