Oracle数据库表连接方式及常见用法Oracle认证考试

文章作者 100test 发表时间 2009:07:29 20:54:04
来源 100Test.Com百考试题网


"gklt">   一个SQL语句的关联表超过两个,那么连接的顺序如何呢?ORACLE首先连接其中的两个表,产生一个结果集.然后将产生的结果集与下一个表再进行关联.继续这个过程,直到所有的表都连接完成.最后产生所需的数据,,本文将主要从以下几个典型的例子来分析Oracle表的几种不同连接方式:
  1. 相等连接
  通过两个表具有相同意义的列,可以建立相等连接条件。
  只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。
  例 查询员工信息以及对应的员工所在的部门信息.
  SELECT * FROM EMP,DEPT.
  SELECT * FROM EMP,DEPT
  WHERE EMP.DEPTNO = DEPT.DEPTNO.
  REM 显示工资超过2000的员工信息以及对应的员工的部门名称。
  2. 外连接
  对于外连接,Oracle中可以使用“( )”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。
  外连接采用( )来识别。
  ◆左条件( ) = 右条件.
  代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。
  此时也称为"右外连接".另一种表示方法是:
  SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件
  ◆左条件 = 右条件( ).
  代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。
  此时也称为"左外连接".
  SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件
  例 显示员工信息以及所对应的部门信息
  --无法显示没有员工的部门信息
  --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO.
  --直接做相等连接:
  SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO.
  REM 显示员工信息以及所对应的部门信息,显示没有员工的部门信息
  --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO( ) = DEPT.DEPTNO.
  SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO.
  REM 显示员工信息以及所对应的部门信息,显示没有部门的员工信息
  --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO( ).
  SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO.
  3. 不等连接
  两个表中的相关的两列进行不等连接,比较符号一般为>.,<.,...,BETWEEN.. AND..
  REM SALGRADE
  --DESC SALGRADE.
  --SELECT * FROM SALGRADE.
  REM 显示员工的编号,姓名,工资,以及工资所对应的级别。
  SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
  WHERE EMP.SAL BETWEEN LOSAL AND HISAL.
  REM 显示雇员的编号,姓名,工资,工资级别,所在部门的名称.
  SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
  WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL.

相关文章


Oracle的入门心得Oracle认证考试
oracle10g在x86linux上的安装步骤Oracle认证考试
oracle安装与卸载修改盘符Oracle认证考试
oracle辅导:彻底删除oracle的步骤Oracle认证考试
Oracle数据库表连接方式及常见用法Oracle认证考试
Oracle使用序列创建自增字段Oracle认证考试
利用CTAS建立表格注意事项Oracle认证考试
用Java和oracle实现BLOB字段的字符串读取Oracle认证考试
oracle中将字典管理表空间转换为本地管理表空间Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛