Oracle公司内部数据库培训资料Les06-chinese_第1页
Oracle公司内部数据库培训资料Les06-chinese_第2页
Oracle公司内部数据库培训资料Les06-chinese_第3页
Oracle公司内部数据库培训资料Les06-chinese_第4页
Oracle公司内部数据库培训资料Les06-chinese_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、子查询 目标通过本章章学习,您将可可以:描述子查查询可以以解决的的问题定义子查查询。列句子查查询的类类型。书写单行行子查询询和多行行字查询询。使用子查查询解决决问题谁的工资资比Abel高?谁的工资资比Abel高?Main Query:?Abel的工资是是多少?Subquery子查询语语法子查询(内查查询)在在主查查询之前前一次执执行完成成。子查询的的结果被被主查询询使用(外查查询)。SELECTselect_listFROMtableWHEREexproperator(SELECTselect_listFROMtable);SELECTlast_nameFROMemployeesWHEREsa

2、lary (SELECT salaryFROMemployeesWHERElast_name =Abel);子查询11000注意事项项子查询要要包含在在括号内内。将子查询询放在比比较条件件的右侧侧。除非进行行Top-N分析,否否则不要要在子查查询中使使用ORDERBY子句。单行操作作符对应应单行子子查询,多行操操作符对对应多行行子查询询。子查询类类型主查询子查询 返回ST_CLERK多行子查查询ST_CLERKSA_MAN主查询子查询 返回单行子查查询单行子查查询只返回一一行。使用单行行比较操操作符。操作符=含义EqualtoGreater thanGreater thanorequaltoL

3、ess thanLess thanorequaltoNotequalto SELECTlast_name,job_id, salaryFROMemployeesWHEREjob_id =(SELECT job_idFROMemployeesWHEREemployee_id=141)ANDsalary (SELECT salaryFROMemployeesWHEREemployee_id=143);执行单行行子查询询ST_CLERK2600SELECTlast_name,job_id, salaryFROMemployeesWHEREsalary =(SELECT MIN(salary)FROM

4、employees);在子查询询中使用用组函数数2500子查询中中的HAVING子句首先执行行子查询询。向主查询询中的HAVING子句返回回结果。SELECTdepartment_id,MIN(salary)FROMemployeesGROUPBYdepartment_idHAVINGMIN(salary)(SELECT MIN(salary)FROMemployeesWHEREdepartment_id= 50);2500SELECTemployee_id, last_nameFROMemployeesWHEREsalary =(SELECTMIN(salary)FROMemployeesG

5、ROUPBYdepartment_id);非法使用用子查询询ERRORatline 4:ORA-01427: single-rowsubqueryreturnsmore thanonerow多行子查查询使用用单行比比较符子查询中中的空值值问题norows selectedSELECTlast_name,job_idFROMemployeesWHEREjob_id =(SELECT job_idFROMemployeesWHERElast_name =Haas);子查询不不返回任任何行多行子查查询返回多行行。使用多行行比较操操作符。操作符INANY ALL含义等于列表表中的任任何一个个和子查询询

6、返回的的任意一一个值比比较和子查询询返回的的所有值值比较在多行子子查询中中使用ANY操作符9000,6000,4200SELECTemployee_id, last_name,job_id,salaryFROMemployeesWHEREsalary ANY(SELECT salaryFROMemployeesWHEREjob_id =IT_PROG)ANDjob_id IT_PROG;SELECTemployee_id, last_name,job_id,salaryFROMemployeesWHEREsalary ALL(SELECT salaryFROMemployeesWHEREjob_id =IT_PROG)ANDjob_id IT_PROG;在多行子子查询中中使用ALL操作符9000,6000,4200子查询中中的空值值问题SELECTemp.last_nameFROMemployees empWHEREemp.employee_id NOTIN(SELECT mgr.manager_idFROMemployees mgr);norows selected总结通过本章章学习,您已经经学会:在什么时时候遇到到什么问问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论