先决条件–联接(内部, 左侧, 右侧和完全联接)
1.自然联接:
自然联接根据相同的属性名称和数据类型联接两个表。结果表将包含两个表的所有属性, 但每个公共列仅保留一个副本。
例子:
考虑下面给出的两个表:
学生表

标记表

考虑给定的查询
SELECT *
FROM Student S NATURAL JOIN Marks M;
输出如下:

2.内部联接:
内部联接基于ON子句中明确指定的列联接两个表。结果表将包含两个表的所有属性, 包括common列。
例子:
考虑上面的两个表, 查询如下:
SELECT *
FROM student S INNER JOIN Marks M ON S.Roll_No = M.Roll_No;
输出:

编号 | 自然联接 | 内部联接 |
---|---|---|
1. | 自然联接根据相同的属性名称和数据类型联接两个表。 | 内部联接基于ON子句中明确指定的列联接两个表。 |
2. | 在自然联接中, 结果表将包含两个表的所有属性, 但每个公共列仅保留一个副本 | 在内部联接中, 结果表将包含两个表的所有属性, 包括重复的列 |
3. | 在自然联接中, 如果没有条件指定, 则它将基于公共列返回行 | 在内部联接中, 将仅返回两个表中都存在的那些记录 |
4. | 语法如下: SELECT * FROM table1 NATURAL JOIN table2; |
语法如下: SELECT * FROM table1 INNER JOIN table2 ON table1.Column_Name = table2.Column_Name; |