永发信息网

内连接和外联结的区别

答案:2  悬赏:50  手机版
解决时间 2021-03-20 12:39
  • 提问者网友:你给我的爱
  • 2021-03-19 12:57
内连接和外联结的区别
最佳答案
  • 五星知识达人网友:过活
  • 2021-03-19 13:14
98252441.doc
表之间的连接分为三种:

1.

内连接
(
自然连接
)
Join
默认的连接就是
inner join
,因此
inner
是可以省略的。

(以表
mm_fault

mm_fault_tree
为例:


Eg
:①
select f.name,t.name from mm_fault f inner join mm_fault_tree t on f.categories_id = t.id;
其查询结果和:


select f.name,t.name from mm_fault f,mm_fault_tree t where f.categories_id = t.id;
的查询结果
是一样的,也就是说,这两个查询语句是可以通用的。


自然连接:

Natural join


自然连接是内链接的一种。自然连接是在两张表中寻找那些数据类型和列名都相同的字段,
然后自动地将他们连接起来,并返回所有符合条件按的结果。

①如果做自然连接的两个表有多个字段都满足有相同的名称和类型,
那么他们会被作为自然
连接的条件。

②如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将返回“错误”


2.
外连接
(Outer Join)

1
)左外连接

(
左边的表不加限制
) left outer join/left join

2
)右外连接
(
右边的表不加限制
) right outer join/



3
)全外连接
(
左右两表都不加限制
) full outer join/




Outer join +on
子句(用于指定连接条件)其中
outer
可以省略。


如果使用
from
子句指定内、外连接,则必须要使用
on
子句指定连接条件;


如果使用(
+
)操作符指定外连接,则必须使用
where
子句指定连接条件。


outer
join
则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它
还返回任何在第二个输入中没有匹配行的第一个输入中的行。


在左外连接和右外连接时都会以一张表为基表,
该表的内容会全部显示,
然后加上两张表
匹配的内容。

如果基表的数据在另一张表没有记录。

那么在相关联的结果集行中列显示为
空值(
NULL



e.g: a left join b

a
为基表,
b
选择显示


对于外连接,

也可以使用“
(+)
”来表示。

关于使用(
+
)的一些注意事项:

1.

+
)操作符只能出现在
where
子句中,并且不能与
outer join
语法同时使用。

2.
当使用(
+
)操作符执行外连接时,如果在
where
子句中包含有多个条件,则必须在所有
条件中都包含(
+
)操作符

3.

+
)操作符只适用于列,而不能用在表达式上。

4.

+
)操作符不能与
or

in
操作符一起使用。

5.

+
)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

e.g

select * from a,b where a.id=b.id(+);
a
为基表,全部显示,
left join,
左外连接
全部回答
  • 1楼网友:洒脱疯子
  • 2021-03-19 14:11

连接 只是 表面的把两个实体连在一起,而没有本质(内在)的联系

而联结除了有表面的联系外,还有内在的联系!!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯