数据中的连接join分为内连接、自然连接、外连接,外连接又分为左外连接、右外连接、全外连接

当然,这些分类都是在连接的基础上,是从两个表中记录的笛卡尔积中选取满足连接的记录。笛卡尔积简单的说就是一个表里的记录要分别和另外一个表的记录匹配为一条记录,即如果表A有3条记录,表B也有三条记录,经过笛卡尔运算之后就应该有3*3即9条记录。如下表:

自然连接(natural join)
自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。
sql语句:Select …… from 表1 natural join 表2
结果:

内连接(inner join)
内连接基本与自然连接相同,不同之处在于自然连接要求是同名属性列的比较,而内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。
sql语句:Select …… from 表1 inner join 表 2 on 表1.A=表2.E
结果:

自然连接时某些属性值不同则会导致这些元组会被舍弃,那如何保存这些会被丢失的信息呢,外连接就解决了相应的问题。外连接分为左外连接、右外连接、全外连接。外连接必须用using或on指定连接条件。

左外连接(left outer join)
左外连接是在两表进行自然连接,只把左表要舍弃的保留在结果集中,右表对应的列上填null。
sql语句:Select …… from 表1 left outer join 表2 on 表1.C=表2.C
结果:

右外连接(rignt outer join)
右外连接是在两表进行自然连接,只把右表要舍弃的保留在结果集中,左表对应的列上填null。
Select …… from 表1 rignt outer join 表2 on 表1.C=表2.C
结果:

全外连接(full join)
全外连接是在两表进行自然连接,只把左表和右表要舍弃的都保留在结果集中,相对应的列上填null。
Select …… from 表1 full join 表2 on 表1.C=表2.C
结果:

原文地址:https://www.cnblogs.com/caozengling/p/5318696.html

数据库中的内连接、自然连接、和外连接的区别相关推荐

  1. 数据库中的内连接、自然连接和外连接的区别

    数据中的连接join分为内连接.自然连接.外连接,外连接又分为左外连接.右外连接.全外连接 当然,这些分类都是在连接的基础上,是从两个表中记录的笛卡尔积中选取满足连接的记录.笛卡尔积简单的说就是一个表 ...

  2. 数据库:区分笛卡儿积、自然连接、内连接、等值连接、外连接

    假设存在两张表 c 和 p,这里使用的是MySQL数据库. 数据表 c: course_id title dept_name credits BIO-301 Genetics Biology 4 CS ...

  3. mysql a左外连接b b左外连接c_数据库中的 内连接,外连接(左连接,左外连接,右连接,右外连接),全连接,交叉连接...

    数据库的连接类型:内连接,外连接,全连接 ,交叉连接 作用:连接是关系数据库的特点,数据的关联查询用到 多表连接 提高查询效率 前段时间面试被问到数据库的内连接和外连接的问题,进过一番周折的无师自通, ...

  4. 数据库学习之MySQL (十六)—— SQL99 外连接 左外连接 右外连接 全外连接 交叉连接

    文章目录 外连接 之 左外连接 与 右外连接 为啥要用外连接 全外连接 总结 内连接 外连接 交叉连接 外连接 之 左外连接 与 右外连接 我们先来看个之前的 女神男朋友的案例 传送:数据库学习之My ...

  5. 实例讲解内连接、左连接、右连接、交叉连接、外连接以及全连接

    目录 示例表: 1.内连接-inner: 实例1:内连接表a和表b 实例2:内连接表a和表c 实例3:内连接表a和表b,使用">"号 实例4:内连接表a和表b,使用" ...

  6. oracle左外连接语法,Oracle 左外连接、右外连接、全外连接小总结

    Oracle 左外连接.右外连接.全外连接小总结: 1.左外连接: left outer join 或者 left join 左外连接就是在等值连接的基础上加上主表中的未匹配数据,例: SELECT ...

  7. LINQ IN ACTION读书笔记:LINQ 使用连接 1、组连接 2、内连接 3、左外连接 4、交叉连接 使用和区别...

    使用的数据源类型: static public class SampleData{static public Publisher[] Publishers ={new Publisher {Name= ...

  8. mysql的内连接、等值连接、外连接

    内连接就是等值连接 所以一般直接在where语句中直接将相同字段用等号连接就行. select emp.empno,emp.ename,emp.deptno,dept.loc from emp,dep ...

  9. SQL优化--使用内连接(inner join)代替外连接(left join,right join) (转)

    避免 LEFT JOIN 和 NULL 当然,有很多时候您需要执行 LEFT JOIN 和使用 NULL 值.但是,它们并不适用于所有情况.改变 SQL 查询的构建方式可能会产生将一个花几分钟运行的报 ...

  10. Oracle 多表查询 --笛卡尔集--左连接--右连接--1999 语法--满外连接

    Oracle 多表查询总结 笛卡尔集现象: 笛卡尔集会在下面条件下产生: – 省略连接条件 – 连接条件无效 – 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在where加入有效的连接条件. O ...

最新文章

  1. 单链表排序----快排 归并排序
  2. word或wps中mathtype在工具栏/菜单栏消失的解决方法
  3. 计算机辅助的开发方法,基于计算机辅助设计技术(TCAD)的工艺开发
  4. java日期类的计算问题_java日期计算(Calendar类)
  5. boost::sort模块使用 string_sort 使用复杂的多部分键对结构进行排序
  6. 对象的软、弱、和虚引用
  7. axios发送自定义请求头的跨域解决
  8. 一道Python面试题
  9. jquery weui 中alert弹出框在ios中跳动问题
  10. 解决Idea中Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:3.1.0配置问题
  11. 拓端tecdat|Python使用矩阵分解法找到类似的音乐
  12. Filenet:主打底层技术创新,检索分发挖矿开创全民挖矿时代!
  13. 嵌入式平台 STM32 libqrencode 移植 二维码生成
  14. linux中dd命令增加内存使用率,Linux 下使用 dd 命令进行硬盘 I/O 性能检测
  15. 《“理想我”与“现实我”》
  16. linux服务器开发三(网络编程)
  17. 有哪些科研人员看文献必用的软件?
  18. SqlDeveloper一直显示正在连接而sqlplus可以连接到数据库
  19. Python数据分析第十二课:单变量、双变量及多变量分析图
  20. @Pointcut 配置用法浅析

热门文章

  1. 2018程序员必读书单
  2. 计算机网络原理之运输层
  3. 抽象代数学习笔记四《群:子群、同构、同态》
  4. 【干货】|800份实战经验PPT免费下载
  5. 十分钟倒计时flash_Flash 101-第6部分:最终倒计时
  6. LAMP架构介绍及配置
  7. 在互联网大厂,我月入过万,合租却让我落泪
  8. ueditor修改默认图片保存路径,ueditor根据楼盘ID保存图片路径
  9. avast android高级版,排名第一 Android杀毒软件avast!评测
  10. 【180626】VC挖金子游戏源代码