oracle数据库连接查询问题?


oracle进行连接查询时,如何知道何时使用相等连接?何时使用自连接?何时使用外连接?

你要理解这不同的连接产生的效果就知道何时用了相等连接 要连接的两个表符合查询条件 记录才会显示自连接和相等连接一样吧左外是左表的数据全部显示 而右面显示符合条件的数据 比如 学生表和成绩表 学生信息要全显示 成绩匹配学生 匹配不上的显示空值


1. 相等连接  通过两个表具有相同意义的列,可以建立相等连接条件。  只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。  例 查询员工信息以及对应的员工所在的部门信息;SELECT * FROM EMP,DEPT;   SELECT * FRO埂缉囤垦塬旧剁驯筏沫M EMP,DEPT   WHERE EMP.DEPTNO = DEPT.DEPTNO
2. 外连接  对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件;3. 自连接  自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:  将原表复制一份作为另一个表,两表做笛卡儿相等连接。  例 显示雇员的编号,名称,以及该雇员的经理名称
  SELECT ... 展开 WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER  WHERE WORKER.MGR = MANAGER.EMPNO 收起


使用外连接时,要确定那边的信息全显示就放在相应外连接的那边。



Copyright © 2009-2011 All Rights Reserved.