ORACLE SQL 基础多表查询

本文详细介绍了Oracle SQL中的多表查询,包括等值连接、不等值连接、左连接、右连接、自连接、自然连接和满外连接的概念及示例。通过这些连接方式,可以在多个表之间有效提取所需数据,避免笛卡尔积问题。
摘要由CSDN通过智能技术生成

当需要查询的字段在两个或多个不同的表时,这时候就需要多表连接了,也就是多表查询,在多表查询中,为了避免笛卡尔积的产生,所以要加入两表的连接条件,而连接条件,又分很多种,如:等值连接,不等值连接,左连接,右连接,自连接,自然连接,满外连接等,下面就来一个一个的介绍这几种常见的连接
等值连接:1、)拿两个表之间相同的字段进行连接,如:table.field = table2.field (在等值连接后,table表和table2表之间,能匹配的数据会匹配并显示出来,不能匹配的数据不会显示出来),
例图:
在这里插入图片描述
效果:
在这里插入图片描述
2、)拿两个表之间不相同的字段进行连接,如:table.field = table2.field2
例图:
在这里插入图片描述
效果:
在这里插入图片描述
上述例子都可以看出,等值连接,其实就是把两个字段里的相同数据连接在一起。

不等值连接:不等值连接恰好与等值连接相反,把两个字段里的不相等的数据连接在一起,但这种连接比较少用,因为在庞大的笛卡尔积里,拿出不相等的数据,那数据确实是太多了,当然除了不等号外,还可以使用大于号或小于号。

左、右连接:左连接就以左表为主表,右连接就以右表为主表,两表相连,主表所有的数据都会显示出来,而副表只有跟主表能匹配上的数据会显示出来,不匹配的会显示为NULL,所以在使用左、右连接的时候,就要注意分清主、副表了。
例图:
在这里插入图片描述
左、右连接有两种写法:
1、一种是Oracle的写法:左连接 table.field = table2.field2(+)
右连接 table.field(+)= table2.field2
2、另一种是SQL 1999的写法:左连接 table left join table2
on table.field = table2.field2
右连接 table right join table2
on table.field = table2.field2

自连接:字面意思就能看出来,就是自己连接自己的意思。若同一张表里,需要把里面的两个不同的字段的数据进行比较时,这时候就需要自连接了,如:table.field = table.field2

自然连接:用了自然连接,可以不使用连接条件,它会自己把两表中,所有相同的字段名字进行等值连接,如:table NATURAL JOIN table2,但如果两字段的类型不同,则会产生错误。

满外连接:满外连接就是把连接的两个表的所有数据都显示出来,但又不会有笛卡尔积的产生,如:table FULL OUTER JOIN table2
例图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值