SQL中的各种连接及查询

SQL中的各种连接及查询

有如下两张表:
TEST_USERONE 、TEST_USERTWO
这里写图片描述
这里写图片描述

内连接
两个表的内链接就是两个表的并集。
在百度百科中解释内连接又可称之为普通连接或者自然连接。 这个说法有误,确切说 自然连接是特殊的内连接。下面会叙述自然连接。
 select * from  TEST_USERONE  t inner join Test_Usertwo t2  on t.id = t2.id2

这里写图片描述

外连接
两个表的内链接就是两个表的交集。关键字 full outer join 或者full join
select * from  TEST_USERONE  t full outer join Test_Usertwo t2  on t.id = t2.id2

这里写图片描述

左外连接
A的全集 若B中不存在就null。
 Select * from  TEST_USERONE t left outer join Test_Usertwo t2 on t.id = t2.id2

或者

 Select * from  TEST_USERONE t , Test_Usertwo t2 where  t.id = t2.id2(+)

这里写图片描述

这里写图片描述 右外连接
B的全集 若A中不存在就null(类似)
 Select * from  TEST_USERONE t right outer join Test_Usertwo t2 on t.id = t2.id2

或者

Select * from  TEST_USERONE t , Test_Usertwo t2 where  t.id(+) = t2.id2

这里写图片描述
这里写图片描述

还可以使用外连接实现以下情况:
A中存在而B中不存在 使用左连接或者全连接实现

Select *
  from TEST_USERONE t
  left join Test_Usertwo t2 on t.id = t2.id2
 where t2.id2 is null

这里写图片描述

A中存在B中不存在并且 B中存在而A中不存在
使用全连接实现。

Select *
  from TEST_USERONE t
  full join Test_Usertwo t2 on t.id = t2.id2
 where t2.id2 is null or t.id is null
这里写图片描述 Cross join
它就是笛卡尔乘积,无法用文氏图表示。
Select *  from TEST_USERONE t  cross join Test_Usertwo t2 ; 或者 select * from TEST_USERONE t , Test_Usertwo t2;

这里写图片描述

内连接和等值连接的效果是相同的。
自然连接是一种特殊的等值连接。关键字为natural join

select * from TEST_USERONE natural  join Test_Usertwo

这里写图片描述

(自然连接是没有on的)
等值连接仅要求字段的属性值相同,查询出来的结果集包含两个表中全部字段。
两个自然连接的表不仅要求字段的属性值相同,还要求字段的名字也相同。查询出来的结果会进行投影处理,相同的那个字段名,只会保留一列。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值