oracle query
不等值连接查询
- 员工工资级别
- select e.empno,e.ename,e.sal,s.grade
- from emp e,salgrade s
- where e.sal between s.losal and s.hisal
外连接
外连接的意义:对于某些不成立的记录,仍然希望包含在最后的结果集中。
左外连接:当where e.deptno = d.deptno 不成立时,等号左边表的任意项仍被包含
左外连接写法: where e.deptno = d.deptno(+)
右外连接写法: where e.deptno = d.deptno(+)
按部门统计员工人数:部门号,部门名称,人数, (右外连接)
select d.deptno, d.dname,count(e.empno)
from emp e,dept d
where e.deptno(+) = d.deptno
group by d.deptno, d.dname
order by d.deptno
层次查询
- 只有一张表,单表查询,自连接为多表查询
- select level, empno, ename, mgr
- from emp
- connect by prior empno = mgr
- start with mgr is null
- order by 1
- level 为伪列,显示层次中的级别
子查询
- 可以在主查询的where, select, having, from 后放置子查询
- 不可以在group by后放置子查询
- 主查询和子查询可以不是同一张表,只要子查询返回的结果主查询可用即可
- 一般不在子查询中使用排序,但在Top-N的子查询中要排序
- 子查询一般在主查询执行前执行完成,但相关子查询例外
- 单行子查询(即只返回一条记录的查询)只能使用单行操作符,多行子查询只能使用多行操作符
多行子查询
- 返回多行,使用多行比较操作符
- in: 等于列表中的任何一个
- any:和子查询返回的任意一个值比较(min())
- all:和子查询返回的所有制比较(max())
- 查询工资比30号部门任意一个员工高的员工
- select * from emp where sal > any(select sal from emp where deptno = 30);
- 不是老板的员工,所有的叶子节点
- select * from emp where empno not in (select mgr from emp where mgr is not null);
- 找到员工中工资最高的前3名
- select rownum, empno, ename, sal
- from (select * from emp order by sal desc)
- where rownum <= 3;
- 找到员工表中薪水大于本部门平均薪水的员工
- select e.empno,e.ename,e.sal,d.avgsal
- from emp e, (select deptno, avg(sal) avgsal from emp group by deptno) d
- where e.deptno = d.deptno and e.sal > d.avgsal
相关子查询
- 将主查询中的某些值作为参数传递给子查询
- 找到员工表中薪水大于本部门平均薪水的员工
- select e.empno, e.ename,e.sal, (select avg(sal) from emp where deptno = e.deptno) avgsal
- from emp e
- where e.sal > (select avg(sal) from emp where deptno = e.deptno)
- 统计每年入职人数
select count(*) Total,
sum(decode(to_char(hiredate, 'yyyy'), '1980', 1, 0)) "1980",
sum(decode(to_char(hiredate, 'yyyy'), '1981', 1, 0)) "1981",
sum(decode(to_char(hiredate, 'yyyy'), '1982', 1, 0)) "1982",
sum(decode(to_char(hiredate, 'yyyy'), '1987', 1, 0)) "1987"
from emp;
分页
select *
from (select rownum r, e1.*
from (select * from emp order by sal) e1
where rownum <=8 )
where r >= 5;
oracle query的更多相关文章
- paip.oracle query export to insert sql
paip.oracle query export to insert sql 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:/ ...
- Oracle query that count connections by minute with start and end times provided
数据结构类似 SQL> select * from t; B E N ----------------- ------------ ...
- Python中通过cx_oracle操作ORACLE数据库的封闭函数
哈哈,看来我的SQL自动化发布,马上就全面支持ORACLE,MYSQL,POSTGRESQL,MSSQL啦... http://blog.csdn.net/swiftshow/article/deta ...
- 老李分享: Oracle Performance Tuning Overview 翻译
老李分享: Oracle Performance Tuning Overview 翻译 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工 ...
- 数据库隔离级别深入理解(ORACLE)
TRANSACTION_READ_UNCOMMITTED 1 这种隔离级别最低,脏读,不可重复读,幻读都会发生,我用的oracle,并没有支持这个级别,不作研究. TRANSACTION_READ_C ...
- redash oracle 数据源docker 镜像
redash 官方的docker 镜像是没有包含oracle的,需要我们自己添加,参考了一个docker 镜像进行了简单的修改 Dockerfile FROM redash/redash:7.0.0. ...
- oracle_fdw安装及使用(无法访问oracle存储过程等对象)
通过oracle_fdw可以访问oracle中的一些表和视图,也可以进行修改,尤其是给比较复杂的系统使用非常方便. (但不能使用oracle_fdw来访问oracle的存储过程.包.函数.序列等对象) ...
- sqluldr2 oracle直接导出数据为文本的小工具使用
近期客户有需求,导出某些审计数据,供审计人进行核查,只能导出成文本或excel格式的进行查看,这里我们使用sqluldr2工具进行相关数据的导出. oracle导出数据为文本格式比较麻烦,sqluld ...
- 初步认知MySQL metadata lock(MDL)
http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...
随机推荐
- 剑指offer 02:替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题代码 public cla ...
- 浅谈Cocos2d-js cc.director
在cocos2d-x里面,游戏的任何时间,只有一个场景对象实例处于运行状态,该对象可以作为当前游戏内容的整体包对象. 环境设定 进入游戏之前,导演会设置游戏的运行环境: 设置游戏视图,包含视图的投射, ...
- Unity3D外包(u3d外包)—就找北京动点软件(我们长年承接U3D外包、Maya、3DMax项目外包)
一.关于动点: 北京动点飞扬软件,因致力于虚拟现实技术的开发而创立,在虚拟现实开发领域有着卓越的技术和领先的思想. 我们为用户专业定制的项目,细分了多种工作流程,软件独立自主研发,编程简化用户操作 ...
- 【Core】.NET Core 部署( Docker + CentOS)
CentOS 下 Docker安装 使用脚本安装 Docker (1)安装docker sudo yum install docker (2)启动docker systemctl start do ...
- Go 安装 sqlite3驱动报错
问题:最近在使用Go做一个博客示例,在使用go get 安装 sqlIite3的驱动遇到下面的问题(cc1.exe: sorry, unimplemented: 64-bit mode not com ...
- icpc2018-焦作-F Honeycomb bfs
http://codeforces.com/gym/102028/problem/F 就是一个bfs,主要问题是建图,要注意奇数和偶数列的联通方案是略有不同的.比赛的时候写完一直不过样例最后才发现没考 ...
- Python日期的加减等操作
1. 日期输出格式化 所有日期.时间的api都在datetime模块内. 1. datetime => string now = datetime.datetime.now() now.strf ...
- 线程基础:多任务处理——MESI协议以及带来的问题:伪共享
1.概述 本文和后续文章将着眼CPU的工作原理阐述伪共享的解决方法和volatile关键字的应用. 2.复习CPU工作原理2.1.CPU工作原理要清楚理解本文后续内容,就需要首先重新概述一下JVM的内 ...
- Flutter(一)安装配置和几个注意点
Flutter(一)安装配置和几个注意点 记住要仰望星空,不要低头看脚下.无论生活如何艰难,请保持一颗好奇心.你总会找到自己的路和属于你的成功. 愿您的来世灵魂依旧,躯体康健. 一句话来形容Flutt ...
- atom插件安装失败解决方法
在atom 上下载插件失败,可以用下面的方法. 1.找到C:/Users/你的用户名/.atom/packages/文件夹内 2.在.atom packages 目录下 使用gitbash 3.git ...