Oracle数据库应用教程--子查询与高级查询.ppt

Oracle数据库应用教程--子查询与高级查询.ppt

ID:51232399

大小:130.00 KB

页数:35页

时间:2020-03-20

Oracle数据库应用教程--子查询与高级查询.ppt_第1页
Oracle数据库应用教程--子查询与高级查询.ppt_第2页
Oracle数据库应用教程--子查询与高级查询.ppt_第3页
Oracle数据库应用教程--子查询与高级查询.ppt_第4页
Oracle数据库应用教程--子查询与高级查询.ppt_第5页
资源描述:

《Oracle数据库应用教程--子查询与高级查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第8章子查询与高级查询本章要点:掌握在WHERE子句中使用子查询。掌握在HAVING子句中使用子查询。熟练掌握使用IN、ANY和ALL操作符实现子查询。熟练掌握关联子查询。熟练掌握嵌套子查询。掌握简单连接。熟练掌握多个表之间的内连接。熟练掌握多个表之间的外连接。了解多个表之间的交叉连接。掌握使用集合操作符实现集合查询。28.1子查询在外部的SELECT、UPDATE或DELETE语句内部使用SELECT语句,这个内部SELECT语句称为子查询(Subquery)。使用子查询,主要是将子查询的结果作为外部

2、主查询的查找条件。38.1.1子查询的类型在子查询中可以使用两种比较操作符——单行操作符和多行操作符。单行操作符:例如=、>、>=、<、<=、<>、!=。多行操作符:例如ALL、ANY、IN、EXISTS。可以把子查询分为两种类型:单行子查询和多行子查询。另外,子查询还有下面3种子类型,这3种子类型可以返回一行或多行查询结果。多列子查询:向外部的SQL语句返回多列。关联子查询:引用外部的SQL语句中的一列或多列。在关联子查询中,可以使用EXISTS和NOTEXISTS操作符。嵌套子查询:在子查询中包含有

3、子查询。指定子查询时,需要注意以下几点:子查询需要使用括号()括起来。子查询要放在比较操作符的右边。当子查询的返回值是一个集合而不是一个值时,不能使用单行操作符,而必须根据需要使用ANY、IN、ALL或EXISTS等操作符。48.1.2在WHERE子句中使用子查询1.使用子查询在WHERE子句中使用子查询的一般用法形式如下:SELECTcolumn_listFROMtable_nameWHEREexpressionoperator(SELECTcolumn_nameFROMtable_nameWHERE

4、conditionGROUPBYexpHAVINGhaving);其中,在外部SELECT语句的WHERE子句中,expression用来指定一个表达式,也可以是表中的一列;operator可以是单行和多行操作符;()中的内容表示子查询内容。58.1.2在WHERE子句中使用子查询2.不能使用ORDERBY子句在子查询的SELECT语句中,可以使用FROM子句、WHERE子句、GROUPBY子句和HAVING子句等,但是有些情况下不能使用ORDERBY子句,例如在WHERE子句中使用子查询时,子查询语句

5、中就不能使用ORDERBY子句。68.1.3在HAVING子句中使用子查询在SELECT语句中使用HAVING子句,可以实现对数据进行分组过滤。在HAVING子句中,如果使用子查询,那么就可以实现对子查询返回的结果根据分组进行过滤。【例8.3】对scott用户的emp表进行检索,在HAVING子句中使用子查询。获取哪些部门的员工平均工资小于全体员工的平均工资。具体如下:SQL>SELECTdeptno,AVG(sal)FROMscott.empGROUPBYdeptno2HAVINGAVG(sal)<(

6、3SELECTAVG(sal)FROMscott.emp);DEPTNOAVG(SAL)-----------------------301566.6666778.1.4使用IN操作符实现指定匹配查询1.使用IN操作符IN操作符用来检查在一个值列表中是否包含指定的值。这个值列表可以是子查询的返回结果。2.使用NOTIN操作符NOTIN操作符用来检查在一个值列表中是否不包含指定的值,NOTIN执行的操作正好与IN在逻辑上相反。3.常见的操作错误多行子查询可以返回多行记录,如果接收子查询结果的操作符是单行操

7、作符,那么在执行语句时,可能会出现错误提示。88.1.5使用ANY操作符实现任意匹配查询在进行多行子查询时,使用ANY操作符,用来将一个值与一个列表中的所有值进行比较,这个值只需要匹配列表中的一个值即可,然后将满足条件的数据返回。其中,值列表可以是子查询的返回结果。在使用ANY操作符之前,必须使用一个单行操作符,例如=、>、<、<=等。【例8.7】对scott用户的emp表进行操作,获得工资大于任意一个部门的平均工资的员工信息,如下:参见教材P17698.1.6使用ALL操作符实现全部匹配查询在进行子查

8、询时,使用ALL操作符,用来将一个值与一个列表中的所有值进行比较,这个值需要匹配列表中的所有值,然后将满足条件的数据返回。其中,值列表可以是子查询的返回结果。在使用ALL操作符之前,必须使用一个单行操作符,例如=、>、<、<=等。【例8.8】对scott用户的emp表进行操作,获得工资大于所有部门的平均工资的员工信息,如下:参见教材P176108.1.7实现多列子查询多列子查询则是指返回多列数据的子查询语句。当多列子查询返回单行数据时,在W

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。