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

在上述sql语句中先执行 from 后执行select和where  如果使用了别名的话以后引用表都要使用别名不然会报错  别名最长为30个字符

内连接

select e.empno, e.ename, d.deptno, d.dname
  from emp e
  join dept d
    on e.deptno = d.deptno
from 后直接接两张表名 系统会将两张表做笛卡尔乘积操作  会生成一张笛卡尔积中间表 (这张表相当于两个集合做乘操作 参考两个集合相乘) 如果两张表都很大的话中间表就会很大 会占用很大的内存空间

如果使用join操作 会优先判断 是否符合 join 后所接on的条件  使生成结果不会太大

外连接  分为left outer join          right outer join      full outer join

内链接只能查询到符合条件的结果  左外连接可以使某一张表或两张表的数据完全显示出来

left join 和right join还可以用(+)来代替

(+)应放在缺少相应信息的一边

左连接的主表是join左边的表 为主表  内容会全部显示

select e.empno, e.ename, d.deptno, d.dname from emp e left join dept d on e.deptno = d.deptno ;

左外链接的加号写法

select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno(+);

上图为执行之后的结果  由表格可知  第十五条数据 的e.deptno 为空不符合 连接条件  但还是显示出来了

右连接

右连接的主表是join右边的表 为主表  内容会全部显示

select e.empno, e.ename, d.deptno, d.dname from emp e right join dept d on e.deptno = d.deptno ;

右外链接的加号写法

select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno(+) = d.deptno

dept表中deptno = 40 的 在emp表中没有与之对应的数据 但在右连接中可以完全显示dept表中的数据

完全外连接

相当于做左连和右连后去重值

select e.empno, e.ename, d.deptno, d.dname from emp e full join dept d on e.deptno = d.deptno ; 

自然连接

会对表总具有相同列明的做自动连接

select *  from emp e natural join dept   ;

限定多 不实用  仅做了解

自连接

自己和自己做连接 以scott 的emp表为例  mgr字段为该员工的 领导编号 该表中存在主从关系

又因要查询所有员工的领导及其编号所以在下面用左连接

select em2.empno 领导的员工编号,
       em2.ename 领导姓名,
       em1.empno 员工导编号,
       em1.ename 员工姓名,
       em1.mgr   对应领导的员工编号
  from emp em1
  left join emp em2
    on em1.mgr = em2.empno
 order by em2.empno ;

交叉连接

做两张表的笛卡尔积

select * from emp cross join dept

基本用不到  作为了解

总结一下

内连接

只筛选符合条件的

外链接

分为左外右外和完全外链接

左外显示符合条件的 以及左表不符合条件的  右表只有符合条件的

剩下两种略

自连接

自己和自己做连接  因为用的都是一张表(本身)所以一定要用别名

Oracle多表关联查询相关推荐

  1. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  2. oracle左表关联与又表关联,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create tablestudent1 ( sidvarchar(3), snamevarchar(6), sagenum ...

  3. oracle 5表关联查询,Oracle学习笔记5 - 表查询

    Oracle学习笔记五 --- 表查询  下面使用scott用户,用到的表见底部 1.查看表结构 desc [表名] desc emp 2.distinct命令,去除重复行 3.练习 查找SMIT ...

  4. oracle创建俩表并关联,Oracle多表关联查询

    select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno; 在上述sql语句中先执 ...

  5. oracle多表联合查询更新,ORACLE 两表关联更新三种方式

    不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...

  6. ORACLE数据库多表关联查询效率问题解决方案

    ORACLE数据库多表关联查询效率问题解决方案 参考文章: (1)ORACLE数据库多表关联查询效率问题解决方案 (2)https://www.cnblogs.com/baib/p/5086777.h ...

  7. Oracle - 查询语句 - 多表关联查询

    /* SQL语句的历史版本SQL89比较多 SQL92SQL99多表关联查询笛卡尔积等值关联查询非等值关联查询左外连接右外连接全外连接自连接 */ -------------------------- ...

  8. 多表关联查询(Oracle)

    有时一个查询结果需要从两个或两个以上表中提取字段数据,此时需要使用多表关联查询. 1)笛卡尔积关联 create table a(    id number(7),    name varchar2( ...

  9. Oracle数据库中的多表关联查询

    多表关联查询:在实际开发中,每个表的信息都不是独立的,而是若干个表之间存在一定的联系,如果用户查询某一个表的信息时,可能需要查询关联表的信息,这就是多表关联查询. 1.查询语句的执行顺序 from&g ...

  10. mysql join on 索引_连接查询,表关联查询join on,索引,触发器,视图

    一.连接查询 1.统计每一个部门的人数  "部门名,部门的人数" select department,count(eid) from employee group by depar ...

最新文章

  1. 面试题:2018最全Redis面试题整理
  2. 都在喂大规模互联网文本,有人把著名的 C4 语料库“读”透了
  3. Ubuntu下架设FTP服务器(转)
  4. nvme通用驱动_对领域驱动设计的理解与实践
  5. 使用JSSDK分享页面
  6. torch GPU分布式训练 模型并行
  7. CAESAR II 5.00 USB加密锁运行稳定完整功能版/
  8. 微信小程序上线问题与经验总结
  9. 【181214】VC++动画翻页效果的电话簿程序源代码
  10. 计算机正常开机显示器无信号,电脑开机显示器无信号怎么办 电脑开机显示器无信号解决方法【详解】...
  11. 文件上传事件兼容性解决方案:兼容ie和谷歌
  12. OI生涯回忆录(Part6:至高一NOIP考试结束)
  13. 在计算机软件中怎么拍照,计算机相机相机软件,这三个软件不仅用于拍照
  14. chromosome conformation capture:染色质构象捕获技术
  15. 框架(Framework)
  16. 第19 题: 题目:定义Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2
  17. 在cmd中使用python3指令打开.py文件无响应,也没有报错的问题
  18. WSL安装桌面环境xfce4
  19. 通信原理中循环码的问题
  20. 相机 连续模式 触发模式_相机上有哪些不同的测光模式?何时应使用它们?

热门文章

  1. Layui拓展第三方图标
  2. Niushop wap端前台模板设置
  3. 如何更改Eclipse中Properties文件编码格式
  4. 自己来制作iso镜像用于安装OpenBSD
  5. 看完这篇文章,再也不怕别人问我JVM了
  6. 【论文笔记】Imagenet-trained cnns are Biased towards Texture; Increasing Shape Bias Improves accuracy
  7. java 自定义列表_自定义列表标签
  8. 实用工具:常用数学公式
  9. 已处理证书链但是在不受信任提供程序信任的_什么是区块链(Blockchain)?这是我见过的最通俗易懂的解释...
  10. 固态硬盘是什么接口_电脑固态硬盘和机械硬盘有什么区别-电脑固态硬盘和机械硬盘区别介绍...