Oracle数据库知识梳理---续(子查询)
来源:互联网 发布:linux 内核 usleep 编辑:程序博客网 时间:2024/05/17 03:28
6.子查询
子查询的本质 多个select语句的嵌套
主查询select sal from empwhere ename = 'SCOTT';子查询select *from emp where sal > 3000;将两步并为一步走select *from empwhere sal > (select sal from emp where ename = 'SCOTT');
子查询知识体系搭建
1.合理的书写风格
2.子查询外面的()不能省略
3.子查询和主查询可以是不同的表,只要子查询返回的结果,主查询可以使用即可
4.可以放置子查询的位置
elect ———可以放置,只能存放单行子查询,不能是多行子查询
from ————–可以放置
where ————可以放置
group by —–不能
having ———-可以
order by ———不能
查询部门名称是SALES的员工信息select *from empwhere dmptno = (select deptno from dept where dname = 'SALES');select e.*from emp e,dept dwhere e.deptno = d.deptno and d.ename = 'SALES';EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ----------- --------- ---------- -------------- ------ ---------- ----------7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 307521 WARD SALESMAN 7698 22-2月 -81 1250 500 307654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 307698 BLAKE MANAGER 7839 01-5月 -81 2850 307844 TURNER SALESMAN 7698 08-9月 -81 1500 0 307900 JAMES CLERK 7698 03-12月-81 950 30
查询员工的姓名和薪水select *from (select ename, sal from emp); ENAME SAL ----------- ------ SMITH 800 ALLEN 1600 WARD 1250 JONES 2975 MARTIN 1250 BLAKE 2850 CLARK 2450 SCOTT 3000 KING 5000 TURNER 1500 ADAMS 1100 JAMES 950 FORD 3000 MILLER 1300
查询部门名称SALES和ACCOUNTING的员工信息select *from empwhere deptno in (select deptno from dept d where dname = 'SALES' or dname = 'ACCOUNTING');EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7839 KING PRESIDENT 17-11月-81 5000 10 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7900 JAMES CLERK 7698 03-12月-81 950 30 7934 MILLER CLERK 7782 23-1月 -82 1300 10
ANY 和集合中的任意一个值比较
ALL 和集合中的所有值比较
单行操作符对应单行子查询,多行操作符对应多行子查询。select * from empwhere sal > all(select sal from emp where deptno = 30)select * from empwhere sal > (select max(sal) from emp where deptno = 30)效果相同...
查询不是经理的员工信息select*from empwhere deptno in (select mgr from emp ); EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------------- ---------- ---------- ---------- 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20 7839 KING PRESIDENT 17-11月-81 5000 10 7902 FORD ANALYST 7566 03-12月-81 3000 20select * from emp where empno not in (select mgr from emp where mgr is not null) EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-12月-80 800 207499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 307521 WARD SALESMAN 7698 22-2月 -81 1250 500 307654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 307844 TURNER SALESMAN 7698 08-9月 -81 1500 0 307876 ADAMS CLERK 7788 23-5月 -87 1100 207900 JAMES CLERK 7698 03-12月-81 950 307934 MILLER CLERK 7782 23-1月 -82 1300
集合运算
讲集合运算,实质上是讲集合运算的操作符
查询部门号是10 和 20的员工信息方法1 select * from emp where deptno in (10, 20);方法2 select * from emp where deptno=10 or deptno=20;方法3 select * from emp where deptno = 10 union select * from emp where deptno = 20;
阅读全文
0 0
- Oracle数据库知识梳理---续(子查询)
- Oracle数据库知识梳理---续(多表查询)
- Oracle数据库知识梳理---续(DML语言)
- Oracle数据库知识梳理---续(过滤和排序)
- Oracle数据库知识梳理---续(创建和管理表)
- ORACLE数据库---子查询
- 【Oracle数据库】子查询
- 知识梳理--查询
- 数据库知识梳理
- MySql数据库 知识梳理
- 【Oracle数据库】高级子查询
- Oracle数据库 -- 子查询篇
- Oracle数据库学习---子查询
- Oracle数据库知识梳理---续(单行函数,多行函数,分组数据,分组过滤)
- 电商之梳理oracle相关知识---数据库
- MySQL数据库相关知识梳理
- 数据库事务知识梳理.概念
- Oracle数据库之SQL子查询详解
- 图片加载库-Fresco
- DWR第一篇之入门示例
- Python执行时间的计算方法
- 知识点--Java垃圾回收与内存分配策略
- 文字两侧加横线的解决方案 文字两侧加横线的需求你遇到过吗?在参与的项目中我遇到过这种需求,总结了一下,目前分为两种: 一,文字所在的背景是纯色,单一颜色; 二,文字所在背景是花色,或者是背景
- Oracle数据库知识梳理---续(子查询)
- 当反复开启同一个协程时,StopCoroutine可以停止这样开启的所有同名协程
- tiyanfu
- 排序方法总结
- OpenCV imgproc组件之图像变换
- 设置tablayou的中一个不能点击
- http请求与响应全过程
- CSS3动画(360度旋转、旋转放大、放大、移动)(转)
- 学习日志-Servlet开发-1