【oracle笔记3】多表查询
*多表查询
分类:1.合并结果集
2.连接查询
3.子查询
*合并结果集:要求被合并的表中,列的类型和列数相同。
*UNION,去除重复行。完全相同的行会被去除
*UNION ALL:不去除重复行。
例:select * from ab UNION ALL select * from cd;
*连接查询
分类:1.内连接
2.外连接:左外,右外,全外。
3.自然连接
*内连接:select * from 表1 别名1 inner join 表2 别名2 on 别名1.xx = 别名2.xx;//内连接只会将所有满足条件的记录查询出来,不满足条件的记录不显示。
*自然连接:select * from 表1 别名1 natural join 表2 别名2 ;//注意:自然连接不用写on条件。直接关联就可以了
*左外连接:select * from 表1 别名1 left outer join 表2 别名2 on 别名1.xx = 别名2.xx;
//左表记录无论是否满足条件都会查询出来,右表没有匹配到的行中的列显示为Null。
*右外连接:select * from 表1 别名1 right outer join 表2 别名2 on 别名1.xx = 别名2.xx;
//右表记录全显示,左表没匹配到的列显示为null;
*全外连接:select * from 表1 别名1 full outer join 表2 别名2 on 别名1.xx = 别名2.xx;
*子查询:
特点:查询中嵌套查询,注意select的个数。
出现位置:1.where后作为条件存在。2.from后作为表存在(多行多列的情况下)
例子:
1.查询部门编号为30的员工编号和姓名
sleect e.eptno,e.ename from (select * from emp where deptno = 30) e;//这里的子查询必需起别名,不然前面不确定要查的是哪个表。
2.查询本公司工资最高的员工信息
select * from emp where sal =(select Max(sal) from emp);
3.列出薪金高于工资平均薪金的所有员工信息,所在部门名称,上级领导,工资等级
select e.*,d.dname,m.ename,s.grade //dname=>部门名称,ename=>上级领导,grade=>工资等级
from emp e left outer join dept d on e.deptno = d.deptno //连接员工表emp与部门表dept,主键员工编号deptno
left outer join emp m on e.mgr = m.empno //员工表emp自身连接
left outer join salgrade s on e.sal between s.losal and s.hisal //员工表emp与工资等级表salgrade连接
where e.sal > (select AVG(sal) from emp);
.
总结:以上列出的只是基本的,关于多表查询还有很多要学习的。现在用着还不太熟练,日积月累,做的项目多了就会慢慢成长起来的,加油加油。
【oracle笔记3】多表查询的更多相关文章
- Oracle笔记_多表查询
1 执行sql文件 @文件地址名 --执行某个sql文件: 2 多表查询 想要的数据不在同一张表,就需要多个表进行联查. 多表查询也叫做表连接查询,其中的where条件就是连接条件. 可以使用join ...
- oracle系列笔记(2)---多表查询
多表查询 这篇文章主要讲四点: (1)oracle多表查询 (2)SQL99标准的连接查询 (3)子查询 (4)分级查询 oracle多表查询有两种方式,一种是oracle所 ...
- Oracle学习笔记_04_多表查询
一.概念: 1.多表连接有以下几种分法: (1)内连接 vs 外连接 (左.右.满) (2)等值连接 vs 不等值连接 (3)非自连 ...
- Oracle数据库之单表查询
接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据.单表查询里面的内容也是比较 ...
- Oracle中的多表查询(笛卡尔积原理)
本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一 ...
- Oracle(2)之多表查询&子查询&集合运算
多表查询 笛卡尔积 同时查询多张表时,每张表的每条数据都要和其它表的每条数据做组合.如下栗子,我们发现产生的总记录数是 56 条,还发现 emp 表是 14 条,dept 表是 4 条,56 条正是 ...
- Oracle数据库之七 多表查询
七.多表查询 对于查询在之前已经学过了简单查询.限定查询.查询排序,这些都属于 SQL 的标准语句,而上一章的单行函数,主要功能是为了弥补查询的不足. 而从多表查询开始就正式进入到了复杂查询部 ...
- oracle中的多表查询和子查询以及一些注意事项
多表查询就是使用两张表及其以上的查询.首先需要知道几个名词,笛卡尔积,内连接,外连接,子查询. 1)笛卡尔积 所谓笛卡尔积其实就是两张表数据的条数相乘得到的最后结果,例如表1有10条数据,表2有4条数 ...
- Oracle中的多表查询
多表查询 l 笛卡尔积: N*M l 使用关联字段消除笛卡尔积的多余数据: SELECT EMP.*,DEPT.DNAME,DEPT.LOC FROM EMP, DEPT WHERE EMP.DEPT ...
- Oracle作业5——多表查询、子查询
一.基础练习: 1.查询和scott相同部门的员工姓名ename和雇用日期hiredate SELECT ENAME,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DE ...
随机推荐
- mockito測試框架
1. code package com.springinaction.knights; import static org.mockito.Mockito.*; import org.junit.Te ...
- 20个实用javascript技巧及实践(二)
21. 使用逻辑AND/OR来处理条件语句 var foo =10; foo ==10&& doSomething();// is the same thing as if (foo ...
- vue2.0中v-on绑定自定义事件的理解
vue中父组件通过prop传递数据给子组件,而想要将子组件的数据传递给父组件,则可以通过自定义事件的绑定. 每个Vue实例都实现了[事件接口],即: 1.使用 $on(eventName) 监听事件 ...
- java压缩与解压
一 概述 1.目录进入点 目录进入点是文件在压缩文件中的映射,代表压缩文件.压缩文件时,创建目录进入点,将文件写入该目录进入点.解压时,获取目录进入点,将该目录进入点的内容写入硬盘指定文件. 如果目录 ...
- Java从入门到精通——数据库篇Mongo DB 导出,导入,备份
一.概述 本篇博客为大家讲述一下Mongo DB是如何导入导出数据,还有就是备份数据的. 在下面操作的时候需要把Mongo DB的服务端打开才能操作. 二.导出. MongoDB的导 ...
- RocketMQ读书笔记4——NameServer(MQ的协调者)
[NameServer简述] 对于一个消息队列集群来说,系统由很多机器组成,每个机器的角色.IP地址都不相同,而且这些信息是变动的(如在某些情况下,会有新的Producer或Consumer加入). ...
- 30_AQS
[参考文章] https://www.jianshu.com/p/df0d7d6571de http://ifeve.com/introduce-abstractqueuedsynchronizer/ ...
- _itoa atoi、atof、itoa、itow _itoa_s 类型转换使用说明
原文:http://www.cnblogs.com/lidabo/archive/2012/07/10/2584706.html _itoa 功能:把一整数转换为字符串 用法:char * _itoa ...
- tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].
tomcat运行报错Failed to start component [StandardEngine[Catalina].StandardHost[localhost].多半情况是找不到jar包 解 ...
- C++实现线性表的链接存储结构(单链表)
将线性表的抽象数据类型定义在链接存储结构下用C++的类实现,由于线性表的数据元素类型不确定,所以采用模板机制. 头文件linklist.h #pragma once #include <iost ...