oracle笛卡尔积

本文介绍了Oracle数据库中如何处理笛卡尔积,包括笛卡尔积的定义、创建示例表,以及通过内连接、左连接、右连接来避免或获取笛卡尔积的方法。详细解释了各种连接方式在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笛卡尔积
定义:多张表相乘,简单的说就是两个集合相乘的积。(列数相加,行数相乘)

先建了两张表,课程表:

信息表:

1.纯笛卡尔积

select * from a,b

是两个表的无键值关联,纯粹的排列组合形成的表(列数相加,行数相乘)

2.内连接 inner join on 
内连接:笛卡尔积中,只显示有关联的数据,无关联不显示。
select * from lefttable 左表,righttable 右表 where 左表.主键=右表.外键;
select * from lefttable 左表 inner join 右表 on 左表.主键=右表.外键;
eg:


 
3.左(外)连接 left(outer)join on
笛卡尔积中,左边表中的数据必须都显示
select * from 左表 left join  右表  on 左表.主键=右表.外键;
select * from 左表,右表  where  左表.主键=右表.外键(+);
 eg:

4.右连接 right join on
笛卡尔积中,右边表中的数据必须都显示
select * from 左表 right join  右表  on 左表.主键=右表.外键;
select * from 左表,右表  where  左表.主键(+)=右表.外键;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值