未经许可,不得转载。
文章目录
- 表连接
- 表连接的类型
- 内连接与外连接
- 结合 WHERE 条件
- 交叉连接(cross join)
表连接
在关系型数据库中,建模是数据组织的核心难点。数据库建模需要将数据关系理清,构建出适合存储和查询的结构。
所谓“模型”包括实体(entity) 和关系(relationship) 两部分。实体是指实际存在的对象,通常由一组相关属性组成;关系则描述了这些实体之间的联系,关系通常包括“一对一”“一对多”“多对多”等类型。
以下是一个生产系统的数据库建模设计示例:
在关系型数据库中,每个实体都有一张表,属性则作为表的字段。表与表之间根据关联字段“连接”起来,而表连接是关系型数据库的核心。
表连接的类型
表连接有多种类型:
- 内连接(inner join)
- 左连接(left join)
- 右连接(right join)
- 全连接(full join)
传统上,维恩图用于解释这些连接的区别,如下图所示:
其实,我们可以换一个角度来理解连接。表连接就是通过关联字段,将两张表的数据组合在一起。 问题在于,关联字段的值不总是匹配,比如表 A 包含"1"和"2",而表 B 包含"2"和"3",只有"2"在两表中匹配。
在这种情况下