Oracle数据库多表查询及笛卡尔积的自我总结

博客介绍了Oracle多表查询的方法。首先要确定所需数据及表间关系,选择合适连接方式和查询条件以减少笛卡尔积,还给出不同查询方式的笛卡尔积对比示例。此外,要合理运用Oracle函数,最后整理思路编写SQL。

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

Oracle多表查询:
1、先确定自己要的什么数据,是在一张表中还是在多个表查询的结果集中。
2、根据上述对表的分析,确定表与表之间的关系。选择合适的连接方式。如:内连接,外连接等。
3、选择合适的查询条件。查询到的先后顺序会影响性能。最直接的回减少笛卡尔积。
例子:A表100条数据,B表100条数据,C表100条数据。每张表中都有个字段ID;先查询A、B、C表中ID数量相等的数据。
第一种:select * from A,B,C where A.ID=B.ID and A.ID=C.ID AND B.ID=C.ID ;这样查询的笛卡尔积为100100100 = 1000000;
第二种:
SELECT
a.id
FROM
( SELECT b.id FROM b,c WHERE b.id = c.id )d , a
WHERE
a.id = d.id;
笛卡尔积为100*(B和C的结果集个数)+ 100*100;
和明显第二种笛卡尔积会小于等于第一种。
4、合理运用Oracle提供的函数。
5、整理请思路开始写SQL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值