oracle查询连接在一起,Oracle 连接查询<一>

本文详细介绍了Oracle数据库中的三种连接查询类型:交叉连接、内连接和外链接。解释了各自的特点,如交叉连接的无条件组合,内连接的条件筛选,以及外连接如何包含内连接结果。通过实例演示了相等连接、不等连接和自身连接的用法。
摘要由CSDN通过智能技术生成

在Oracle数据库中,连接查询分为交叉连接、内连接、外链接3种类型。其中,交叉连接结果是所有其他连接结果的超集,而外连接结果又是内连接结果的超集。

交叉连接

交叉连接又称为笛卡尔积连接,是两个或多个 表之间的无条件连接。一个表中所有记录分别与其他表中所有记录进行记录。如果进行连接的表分别有n1,n2,n3...条记录,那么交叉连接的结果集中将有n1 x n2 x n3 x...条记录。例如,emp表中有14条记录,dept表中有4条记录,那么两个交叉连接后有56条记录,语句为

SQL> SELECT empno,ename,sal,dname,loc FROM emp,dept;

内连接

内连接是根据指定的连接条件进行连接查询,只有满足连接条件的数据才会出现在结果集中。

当执行两个表内连接查询时,首先在第一个表中查找到第一条记录,然后从头开始扫描第二个表,逐一查找满足连接条件的记录,找到后将其与第一个表中的第一个表中的第一条拼接形成结果集中的一个记录。当第二个表被扫描一遍后,再从第一个表中查询第二个记录,然后再从头扫描第二个表,逐一查找满足连接条件的记录,找到后将其与第一个表中的第二个记录拼形成结果集中的一个记录。重复执行,知道第一个表中的记录全部记录都处理完毕为止。

在Oracle数据库中,内连接的表示方式有两种。

标准SQL语句的连接方式

SELECTtable1.column,table2.column[,...]

FROMtable1 [INNER] JOINtable2 [JOIN] ONcondition;

Oracle 扩展的连接方式

SELECTtable1.column,table2.column[,...]

FROMtable1,table2[,...] WHEREcondition;

根据连接条件不同,内连接又可以分为相等内连接、不相等内连接两类。如果是在同一个表或视图中进行连接查询,则称为自身连接。

(1)相等连接

相等连接是指使用等号(“=”)指定连接条件的连接查询。进行比较的不同表中列的名称可以不同,但类型必须是匹配的。如果连接的表中有相同名称的列,则需要在列名前加表名,以区分是哪个表中的列。例如,查询10号部门员工的员工号、员工名、工资、部门号和部门名,语句为

SQL>SELECTempno,ename,sal,emp.deptno,dname FROMemp JOINdept

ONemp.deptno=10 ANDemp.deptno=dept.deptno;

(2)不相等连接

如果连接条件中的运算符不是等号而是其他关系运算符,则称为不相等连接。例如,查询10号部门员工的工资等级,语句为

SQL> SELECTempno,ename,sal,grade FROMemp JOINsalgrade

ONsal>losal ANDsal

SQL>SELECTempno,ename,sal,grade FROMemp,salgrade

WHEREsal>losal AND sal

(3)自身连接

自身连接是指在同一个表或视图中进行连接,相当于同一个表作为两个或多个表使用。例如,查询所有员工的员工号、员工名和该员工领导的员工名、员工号,语句为

SQL>SELECTwork.empno,work.ename,manager.empno,manager.ename

FROMemp work JOINemp manager ONwork.mgr=manager.empno;

SQL>SELECTwork.empno,work,ename,manager.empno,manager.ename

FROMemp work,emp manager WHEREwork.mgr=manager.empno;

原文:http://my.oschina.net/douxn/blog/493266

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值