为什么80%的码农都做不了架构师?>>>   

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

  1. 交叉连接

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

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

2. 内连接

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

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

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

  • 标准SQL语句的连接方式

    SELECT table1.column,table2.column[,...]

    FROM table1 [INNER] JOIN table2 [JOIN] ON condition;

  • Oracle 扩展的连接方式

    SELECT table1.column,table2.column[,...]

    FROM  table1,table2[,...] WHERE condition;

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

(1)相等连接

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

SQL>SELECT empno,ename,sal,emp.deptno,dname FROM emp JOIN dept

ON emp.deptno=10 AND emp.deptno=dept.deptno;

(2)不相等连接

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

SQL> SELECT empno,ename,sal,grade FROM emp JOIN salgrade

ON sal>losal AND sal<hisal AND deptno=10;

SQL>SELECT empno,ename,sal,grade FROM emp,salgrade

WHERE sal>losal AND sal<hisal AND deptno=10;

(3)自身连接

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

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

FROM emp work JOIN emp manager ON work.mgr=manager.empno;

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

FROM emp work,emp manager WHERE work.mgr=manager.empno;

转载于:https://my.oschina.net/douxn/blog/493266

Oracle 连接查询一相关推荐

  1. oracle 连接查询--内连接与外连接

    一.外连接 oracle 连接查询分为外链接和内连接,我们先看外连接[outer join].oracle 的外连接查询分为: 左外连接 (左边的表不加限制) left outer join: 右外连 ...

  2. Oracle 连接查询的理解

    Oracle数据库的左连接和右连接 在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句: SELECT emp_name, dept_name FORM Employee, ...

  3. oracle 连接查询,子查询,分组函数

    1.oracle 连接查询 2.oracle 子查询 3.oracle 分组函数 3.1 3.2 rollup SQL> --group by 作用于多列,先按照第一列进行分组,如果相同,按照第 ...

  4. oracle连接查询详解

    连接查询是数据库查询语句中使用频率很高的查询方式,下面根据Oracle提供的官方文档学习一下连接查询. 一 Equijoins 等值连接 等值连接是条件连接在连接运算符为"="号时 ...

  5. Oracle连接查询

    一.内连接和外连接     内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下: Oracle代码   select t ...

  6. oracle数据库 笛卡尔积,Oracle连接查询和笛卡尔积

    一.内连接和外连接 内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下: select table1.column,ta ...

  7. oracle左连接查询代码,ORACLE连接查询,内外连接

    事情的起源是这样子的: 在<剑破冰山>这本书里看到了一个用 where限制外连接的例子,当时不明白,查了下资料,做个总结. 测试代码. CREATE TABLE a (ID NUMBER, ...

  8. oracle 连接查询(内、外连接、自连接、子查询)

    内连接: 一般使用inner join来实现.其中inner关键字可以省略 同时必须在from子句之后定义一个on子句,用来指定连接条件 外连接 1 左外连接:关键字为left outer join或 ...

  9. oracle 自身连接查询,Oracle 连接查询

    结果如下图: 3.自身连接 自身连接是指在同一个表或者视图中进行连接,相当于同一个表作为两个或多个表使用. 例如:查询所有员工的员工号.员工名与该员工领导的员工名.员工号: select work.e ...

最新文章

  1. Alipay秘钥问题
  2. 今日《科学》封面:纳米级清晰度看大脑是怎样一种体验?
  3. RMB符号的几种显示方式。
  4. MySQL高性能优化实战总结!
  5. shell连接工具_无需本地软件,只用浏览器就能连接并控制安卓手机
  6. MED-V服务器部署,MED-V服务器系列之一
  7. 互联网优秀架构师必读书单V2.0
  8. 在VS 2010上搭建Windows Phone 7开发平台
  9. 独辟蹊径,Python打造新型基于图像隐写术的C2通道
  10. 冲刺One之站立会议3 /2015-5-16
  11. Linked List Cycle | ||
  12. element 怎么把数据写到日历表上_当mongo数据量过亿时该如何删除重复的数据
  13. SubSonic学习(一)
  14. 被奉为经典的「金字塔原理」,教给我们哪些PPT写作技巧?
  15. 视频信号数字光纤传输 光纤传输让高清视频传输更简单
  16. 广讯通系统地址和服务器,广讯通OA办公系统
  17. LeetCode 41. 缺失的第一个正数 First Missing Positive
  18. 计算机硬盘的性能指标,对于硬盘而言它有哪些性能指标
  19. svg图片在vue项目中的应用
  20. 2022整理国内免费CDN合集

热门文章

  1. 技术 产品 团队(上):如何成为超级个体
  2. backgroud背景色样式兼容ie8 rgba()用法
  3. 1002: Prime Path
  4. 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动...
  5. Python 第七篇:socket编程
  6. 并发教程--JAVA5中 计数信号量(Counting Semaphore)例子
  7. 张正友标定算法理论及算法实现
  8. python随机森林库_随机森林库:R和Python中的不同结果
  9. java中action类是干嘛的_java中action的作用
  10. python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩