理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接

2023-11-06

一、多表查询

在这里插入图片描述

二、在 MySQL 中创建 book 和 actor 两张表
1 创建 book 表及添加数据
CREATE TABLE `book` (
	`id` INT PRIMARY KEY NOT NULL AUTO_INCREMEN,
	`bookName` VARCHAR (60),
	`author` VARCHAR (60)
); 
INSERT INTO `book` (`id`, `bookName`, `author`) VALUES('1','水浒传','施耐庵');
INSERT INTO `book` (`id`, `bookName`, `author`) VALUES('2','三国演义','罗贯中');
INSERT INTO `book` (`id`, `bookName`, `author`) VALUES('3','西游记','吴承恩');
INSERT INTO `book` (`id`, `bookName`, `author`) VALUES('4','红楼梦','曹雪芹');

在这里插入图片描述

2 创建 actor 表及添加数据
CREATE TABLE `actor` (
	`id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
	`actorName` VARCHAR (30),
	`gender` VARCHAR (3),
	`designation` VARCHAR (30),
	`bookId` INT 
); 
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('1','唐僧','男','旃檀功德佛','3');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('2','孙悟空','男','斗战胜佛','3');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('3','猪八戒','男','净坛使者','3');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('4','沙僧','男','金身罗汉','3');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('5','刘备','男','字玄德','2');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('6','关羽','男','字云长','2');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('7','张飞','男','字翼德','2');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('8','宋江','男','及时雨','1');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('9','林冲','男','豹子头','1');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('10','武松','男','行者','1');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('11','李逵','男','黑旋风','1');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('12','鲁智深','男','花和尚','1');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('13','贾宝玉','男','宝玉','4');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('14','林黛玉','女','黛玉','4');
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('15','薛宝钗','女','宝钗','4');

在这里插入图片描述

三、内连接
1 隐式内连接:没有JOIN关键字,条件使用WHERE指定
SELECT 字段 FROM1,2 WHERE 条件;
SELECT * FROM book b, actor a WHERE a.bookId = b.id AND a.bookId = 3;

在这里插入图片描述

2 显式内连接:使用INNER JOIN ... ON语句, 可以省略INNER
SELECT 字段 FROM 左表 INNER JOIN 右表 ON 表连接条件 WHERE 查询条件;
SELECT * FROM book b INNER JOIN actor a ON a.bookId = b.id WHERE a.bookId = 2;

在这里插入图片描述

四、左外连接
1 左外连接:使用LEFT OUTER JOIN ... ONOUTER可以省略
SELECT 字段 FROM 左表 LEFT OUTER JOIN 右表 ON 表连接条件 WHERE 查询条件;
左外连接可以理解为:将满足要求的数据显示,左表不满足要求的数据也显示(在内连接的基础上,保证左表的数据全部显示)
2 在 book 表中添加新的书籍
INSERT INTO `book` (`id`, `bookName`, `author`) VALUES('5','斗罗大陆','唐家三少');

在这里插入图片描述

3 使用内连接查询
SELECT * FROM book b INNER JOIN actor a ON a.bookId = b.id;

在这里插入图片描述

4 使用左外连接查询
SELECT * FROM book b LEFT OUTER JOIN actor a ON a.bookId = b.id;

在这里插入图片描述

五、右外连接
1 右外连接:使用RIGHT OUTER JOIN ... ONOUTER可以省略
SELECT 字段 FROM 左表 RIGHT OUTER JOIN 右表 ON 表连接条件 WHERE 查询条件;
右外连接可以理解为:满足要求的数据显示,并且右表不满足要求的数据也显示(在内连接的基础上保证右边的数据全部显示)
2 在 actor 表中添加新的人物
INSERT INTO `actor` (`id`, `actorName`, `gender`, `designation`, `bookId`) VALUES('16','史湘云','女','湘云',NULL);

在这里插入图片描述

3 使用内连接查询
SELECT * FROM book b INNER JOIN actor a ON a.bookId = b.id;

在这里插入图片描述

4 使用右外连接查询
SELECT * FROM book b LEFT OUTER JOIN actor a ON a.bookId = b.id;

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接 的相关文章

随机推荐

  • R语言基本数据结构

    R语言系列文章目录 文章目录 R语言系列文章目录 前言 一 向量 二 矩阵 三 数组 四 列表 五 数据框 前言 一篇技术博客的写作不可能面面俱到 那这就意味着必须抛弃一些内容 在R语言的书里对于R的基础知识的讲解很容易找到 因此 这一R语
  • qt文件操作

    第一步 手动获取文件路径 include
  • 动态代理简单实现

    动态代理简单实现 文章目录 动态代理简单实现 一 反射 二 反射机制提供的功能 1 相关API 2 Class类的理解 4 创建类的对象的方式 5 Class实例可以是那些结构的说明 三 类的加载过程 四 动态代理 反射的动态性 一 反射的
  • LeetCode:设计循环队列

    题目链接 622 设计循环队列 力扣 Leetcode https leetcode cn problems design circular queue 还是老套路二话不说 先上代码 typedef struct int front int
  • win11下经典jdk8的安装与环境变量的配置(一看就懂,超级详细!!!)

    1 安装jdk8 由于Oracle官网需要注册账号才能下载 不想注册的同学们可以直接通过下面的地址下载 因为新的jdk版本变化不是很大 所以初学者用1 8版本就足够啦 链接 https pan baidu com s 1HjoXGTlaPw
  • 函数栈帧的创建和销毁

    全文目录 前言 寄存器 main函数的调用 调用main函数的函数 main函数的栈帧如何开辟的 push 保存调用方的 ebp move 维护新开栈帧的栈底 sub 维护新开栈帧的栈顶 三连 push 添加栈帧的信息的变量 lea 存放栈
  • spring中的quartz调度问题

    1 SchedulerFactoryBean会自动启动 当在spring文件中定义了多个SchedulerFactoryBean实例时 一定要小心 因为这些ScheduleFactoryBean自从load进程序里 就会自动启动 如果要手动
  • Grafana

    一 Grafana 数据可视化 1 下载各种环境以及版本地址 https grafana com grafana download platform windows 2 windows下的安装并运行 https www jianshu co
  • Leetcode2488-统计中位数为 K 的子数组

    数组中的元素只有三种 等于k的 大于k 小于k的 首先找到k在数组中的位置p 分别统计p左侧和右侧的每个位置有多少个元素大于或小于k 假设向左开始记录 首先记c 0 遇到大于k的元素则c 否则c 表示这个位置到p之间净有c个元素大于k 同理
  • 科学计算库Numpy

    一 创建Numpy数组 创建一个一维数组 data1 np array 1 2 4 创建一个二维数组 data2 np array 1 2 3 4 5 6 1 2 3 创造元素值都是0的数组 np zeros 3 4 创建元素值全是1的数组
  • ai作文批改_好未来:AI智能批改中英文作文为老师“减负”

    开篇诗词点题 结尾升华主题 非常赞 细节上 人物描写方法多样 人物的性格特点描绘细致 整体上 内容凸显文章主题 语言新颖清爽 读来令人如沐春风 这是一份语文作文的批改反馈 不过 这份生动详细的批改反馈并不普通 它是利用好未来自主研发的 中英
  • vue动态渲染ref,获取this.$refs.xxx.style为undefined获取循环元素中的style

    正常情况下通过this refs xxx style获取是没问题的 本文遇到的是要获取循环列表中某一元素 并改变其样式 设置ref在v for列表上 直接获取this r e f s n a
  • antd4.x 使用setfieldsvalue动态修改表单值

    表单的默认值可以用 Form 里的 initialValues 来设置 但是 initialValues 不能被 setState 动态更新 因此需要用 setFieldsValue 来更新 1 创建ref实例 创建ref实例 export
  • 技术支持岗位面试问题汇总,绝对有你遇到的面试题!!

    交换机与路由器的区别 1 路由器能拨号 交换机不能 2 无线路由器能使无线设备WIFI上网 交换机不行 3 外形上 从外形上我们区分两者 交换机通常端口比较多看起来比较笨重 而路由器的端口就少得多体积也小得多 4 工作层次不同 最初的交换机
  • 2019最新计算机毕业设计-题目汇总大全-系列1

    课设题目 备注 基于NLP ASR及TTS技术的智能语音分析工具 负责语义分析部分 论文替代 基于SpringBoot的用户音乐平台 家装设计公司客户关系系统 基于机器学习的文本语义分析工具 基于微信小程序的私教预约系统 标准化轮胎仓库管理
  • (转)读源码品Caffe - 结构流程篇

    原文链接 https blog csdn net jinzhuojun article details 79834697 背景 本文主要介绍深度学习框架Caffe的工作原理和实现 时至今日 各种深度学习框架百花齐放 百家争鸣 从流行程度来说
  • R软件的rattle安装指南

    rattle安装问题 1 正常安装情况 2 无法正常安装情况 2 1版本号不对应 2 2网络不稳定 2 3文字乱码问题 1 正常安装情况 这是先基于R4 0 0 这个在3 6的版本都成功过 看到有人说4 0 0不能安装 因此特地去安装尝试下
  • maven环境变量配置(超详细!)

    下载地址 官网地址 建议不要下载在C盘 配置过程 1 解压下载好的压缩包 2 此电脑 右键 属性 高级系统设置 环境变量 3 新建一个系统变量 点击系统变量的新建 变量名 MAVEN HOME 变量值 maven解压的目录 通过浏览目录选择
  • pyspark访问hive数据实战

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前我们部门在数据分析这边每天的日报都是直接使用hive脚本进行调用 随着APP用户行为和日志数据量的逐渐累积 跑每天的脚本运行需要花的时间越来越长 虽然进行了sql优化
  • 理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接

    一 多表查询 二 在 MySQL 中创建 book 和 actor 两张表 1 创建 book 表及添加数据 CREATE TABLE book id INT PRIMARY KEY NOT NULL AUTO INCREMEN bookN