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

你可能感兴趣的:(oracle)