左连接:

  左连接(left join)即为两张表进行连接时,是以处于left join语句左侧的表为基准去匹配left join语句右边的表,如果左表中的一条数据在右表中能找到与之对应的一条数据,那么就会出现在以虚表形式存在的结果表中,如果没有找到,那么会以null来代替右表中的数据去匹配左表。这样会有一个鲜明的对比,左表中的每一条数据中的对象在右表中的某个属性的存在性是一目了然的。同时在使用on 进行连接时,on的作用仅仅是进行两张表的上诉连接,发挥匹配的功能,它选出来的是满足这种匹配的所有结果,而并不一定是用户所需要的,这时候就要使用where进行条件判断,从而筛选出真正需要的信息。

右连接:

  右连接(right join)本质上是相当于将上述的左连接的这个过程反过来,以连接语句right join右侧的表为基准去匹配左边的表,剩下的道理是一样的,不再赘述。

内连接:

  内连接(inner join)就是在用两张表进行匹配的时候,如果表中任意一条数据在另一张表中都是找不到对应数据的话,那么在结果表中是不会有这一条数据的。也就是说必须是两张表中任意两条能够互相对应着的数据才能被存入到结果表中,有点类似于取交集的味道。这种适用于一旦某条数据为空便没有意义的场景,这时给它设成null也就毫无意义了。表中的数据也因此显得简练很多。

外连接:

  外链接(outer join)与内连接是相反的,就是说,如果某张表中的数据在另一张中找不到对应的条目并不影响它依然出现在查询的结果中,这对于两张表都是满足的,两边都有出现null的可能,这就有一点数学里的并集的意思。

自连接:

  自连接(self join)可能看起来有点晦涩难懂,但是实际上换个角度你就会豁然开朗,你可以把它这个过程想象成两张一样的表进行左连接或右连接,这样就会简单多了,其中一张表通过设别名的方式成为了虚表,但是共享原标中的信息。应用场景是这样的,就是表的一个字段和另一个字段是相同性质的东西,譬如员工与上司,他们本质也都是员工,在员工表中,员工的直接上司编号会以另一个字段的形式出现,但是他的上司的编号也是会出现在员工编号这个字段里。那么在这种情况下,假如需要去查询某一位员工的上司的信息,在已知该员工编号的条件下,可以根据他的编号去获得上司的编号,进而通过上司的编号去获得上司的信息。

浅谈数据库操作的左连接、右连接、内外连接的作用相关推荐

  1. 并发执行变成串行_大神浅谈数据库并发控制 锁和 MVCC

    在学习几年编程之后,你会发现所有的问题都没有简单.快捷的解决方案,很多问题都需要权衡和妥协,而本文介绍的就是数据库在并发性能和可串行化之间做的权衡和妥协 - 并发控制机制.  如果数据库中的所有事务 ...

  2. 浅谈数据库并发控制 - 锁和 MVCC

    文章写得不错,原文地址见 http://draveness.me/database-concurrency-control.html 在学习几年编程之后,你会发现所有的问题都没有简单.快捷的解决方案, ...

  3. 浅谈数据库优化方面的经验

    浅谈数据库优化方面的经验 任何系统.网站几乎都离不开数据库,数据库好比人大脑的记忆系统,没有了数据库就没有了记忆系统.而数据库优化则相当于在同等智力的情况下,利用一种高效率地记忆方法进行更快更优的记忆 ...

  4. 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证

    最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...

  5. mysql事务的四大特性_浅谈数据库事务四大特性

    数据库四大特性分别是:原子性.一致性.分离性.持久性.下面我们看看具体介绍. 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行. ...

  6. 浅谈数据库设计技巧(上)

    浅谈数据库设计技巧(上) 说到数据库,我认为不能不先谈数据结构.1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法.尽管现在的程序开发已由面向过程为主逐步过渡 ...

  7. 浅谈数据库发展史和 OceanBase 的诞生

    浅谈数据库发展史和 OceanBase 的诞生 原创 杨传辉 OceanBase 昨天 本文作者:杨传辉(花名:日照)蚂蚁集团资深总监.OceanBase 研发总经理,全面负责 OceanBase 研 ...

  8. mysql系统研究现状_浅谈数据库的现状和发展 毕业论文.doc

    浅谈数据库的现状和发展 摘 要 学生学籍管理系统是一个教育单位不可缺少的部分,它的对于学校管理至关重要学生学籍管理系统能够为用户提供信息和快捷的查询手段.使用传统人工方式管理文件学籍,这种管理方式存在 ...

  9. 浅谈dom操作removechild()

    浅谈dom操作removechild() 作为一个从ui设计转向前端的小白,之前一直是在对自己设计的界面写html和css,极少去写js,刚刚把盒子模型和响应式布局这一块的东西有了一点理解,又开始学习 ...

  10. 浅谈线程池(中):独立线程池的作用及IO线程池

    在上一篇文章中,我们简单讨论了线程池的作用,以及CLR线程池的一些特性.不过关于线程池的基本概念还没有结束,这次我们再来补充一些必要的信息,有助于我们在程序中选择合适的使用方式. 独立线程池 上次我们 ...

最新文章

  1. 找到反例!博士后数学家推翻困扰数学界80多年的单位猜想
  2. 精通python网络爬虫-精通Python网络爬虫:核心技术、框架与项目实战 PDF
  3. 简单查找,如果找到返回下标,如果找不到返回-1
  4. postgresql常用数据类型:数值、日期、字符串类型
  5. 【蓝桥杯Java_C组·从零开始卷】第六节(一)、Java常用数学函数
  6. android tag的使用方法,Android:如何使用Html.TagHandler?
  7. CMDB功能分析与实现方案
  8. 索引---B+Tree
  9. python 动态规划 数塔_数塔问题,简单的动态规划算法
  10. php 域名白名单,域名白名单验证
  11. 对称二叉树(信息学奥赛一本通-T1368)
  12. 基于HTML5的网络拓扑图 - 设备状态面板
  13. 苹果:我们从未向中国政府透露源代码
  14. java日记 简单Java家庭记账系统
  15. 斐讯K2 V22.X.X.X 新版固件 刷机教程 (开telnet,安装SSH,adbyby,刷breed,华硕Padavan)
  16. Dockerfile 概念简介
  17. 赤诚的火焰--致时代里永远不变的规矩
  18. 射频识别技术软硬件系统研制
  19. 面试系列-3 限流场景实践
  20. 我的自定义知乎首页及问题页的样子

热门文章

  1. wireshark 安装失败报错,缺少kb2999226补丁的解决方案
  2. ZigBee Zstack协议栈
  3. 计算机英语听力速记...,2018计算机考研英语听力速记技巧才是王道
  4. ★C语言期末课程设计★——教师工资管理系统(详细报告+源代码+详细注释)
  5. 少儿编程内容(市场各年龄段热门学习软件列表)
  6. 计算机专业可以转英语吗,计算机专业英语词汇转.doc
  7. 【MySQL】JDBC下载
  8. Spreadjs表格
  9. android 无损分区,有什么可行办法把安卓4.4用的tf卡第一个分区从fat32无损转换成ext4?...
  10. 偏相关分析MATLAB代码实现