彻底搞懂数据库内连接、外连接
文章目录
- 一、定义
- 1、内联接
- 2、外联接
- 3、交叉联接
- 二、示例
一、定义
1、内联接
典型的联接运算,使用像 = 或 <> 之类的比较运算符。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。
2、外联接
外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN 或 LEFT OUTER JOIN 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN 右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN 完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
3、交叉联接
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。 FROM 子句中的表或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外联接排列表的更多信息,请参见使用外联接。
二、示例
建立一个 student 和 clazz 表
clazz
id name
1 一班
2 二班
3 三班
student
id name clazz_id
1 小明 2
2 小红 3
3 小张
内连接查询:select* from student inner join clazz on clazz.id=student.clazz_id;
查询结果,两个表相同条件的的部分显示出来。
左连接查询:select* from student left outer join clazz
on clazz.id=student.clazz_id;
student 表中内容全部显示,clazz 表显示符合的条件,clazz 中没有的地方显示为 null。
查询结果
右连接查询:select* from student right outer join clazz
on clazz.id=student.clazz_id;
clazz 表中内容全部显示,student 表显示符合的条件,student 中没有的地方显示为 null。
查询结果
彻底搞懂数据库内连接、外连接相关推荐
- MySQL--基础知识点--64--等值连接/自连接/自然连接/外连接
该篇文章基于以下三个表进行解析 student表 DROP TABLE IFEXISTS `student`;CREATE TABLE student (`sid` INT NOT NULL AUTO ...
- MySQL 表的增删改查(进阶篇②)· 联合查询 内连接 外连接 · 自连接 · 子查询 exists · 合并查询 union
接进阶篇①,我们继续学习. 一.联合查询 1.1 内连接 1.2 外连接 1.3 内连接和左右外连接的区别 二.自连接 三.子查询 3.1 单行子查询 3.2 多行子查询 使用 in 范围匹配多行 另 ...
- SQL语法 自然连接 外连接 内连接
文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...
- 数据库内、外、左、右连接详解
写在前面: 数据库连接操作非常重要,明确连接操作有助于更好地掌握SQL语句查询操作. 数据库连表方式: 内连接 :inner join 外连接 :outer join 左外连接 :left outer ...
- Oracle 表连接方式(内连接/外连接/自连接) 详解
Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左 ...
- mysql外连接_mysql学习-mysql内连接外连接
SQL99标准,也称为SQL1999标准 分类:内连接,外连接 一.内连接 使用 inner join ...on 语法: select 列名1 别名1,列名2 别名2... from 表名1 别名 ...
- 内连接外连接全连接(简单实例)
内连接查询 符合连接的条件的数据被选中,不符合条件的数据被滤去 sql练习所用文件 隐式内连接 使用where条件消除无用数据 SELECTemp.ename,emp.salary,dept.dnam ...
- SQL 内连接,外连接
假设一堆男女在教堂,有夫妇有单身的,假设男为左表,女为右表 教父说:结了婚的人请出去,结了婚的人请手拉手,于是结了婚的男女站了起来,这就是INNER 内连 教父说:男的并且和这些男的结婚的女的请出去, ...
- HIVE 中 内连接 外连接 左外连接 右外连接 全外连接 联合操作
hive的join操作,只支持等值连接 创建customers和orders表,一对多关系 创建customers表 create table customers(id int,name string ...
- java内连接外连接_SQL中的内连接与外连接--Java学习网
核心提示:连接运算格式链接运算由两部分构成:连接类型和连接条件连接类型可分为:INNER JOIN 内连接LEFT OUTER JOIN 左外连接RIGHT OUTER JOIN 右外连接FULL O ...
最新文章
- IP协议号(TCP协议号/UDP协议号)
- mvn本地生成jar包放在mvn项目依赖(将jar包传到本地仓库)
- 如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式...
- android 监听手机电量变化
- lisp ssget 浩辰_AutoCAD和浩辰CAD,gCAD都可以用的lisp
- Pyhton函数式编程简介(四)装饰器
- 苹果新隐私政策在iOS14.4测试版上线:能允许或拒绝“跟踪”
- 六年级计算机应用计划,六年级信息工作计划
- 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例28
- 华为交换机防MAC地址漂移原理和实验
- 【软考】中级软件设计师的一些知识点笔记(22.2.10)
- 腾讯云服务器2003系统,腾讯云服务器windows2003系统续用的说明
- 获两个千亿IPO投资人王刚:要逼自己在质上进取,不是在量上贪婪
- 微信小程序进度条组件自定义数字_微信小程序小技巧系列《十三》多级联动,自定义圆形进度条 ... ......
- Leetcode 460. LFU 缓存
- Cloudflare到底是不是减速器 免费版cf是减速器吗(实际测试)
- 小米3g路由器编译libwebsockets
- 程序员成功之路 ——The road ahead for programmer(演讲稿)(转)
- 【Java数据结构】泛型详解+图文,通配符上界、下界
- 通信对抗干扰技术简单综述与MATLAB仿真