ORACLE 多表连接与子查询

本文详细介绍了Oracle数据库中的多表连接和子查询,包括等值连接、非等值连接、外连接(左、右、全)、自然连接、交叉连接、Using子句和On子句的用法,以及内连接和外连接的差异。同时,文章还讲解了子查询的类型、注意事项及如何实现TopN查询。
摘要由CSDN通过智能技术生成

ORACLE 多表连接与子查询

Oracle表连接

SQL/Oracle使用表连接从多个表中查询数据

语法格式:

    
    
    
select 字段列表 from table1,table2 where table1.column1 = table2.column2;

说明:

在where子句中指定连接条件

当被连接的多个表中存在同名字段时,必须在该字段前加上"表名"作为前缀.

连接的类型

Oracle8i之前的表连接:

等值连接(Equijoin)

非等值连接(Non-Equijoin)

外连接(Outer join):-->左外连接-->右外连接

自连接(Self join)

  

Oracle9之后新引入的连接形式(支持SQL99规范)

交叉连接(Cross join)

自然连接(Natural join)

使用Using子句建立连接

使用on子句建立连接

外连接(Outer join):-->左外连接-->右外连接-->全外连接

等值连接(Equijoin)

    
    
    
select empno,ename,sal,emp.deptno,dname from emp,dept where emp.deptno = dept.deptno;

 多表连接中:

  • 可使用AND操作符增加查询条件
  • 使用表别名可以简化查询
  • 使用表名(表别名)前缀可提高查询效率
  • 为了连接n个表,至少需要n-1个连接条件

非等值连接(Non-Equijoin)

外连接(Outer join)

使用外连接可以看到参与连接的某一方不满足连接条件的记录

外连接运算符为(+)

传统的外连接分为左外连接和右外连接两种

语法格式:

    
    
    
select 字段列表 from table1,table2 where table1.column1( + ) = table2.column2;
    
    
    
select 字段列表 from table1,table2 where table1.column1 = table2.column2( + );
自连接(Self join)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值