sql-高级子查询.ppt

sql-高级子查询.ppt

ID:48200780

大小:313.00 KB

页数:26页

时间:2020-01-15

sql-高级子查询.ppt_第1页
sql-高级子查询.ppt_第2页
sql-高级子查询.ppt_第3页
sql-高级子查询.ppt_第4页
sql-高级子查询.ppt_第5页
资源描述:

《sql-高级子查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高级子查询目标通过本章学习,您将可以:书写多列子查询子查询对空值的处理在FROM子句中使用子查询在SQL中使用单列子查询关联子查询书写关联子查询使用子查询更新和删除数据使用EXISTS和NOTEXISTS操作符使用WITH子句子查询子查询是嵌套在SQL语句中的另一个SELECT语句SELECT...FROM...WHERE...(SELECT...FROM...WHERE...)主查询子查询子查询子查询(内查询)在主查询执行之前执行主查询使用子查询的结果(外查询)SELECTselect_listFROMtableWHEREexproperator(

2、SELECTselect_listFROMtable);SELECTlast_nameFROMemployeesWHEREsalary>(SELECTsalaryFROMemployeesWHEREemployee_id=149);子查询应用举例10500多列子查询主查询WHERE(MANAGER_ID,DEPARTMENT_ID)INSubquery10090 10260 12450主查询与子查询返回的多行、多列进行比较列比较多列子查询中的比较分为两种:成对比较不成对比较成对比较举例SELECTemployee_id,manager_id,depa

3、rtment_idFROMemployeesWHERE(manager_id,department_id)IN(SELECTmanager_id,department_idFROMemployeesWHEREemployee_idIN(178,174))ANDemployee_idNOTIN(178,174);不成对比较举例SELECTemployee_id,manager_id,department_idFROMemployeesWHEREmanager_idIN (SELECTmanager_idFROMemployeesWHEREemploye

4、e_idIN(174,141))ANDdepartment_idIN (SELECTdepartment_idFROMemployeesWHEREemployee_idIN(174,141))ANDemployee_idNOTIN(174,141);SELECTa.last_name,a.salary,a.department_id,b.salavgFROMemployeesa,(SELECTdepartment_id,AVG(salary)salavgFROMemployeesGROUPBYdepartment_id)bWHEREa.departm

5、ent_id=b.department_idANDa.salary>b.salavg;在FROM子句中使用子查询单列子查询表达式单列子查询表达式是在一行中只返回一列的子查询Oracle8i只在下列情况下可以使用,例如:SELECT语句(FROM和WHERE子句)INSERT语句中的VALUES列表中Oracle9i中单列子查询表达式可在下列情况下使用:DECODE和CASESELECT中除GROUPBY子句以外的所有子句中单列子查询应用举例在CASE表达式中使用单列子查询SELECTemployee_id,last_name,(CASEWHENdep

6、artment_id=THEN'Canada'ELSE'USA'END)locationFROMemployees;(SELECTdepartment_idFROMdepartmentsWHERElocation_id=1800)在ORDERBY子句中使用单列子查询SELECTemployee_id,last_nameFROMemployeeseORDERBY20(SELECTdepartment_nameFROMdepartmentsdWHEREe.department_id=d.department_id);关联子查询关联子查询按照一行接一行的顺

7、序循环执行,主查询的每一行都执行一次子查询GET从主查询中获取候选列EXECUTE子查询使用主查询的数据USE如果满足子查询的条件则返回该行关联子查询SELECTcolumn1,column2,...FROMtable1WHEREcolumn1operator(SELECTcolum1,column2FROMtable2WHEREexpr1=.expr2);子查询中使用主查询中的列outerouterSELECTlast_name,salary,department_idFROMemployeesouterWHEREsalary>关联子查询举例(SE

8、LECTAVG(salary)FROMemployeesWHEREdepartment_id=outer.d

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

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

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