SQL中自然联接和内部联接之间的区别

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

SQL中自然联接和内部联接之间的区别

文章图片
标记表
SQL中自然联接和内部联接之间的区别

文章图片
考虑给定的查询
SELECT * FROM Student S NATURAL JOIN Marks M;

输出如下:
SQL中自然联接和内部联接之间的区别

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

【SQL中自然联接和内部联接之间的区别】输出:
SQL中自然联接和内部联接之间的区别

文章图片
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;

    推荐阅读