数据库join的用途和用法(四)

 时间:2024-10-12 11:46:30

1、首先,我们先考浞骒镤迫虑以下左表和右表为多对一的情况,例如上数学课的学生对上教师,这个是后我们采用学生表 LEFT OUTER JOIN 数学教师表后,其实我们会发觉这是不是多对一其实没有任何影响,因为LEFT OUTER JOIN本身就是左表数据全部保留,而右表数据满足条件的再遵循ON后的条件做插入的,所以其实对于左边的每一条数据,右表要么没有对应的,要么有且仅有一条有效数据可以和左表对应,其实这也就是数学上映射的关系,因此其实这对于一条数据而言,也可以说是单对单的,是满足函数f(x)的关系的,因此不仅join以后数据量没有发生变化,连数据的内容也没有半点变化,right join与此相反。详情见下图:

数据库join的用途和用法(四)

2、然后就是一对多的状况了,首先,在右表有n条数据和左表1条做对应的情况下,很显然,左表的一条数据在我们JOIN之后的表中就变成了n条数据,相较于一对一的关系,这就多了n-1条数据,而且左右表中每有一种这样子的一对多的关系,都会相应的增加记录,而且很显然,只要左右表有这样的关系以后,原先左表的主键在新表中,也就不在唯一了。

数据库join的用途和用法(四)

3、最后是多对多,其实多对多没有什么好说的,因为一对多和多对一的笛卡儿积就是多对多,既然前面说过多对一等同于一对一,那么实际上多对多的关系其实和一对多的关系是一样的,也就是其实右表的一条数据,是否可以对应与左表的多条数据,我们并不关心,我们关心的只有左表的一条数据和右表的多条数据的对应关系,毕竟LEFT OUTER JOIN 中,只有左表是无条件加入到join表中的,右表只是一个满足条件的依附品而已。

数据库join的用途和用法(四)

4、那么说到这里,很多人也可以想到我接下来要说什么了,对,就是有一个join,可以使得左右表中只要有一个表满足要求,就可以返回一行结果的,就是僻棍募暖FULL OUTER JOIN,这个的原理其实也不用我细说,大家就完全可以理解为A LEFT OUTER JOIN B UNION B LEFT OUTER JOIN A 这样子就可以了,其实FULL OUTER JOIN 也就是这么回事而已。下图为我们的一个举例:

数据库join的用途和用法(四)

5、最后我们再来谈一下INNER JOIN,前面我们一直都在说的都是XXX OUTER JOIN 那么我们也肯定是有相对应的 INNER JOIN 的,但是为什么我们很少提这个呢,因为INNER JOIN的含义只是,A和B两个表都满足后面的条件,才可以被查询出来,对,没错,和where = 一模一样,那么这个join也就没有它的特殊的存在意义了。

数据库join的用途和用法(四)

6、最后,对于数据库中JOIN的介绍也就到此为止了,不知道各位在阅读完这一些之后有没有收获到想要得到的东西,最后,再次希望本文可以在数据库学习之众帮到大家,谢谢。

  • SPSS中如何将“用户名”变为分类变量
  • 职业生涯规划咨询报告的制作
  • spss怎么安装
  • 专硕和学硕哪个竞争力含金量高
  • 热门搜索
    民族团结一家亲手抄报 普通话的手抄报 法制手抄报图片 法制宣传手抄报 语文手抄报图片 中秋节手抄报图片大全 溺水手抄报简单又漂亮 国庆手抄报内容 秋天手抄报 食品安全手抄报图片