先决条件–联接(内部, 左侧, 右侧和完全联接)
1.自然联接:
自然联接根据相同的属性名称和数据类型联接两个表。结果表将包含两个表的所有属性, 但每个公共列仅保留一个副本。
例子:
考虑下面给出的两个表:
学生表
![SQL中自然联接和内部联接之间的区别](http://img.readke.com/220415/1K33A192-0.png)
文章图片
标记表
![SQL中自然联接和内部联接之间的区别](http://img.readke.com/220415/1K3363217-1.png)
文章图片
考虑给定的查询
SELECT *
FROM Student S NATURAL JOIN Marks M;
输出如下:
![SQL中自然联接和内部联接之间的区别](http://img.readke.com/220415/1K33C351-2.png)
文章图片
2.内部联接:
内部联接基于ON子句中明确指定的列联接两个表。结果表将包含两个表的所有属性, 包括common列。
例子:
考虑上面的两个表, 查询如下:
SELECT *
FROM student S INNER JOIN Marks M ON S.Roll_No = M.Roll_No;
【SQL中自然联接和内部联接之间的区别】输出:
![SQL中自然联接和内部联接之间的区别](http://img.readke.com/220415/1K3364Q0-3.png)
文章图片
SQL中的自然联接和内部联接之间的区别:
编号 | 自然联接 | 内部联接 |
---|---|---|
1. | 自然联接根据相同的属性名称和数据类型联接两个表。 | 内部联接基于ON子句中明确指定的列联接两个表。 |
2. | 在自然联接中, 结果表将包含两个表的所有属性, 但每个公共列仅保留一个副本 | 在内部联接中, 结果表将包含两个表的所有属性, 包括重复的列 |
3. | 在自然联接中, 如果没有条件指定, 则它将基于公共列返回行 | 在内部联接中, 将仅返回两个表中都存在的那些记录 |
4. | 语法如下: SELECT * FROM table1 NATURAL JOIN table2; |
语法如下: SELECT * FROM table1 INNER JOIN table2 ON table1.Column_Name = table2.Column_Name; |
推荐阅读
- Python探索相关性详细指南
- 高级算法(跳转指针算法原理介绍和实现)
- 转(Android-apt)
- Android使用代码设置Dialog的Style
- Android 反编译工具
- android:layout_weight属性的使用方法总结
- 张高兴的 Xamarin.Android 学习笔记(环境配置)
- Android开发学习之路--性能优化之常用工具
- android之活动状态生存期启动模式