Oracle表的内连接与外连接的操作实现

版权声明:转载请备注原文链接 https://blog.csdn.net/qq_40868987/article/details/85082420

对于两张数据表进行数据查询时,对于消除笛卡尔积主要是依靠连接模式处理的,而对于数据库的定义有两种:内连接和外连接

内连接:使用WHERE子句消除笛卡尔积,这就属于内连接,只有满足条件的数据才会显示

外连接:分为三种,左外连接,右外连接,全外连接

为了更好的观察到连接的区别,现在已经在部门表中提供了

内连接实现效果

对于数据表的连接操作,从实际使用来讲,各个数据库都是有所支持的,所以对于所有的数据库,进行表连接最好的做法是利用以下的语法完成:

使用左连接,希望所有的雇员信息都显示出来,即便他没有对应的部门

观察三:使用右外连接,将所有的部门信息都显示出来

内连接就是所有满足关联条件的数据出现,不满足的不出现,外连接就是指定一张数据表中的全部内容都显示,但是没有对应关系的其他表则不显示

第二步:加入领导信息,需要引入自身关联,而后消除笛卡尔积

第三步:发现EMP表(数据不完整),因为数据不满足于等值关联判断,所以想让信息显示完整,则必须使用外连接控制,

范例:实现自然连接(内连接)

3、使用自然连接是要求两张表的字段名称相同,但如果某一天两张表不相同了,或者两张表中有两组字段都是重名的,所以这种利用on子句指定关联条件,而利用USING子句设置关联字段,

范例:使用USING子句设置关联字段实现自然连接

4、外连接,语法:

范例:观察左外连接

范例:观察右外连接

观察全外连接

数据集合操作

数据集合:交集,差集,并集,补集。

每一次查询实际上都会返回数据集合,所以返回的结果上可以使用UNION  UNION ALL   MINUS   INTSECT实现集合操作。

此时的语法为以下形式:

验证UNION

此时的查询结果已经连接在一起了,但是UNION的处理过程是取消重复元素

UNION ALL 操作(将所有结果合并)

例:验证INTERSECT操作(交集)

例:MINUS返回差集

需要注意的是,由于集合的操作最终是需要将若干个查询合并成一个查询,所以要求这若干个查询结果所返回的数据结构必须相同

例:INTERSECT求交集失败实例

猜你喜欢

转载自blog.csdn.net/qq_40868987/article/details/85082420