搜索
首页php教程PHP开发Oracle基础学习之子查询

首先使用子查询的时候注意事项包括,子查询可以嵌套多层和子查询需要圆括号()括起来,下面我们来看看详细的介绍。

基础介绍

1,wherer:子查询一般会返回单行单列 单行多列 多行单列 ;

2,having:子查询会返回单行单列,同时表示要使用统计函数;

3,from:子查询返回多行多列数据(表结构);

4,select:返回单行单列 (一般不使用);

示例详解

where(进行数据行的筛选操作):

a:查询出低于公司平均工资的雇员信息。

select * from emp where sal<(select avg(sal) from emp);

以上的查询返回单行单列可以作为where子句的过滤条件使用;

b:查询公司最早雇佣的雇员的信息。

select * from emp where hiredate= (select MIN(hiredate) from emp);

C:查询与scott从事同一工作并且工资相同的雇员信息。

select* from emp
 
where (job,sal) =( select job,sal
 
from emp
 
where ename =&#39;scott&#39;) and ename <>&#39;scott&#39;;

in:指的是与子查询返回的内容相同。

select * from emp where sal in (select sal from emp where job = &#39;manager&#39;);

not in:

select* from emp where sal not in(select sal from emp where job=&#39;manager&#39;);

子查询中不能有空。

any:

select* from emp where sal = any(select sal from emp where job=&#39;manager&#39;);
 
select* from emp where sal > any(select sal from emp where job=&#39;manager&#39;);

比子查询的返回的最大值要大

select* from emp where sal < any(select sal from emp where job=&#39;manager&#39;);

比子查询返回的最大值要小

all:

     all :比子查询的返回的最大值要大

     where子查询的几率很高;

having:

查询出高于公司平均工资的职位名称 职位人数 平均工资。

select job,count(empno),avg(sal) from emp group by job 
having avg(sal)>(select avg(sal) from emp);

select(一般不用):

查询每个雇员的编号姓名 职位 部门名称。

select e.empno,e.ename,e.job,
 
(select d.dname from dept d whered.deptno=e.deptno)from emp e;

(1+n) 次查询;

from(重点):

查询出每个部门的名称 位置 部门人数。

select d.dname,d.loc,count(e.empno)
 
from emp e,dept d
 
where e.deptno(+)=d.deptno
 
group by d.dname,d.loc;

(多表查询)

分步1: select d.deptno,d.dname,d.locfrom dept d;
 
 分步2:select deptno,count(empno)from emp group by deptno;
 
 
 
正确的查询:
 
select d.deptno,d.dname,d.loc,temp.count
from dept d,(select deptno,count(empno) count from emp
group by deptno) temp
where d.deptno=temp.deptno(+);

多表查询和子查询都能实现统计,那么那种方式更好呢?

答:在实际的工作当中,子查询的主要目地是解决多表查询的性能问题,所以在开发中使用的是 最多的。最大作用是解决多表查询带来的笛卡尔积影响性能的问题。

复杂查询= 简单查询+限定查询+ 多表查询+ 分组统计查询 +子查询;

总结

以上就是关于Oracle子查询的全部内容,希望本文的内容对大家学习或者使用Oracle能有所帮助,如果有疑问大家可以留言交流。

更多Oracle基础学习之子查询相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。