[数据库与SQL]
来源:互联网 发布:ubuntu ssd 性能优化 编辑:程序博客网 时间:2024/06/06 10:45
首先,我们放上一张图,清晰地显示什么是内连接,外连接:
(图片来自百度图片)
1. 内连接,又可以简称为连接。是我们投影在左右两表中匹配条件的行,在结果表中删除与其他被连接表中没有匹配行的所有行。
例如我们有以下两个表:
teacher 表:
course表:
我们以tid为条件,进行内连接(以其他非共有列为条件没有实际意义,)
可以看到,结果选取了course 和 teacher tid 列中在左右表均匹配的行,然后投影、连接到一起组成结果表。
同时,在mysql中,inner join 也可以简写为join
2. 外连接:内连接选取的是两个表均匹配的行,外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。如果基表的数据在另一张表没有记录。那么在相关联的结果集行中列显示为空值(NULL)
外连接分为左外连接和右外连接,全连接,如何记忆外连接中的主表呢?在外连接中,左右即表示主表是哪一个。
A 左连接 B : A(左表)为 主表,其所有行均被选取,B中不存在的行以null显示
A 右连接 B : B(右表)为主表,其所有行具备选取,A中不存在的行以null显示
全连接中,左右表所有行均被选取,不被匹配的行以null填充
我们来看几个例子:
在上面的例子中,由于course表为主表,所以course中所有的行被选中,teacher中没有匹配的行以null表示
在Mysql中,没有 full join 关键字,所以无法直接进行全连接。但是我们仔细查看全连接和左右连接的关系,我们会发现,全连接其实是左右连接的并集。
我们使用左右连接来实现全连接:
P.S. 文章不妥之处还望指正
- 数据库与SQL语言
- sql数据库与tcpview
- 数据库与sql简介
- SQL与各种数据库
- 数据库与SQL语言
- [数据库与SQL]
- [数据库与SQL]
- [数据库与SQL]
- [数据库与SQL]
- [数据库与SQL]
- 数据库与SQL基础
- SQL数据库与JDBC技术
- sql数据库分离与附加
- SQL数据库备份与还原
- Access数据库与SQL不一样
- SQL数据库备份与还原
- SQL收缩日志与数据库
- sql 数据库备份与还原
- POJ 2886 Who Gets the Most Candies?
- 有千位分隔符的数字动画加载效果
- [FreeBSD] 手动分区并恢复数据
- .net Core 启动域名及端口配置
- 03.js数据类型之间的转换与运算
- [数据库与SQL]
- Wolf从零学编程-用Python打造简单加密程序(五)
- ARKit初体验
- sqoop1 常用命令及hive导入参数参考
- 算法系列——调整数组顺序使奇数位于偶数前面
- grep 查找
- SQL基础知识
- 51nod1459 迷宫游戏
- Wolf从零学编程-用Python打造简单加密程序(六)