栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Oracle数据库-子查询介绍

Oracle数据库-子查询介绍

        子查询是嵌入到另一个SELECt语句当中的SELECT语句。通过子查询,可以使用简单的语句组成强大的语句。当需要从表中选择行,而选择条件却取决于该表自身的数据时,子查询非常有用

        子查询主要分为以下两种基本类型,单行子查询,多行自查询。另外,还有3种类型,多列子查询,关联子查询,嵌套子查询。

1,单行子查询       内部SELECT语句给外部的SELECT语句返回0行或1行。可以在SELECT语句后面的WHERe、HAVINg、FROM后面放置单行子查询。          1-1,在where子句中使用子查询                  将另一个查询作为where子句的子查询                  在单行子查询中还可以使用其他比较运算符,比如<>  >  <  >=  <=                  如:查询工资比平均工资高的员工信息                                              1-2,在having子句中使用子查询​​​​​​​
                  HAVINg是在分组统计后用于过滤行,同样在HAVINg子句后面可以跟子查询。
                 如:统计平均工资高于公司平均工资的部门                            1-3,在from子句中的子查询                  将子查询放在from子句后为其提供数据                   使用单行子查询时有时会出现一些错误:                  如: 如果子查询返回的结果是多行,而其使用的是比较运算符,将会出现错误

     使用子查询时还需注意:子查询中不能使用ORDER BY子句进行排序。

2,多行子查询
                内部SELECt语句给外部的SELECT语句返回1行或多行
                在父查询中,可以使用IN、 ANY、 WHERe操作
                Select * from emp
                Where deptno in (select deptno from dept);
                同样也可以使用NOT IN检查一个值是否不在指定的列表中
                例: 使用 ANY 查询任意满足工资低于平均档的员工信息
                Select empno, ename sal from emp
                Where sal < any(select avg(sal) from emp group by deptno);

3,多列子查询
                子查询还可以包含多列
                如:查询出每个部门的最低工资,再查出满足这些条件的员工信息

4,关联子查询
                子查询引用与父查询相关的一列或多列,子查询需要借助父查询,而父查询也要借助子查询,子查询要为父查询的每一行运行一次。
                如:要查出每个部门中,高出部门平均工资的员工编号和姓名
                首先:查出每个部门的平均工资

                 代替解法:

5,嵌套子查询
                SQL提供嵌套子查询机制,即:在一个查询中嵌套另一个SELECt...FROM...HWERE查询语句,子查询中嵌套子查询,最多可嵌套255层
                如:查询工资高于 'SMITH' 工资的员工信息

6,在UPDATE语句中使用子查询
                如:将empno为7900的员工工资更新为工资等级表中的最高平均工资。

7,在DELETE语句中使用子查询
                列:删除工资高于平均工资的员工

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号