Oracle笔记(四)
来源:互联网 发布:剑灵人族捏脸数据大全 编辑:程序博客网 时间:2024/06/12 01:51
子查询:
为其他sql语句提供数据。有时候我们在执行某一条sql语句时需要的数据不是确定值,必须要先查询一次表的到,那么先执行的这个查询语句往往是嵌套实际要执行的sql语句之中,为其提供数据的,那么这个查询语句就是子查询。
查询与BLAKE相同部门人的姓名
SELECT ename ,deptno FROM emp_tzm where deptno = (SELECT deptno FROM emp_tzm where ename = 'BLAKE')
子查询根据查询结果的字段数量与记录数分为:
单行单列子查询
多行单列子查询
多行多列子查询
其中单列子查询常用与WHERE中作为过滤条件中
而多列常当作一张表看待出现在FROM子句中
查找和SCOOT同职位的员工
SELECT ename FROM emp_tzm e WHERE job = (SELECT job FROM emp_tzm WHERE ename = 'SCOTT');
查找比平均薪水高的员工
SELECT ename,sal FROM emp_tzm e WHERE sal>(SELECT AVG(sal) FROM emp_tzm);
查看与SALESMAN同部门的其他职位
SELECT ename ,job ,deptno FROM emp_tzm WHERE deptno IN (SELECT deptno FROM emp_tzm WHERE job = 'SALESMAN') AND job <> 'SALESMAN'
EXISTS 关键子后面根一个子查询,只要该查询能够查询出至少一条记录,那么就会返回true
查看有员工的部门
SELECT deptno ,dname FROM dept_tzm d WHERE EXISTS(SELECT * FROM emp_tzm e WHERE d.deptno = e.deptno);
查询列出最低薪水高于部门30的最低薪水的部门信息
SELECT MIN(sal),deptno FROM emp GROUP BY deptno HAVING MIN(sal)>(SELECT MIN(sal)FROM emp WHERE deptno = 30)
比自己所在部门平均工资高的员工
SELECT e.ename,e.sal,e.deptno
FROM emp_tzm e,(SELECT AVG(sal) avg_sal,deptno FROM emp_tzm GROUP BY deptno) t
WHERE e.deptno = t.deptno AND e.sal>t.avg_sal;
子查询出现在SELECT子句中,通常是实现外连接的效果:
SELECT e.ename ,e.sal,(SELECT d.dname FROM dept_tzm d WHERE d.deptno = e.deptno) dname FROM emp_tzm e;
- Oracle笔记(四)
- Oracle学习笔记(四)
- Oracle学习笔记(四)
- Oracle学习笔记(四)
- Oracle学习笔记(四)
- oracle学习笔记(四)
- Oracle学习笔记(四)-- 字符函数
- oracle学习笔记(四)--转换函数
- oracle学习笔记(四)--日期函数
- oracle学习笔记(四)-- 数学函数
- Oracle PL/SQL 学习笔记(四)
- Oracle 笔记(四)、SQL 几个要点
- oracle数据库学习笔记(四)
- oracle笔记四
- oracle学习笔记(四)
- oracle学习笔记四
- oracle 学习笔记四
- oracle学习笔记四
- UIScrollView属性详解
- JavaFX的:入门使用JavaFX
- Oracle笔记(三)
- 2016年百度校招小结:我做技术面试官的一些思考
- webrtc媒体库封装与测试
- Oracle笔记(四)
- myeclipse开发web service project
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- sync/atomic 库使用小结
- Audiophobia
- Python 类 setattr、getattr、hasattr 的使用
- android触摸事件分发机制
- 关于java里面注解的理解
- Python中的命令行解析工具介绍