【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);
.
总结:以上列出的只是基本的,关于多表查询还有很多要学习的。现在用着还不太熟练,日积月累,做的项目多了就会慢慢成长起来的,加油加油。
转载于:https://www.cnblogs.com/shaokai7878/p/9396497.html
【oracle笔记3】多表查询相关推荐
- Oracle数据库之多表查询
oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 ...
- Django 笔记6 -- 多表查询
Django 笔记6 – 多表查询 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Djang ...
- MySQL 笔记5 -- 多表查询
MySQL 笔记5 – 多表查询 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.表之间关系 1.一对一 ...
- Oracle SQL的多表查询 看这一篇文章就够了~
多表查询核心 数据关联 左右连接 数据分组 (分组统计.统计函数.多字段分组) 分组数据的过滤(having) 子查询(以上的综合) 本篇文章将根据以上五点进行SQL多表查询的详细解释,包含有语法.案 ...
- oracle数据库查询需步骤,PLSQL操作Oracle数据库之单表查询SQL语句 看完你就知道了...
Orcale数据库作为商业级的大型关系型数据库管理系统,以其较高的安全性和强大的可移植性赢得了市场的广泛认可,而PLSQL作为操作Oracle的编程语言的最佳选择,掌握其编程原理及基本的sql操作是掌 ...
- oracle数据库同时实现联表查询和分页查询(未明确定义列)
ps:只是记录新手小白的脱坑之路,大佬勿喷 今天在做前端数据查询的时候,在实现联表查询的同时进行分页查询遇到了令人头秃的问题,分页查询的sql语句是这样的 select * from (select ...
- Oracle学习:多表查询与子查询
一.多表查询 (1)等值连接 查询员工信息:员工号 姓名 月薪(emp)和部门名称(dept) select e.empno, e.ename, e.sal, d.dname from emp e, ...
- mysql学习笔记14 多表查询初步
对数据分组的总结 举例:统计各个部门的平均工资,并且是大于1000的,并且按照平均工资从高到底排序 mysql> select avg(stsal) as myavgsal, stdepno f ...
- php多表查询 例子,thinkphp学习笔记之多表查询
在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题 有以下三张表,分表为pl表(uid,content),user表(id,username),lyb表(uid,title) 多表查询操作有 ...
- oracle中的单表查询,单字段与多字段排序
-单表的查询学习 –查询表的所有数据 select *from 表名; *代表所有 select *from emp; –查询表中指定字段的值 :select 字段名1,字段名2,-from表名 se ...
最新文章
- HTTP访问服务的相关解释
- 更新ADT到Android L的方法
- LaTeX 公式输入软件 KLatexFormula
- 直播预告丨B2B 企业如何高效获客增长?
- TensorFlow2.0(十二)--实现简单RNN与LSTM网络
- 共享单车需求预测问题:分析篇
- php 连接timesten,timesten常见的一些简单问题
- 【vuejs】有关UI框架“ydui”中的tabbar底部导航的应用以及tabbar切换激活状态的现实
- MFC学生信息管理系统
- linux上多个CUDA切换使用(小白教程)
- 第二讲:高性能计算关键技术和趋势分析
- Win10添加Loopback网卡
- 解决win10小娜Cortana(win+S)无法搜索本地应用或无反应
- 环路补偿-一阶、二阶、运放补偿讲解及计算
- QQ邮箱授权码和二代密保
- Java中HashMap常见问题 -- 扩容、树化、死链问题
- ubuntu下使用QT编译 No such file or dire解决
- C51中intrins_h头文件解释分析
- android11 定位权限页面不显示始终允许
- 【win11 22h2升级的坎坷经历】