Oracle 常用操作2

笛卡尔积

两表连接时未使用连接条件,导致第一个表的所有行都连接到第二个表所有行上,会形成笛卡尔积

 

=================================================

外连接

符号(+),左外连接和右外连接

 

左外连接,外连接操作符实际上是写在了等于操作符右边

就应该这样写条件:where t1.col1 = t2.col2(+)

 

反之,右外连接亦同

 

注意:不能两端同时写连接符号(+);

      不能同时使用外连接条件和IN操作符

      不能同时使用外连接条件和OR操作符

==================================================

使用USING关键字简化连接

注意:查询必须是等连接的

      等连接中的列必须同名

 

例如:select p.name,pt.name from products p innner join product_types pt

     using(product_type_id);

如果还希望看到外键的值,那么该字段不用加别名或表名

select p.name,pt.name,product_type_id from products p innner join product_types pt using(product_type_id);

 

假设有表t1,t2,如果存在:

select ...from t1 inner join t2 on t1.col1 = t2.col1 and t1.col2 = t2.col2;

那么可简写如下:

select ...from t1 innner join t2 using(col1,col2)

 

==================================================

left outer join 

right outer join

full outer join

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值