6章 Oracle_DML_高级查询

上传人:muj****520 文档编号:244382784 上传时间:2024-10-04 格式:PPTX 页数:60 大小:1.68MB
返回 下载 相关 举报
6章 Oracle_DML_高级查询_第1页
第1页 / 共60页
6章 Oracle_DML_高级查询_第2页
第2页 / 共60页
6章 Oracle_DML_高级查询_第3页
第3页 / 共60页
点击查看更多>>
资源描述
,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,#,Java,程序员,Oracle,就业课程,Lesson 6,高级查询,主讲:杨昊,Q,:,952063095,掌握集,合,合运算,掌握子,查,查询,掌握子,查,查询所,能,能够解,决,决的各,类,类问题,掌握多,表,表连接,查,查询,使用自,连,连接让,一,一个表,连,连接它,本,本身,掌握子,查,查询解,决,决程序,中,中的各,种,种业务,逻,逻辑,目,标,标,I、集合,运,运算,集合运,算,算符,A,B,A,A,A,B,B,B,UNION/UNIONALL,INTERSECT,MINUS,EMPLOYEES:提供关,于,于当前,所,所有雇,员,员的详,细,细信息,JOB,_,_HISTORY:当一个,雇,雇员转,换,换工作,的,的时候,,,,记录,前,前面工,作,作开始,和,和结束,的,的日期,,,,以及,工,工作的,标,标识号,和,和部门,本课中,使,使用的,表,表,本课中,使,使用的,表,表:,UNION运算符,UNION运算符,从,从两个,查,查询中,返,返回消,除,除重复,之,之后的,结,结果,A,B,UNION运算符,的,的使用,显示当,前,前和先,前,前的所,有,有雇员,的,的的工,作,作细节,。,。每个,雇,雇员,只显示,一,一次,UNIONALL运算符,A,B,UNIONALL返回两,个,个查询,的,的结果,,,,其中,包,包括重,复,复的,UNIONALL运算符,的,的使用,显示当,前,前和先,前,前的所,有,有雇员,的,的部门,INTERSECT运算符,A,B,INTERSECT运算符,的,的使用,显示在,开,开始公,司,司的任,期,期之前,,,,拥有,工,工作资,格,格的雇,员,员的IDs,和工作IDs,MINUS运算符,A,B,MINUS运算符,显示那,些,些一次,都,都没有,转,转换工,作,作的雇,员,员IDs,II、子查,询,询,使用子,查,查询解,决,决问题,谁的工,资,资比Abel高?,主查询,哪个雇,员,员的工,资,资比Abel高?,Abel的工资,是,是多少,?,?,子查询,?,子查询,的,的语法,子查询,(,(内部,查,查询),在,在主查,询,询之前,执,执行一,次,次,子查询,的,的结果,被,被用于,主,主查询,(,(外部,查,查询),使用子,查,查询,单行子,查,查询,只返回,一,一行结,果,果,使用单,行,行比较,运,运算符,执行单,行,行子查,询,询,在子查,询,询中使,用,用组函,数,数,在子查,询,询中使,用,用HAVING子句,Oracle首先执,行,行子查,询,询,Oracle返回结,果,果到主,查,查询的HAVING子句,这个语,句,句的错,误,误是什,么,么?,这个语,句,句将返,回,回行吗,?,?,运算符,含义,IN,与列表中的任一成员相等,ANY,与子查询返回的每一个值比较,ALL,与子查询返回的所有值比较,多行子,查,查询,返回多,行,行,使用多,行,行比较,运,运算符,在多行,子,子查询,中,中使用ANY运算符,在多行,子,子查询,中,中使用ALL运算符,子查询,中,中的空,值,值,相关子,查,查询,子查询,参,参考父,查,查询表,中,中的一,列,列,使用相,关,关子查,询,询,找到那,些,些收入,超,超过他,们,们部门,平,平均薪,酬,酬的所,有,有雇员,每次从,外,外部查,询,询来的,行,行被,处理的,时,时候,,内,内部查,询,询就,被求值,使用相关子,查,查询,显示那,些,些至少,已,已经更,换,换了两,次,次工作,的,的雇员,EXISTS运算符,检,检测子,查,查询的,结,结果集,中,中行的,存,存在,如果一,个,个子查,询,询的行,值,值被找,到,到:,内部查,询,询中的,搜,搜索将,不,不会继,续,续,条件将,会,会标记,为,为TRUE,如果一,个,个子查,询,询的行,值,值没有,被,被找到,:,:,条件将,会,会标记,为,为FALSE,内部查,询,询中的,搜,搜索将,会,会继续,使用EXISTS运算符,使用EXISTS运算符,找到那,些,些至少,有,有一个,人,人向他,们,们报告,的,的雇员,使用NOTEXISTS运算符,找到没,有,有任何,职,职员的,部,部门,III、,多表连,接,接,从多张,表,表中获,取,取数据,EMPLOYEES,DEPARTMENTS,笛卡尔,连,连接,等值连,接,接,非等值,连,连接,外部连,接,接,自连接,连接类,型,型,产生一,个,个笛卡,连,连接,EMPLOYEES,(,(20行),DEPARTMENTS,(,(8行),笛卡尔,积,积:,20x8=160行,笛卡尔,积,积在下,列,列情况,下,下产生,:,:,忽略了,一,一个连,接,接条件,一个连,接,接条件,失,失效,第一张,表,表的所,有,有行和,第,第二张,表,表的所,有,有行连,接,接,为了避,免,免笛卡,尔,尔积的,产,产生,,通,通常包,含,含一个,有,有效连,接,接条件,的,的WHERE子句。,笛卡尔,积,积,使用Oracle语法连,接,接表,使用一,个,个连接,去,去查询,多,多张表,的,的数据,在,WHERE,子句中,设,设定连,接,接条件,当多张,表,表的列,重,重名时,,,,以表,名,名作为,列,列名的,前,前缀。,等值连,接,接,外键,主键,EMPLOYEES,DEPARTMENTS,使用等,值,值连接,检,检索记,录,录,用表前,缀,缀在多,张,张表中,限,限定列,名,名,用表前,缀,缀提高,系,系统性,能,能,用列别,名,名区分,不,不同表,中,中同名,的,的列,限定使,用,用二义,性,性列名,使用表,别,别名,用表别,名,名简化,查,查询,用表名,前,前缀提,高,高性能,两张表,以,以上的,连,连接,EMPLOYEES,DEPARTMENTS,LOCATIONS,连接n张表至,少,少需要n-1个连接,条,条件。,例,例如:,连,连接3张表至,少,少,要2个连接,条,条件,非等值,连,连接,EMPLOYEES,JOB,_,_GRADES,EMPLOYEES表中的,工,工资,应介于JOB,_,_GRADES表的,最低和,最,最高工,资,资之间,用非等,值,值连接,检,检索记,录,录,外部连,接,接,在ID为190的部门,中,中没有,任,任何雇,员,员,外部连,接,接语法,利用一,个,个外部,连,连接查,询,询那些,无,无法满,足,足连接,条,条件的,行,行,外部连,接,接运算,符,符是一,个,个加号,(,(+),wheree.dept,_,_id,(,(+),=,=d.id;,+号在左,边,边,已右边,为,为准,左边补,齐,齐,+号在右,边,边,已左边,为,为准,右边补,齐,齐,外部连,接,接语法+号问题,使用外,部,部连接,自连接,EMPLOYEES,(,(WORKER),EMPLOYEES,(,(MANAGER,),),WORKER表中的MANAGER_ID等于,MANAGER表中的EMPLOYEE_ID,表的自,连,连接,使用SQL99语法介,绍,绍,使用一,个,个连接,查,查询多,张,张表的,数,数据,使用SQL99语法介,绍,绍,Crossjoin,Join On(,),),Left outer joinon (,),),Rightouterjoin (,),),Full outer joinon,(,(,),),CROSSJOIN产生了,一,一个笛,卡,卡尔积,(,(Cartesianproduct),,,,就象是,在,在连接,两,两个表,格,格时忘,记,记加入,一,一个WHERE子句一,样,样,例:,SELECTlast_name,dept,_,_idFROMemp,dept;,例:,SELECTename,loc FROMemp CROSS JOINdept;,CROSSJOIN,ON子句被,用,用于当,在,在两个,表,表中的,字,字段名,不,不一致,时,时来连,接,接表,例:,SELECTdepartment_name,cityFROM department, locationWHEREdepartment.location_id =location,.,.loc_id;,SELECTdepartment_name,cityFROM departmentdJOIN location lON,(,(d.location_id,=,= l,.,.id,),);,ON子句,在LEFT OUTER JOIN中,会,返,返回所,有,有左边,表,表中的,行,行,甚,至,至在被,连,连接的,表,表中没,有,有可对,应,应的列,名,名的情,况,况下也,如,如此。,例:,SELECTlast_name,dept_idFROM empe,dept dWHEREe.department,_,_id,=,=d.department,_,_id,(,(+),;,;,SELECTlast_name,dept_idFROM empLEFT OUTER JOINDeptONe.dept,_,_id,=,=d.dept,_,_id,;,;,LEFT OUTER JOIN,在RIGHTOUTERJOIN中返回,的,的是表,中,中所有,右,右边的,行,行,甚,至,至在被,连,连接的,表,表中没,有,有对应,的,的情况,下,下也如,此,此。,例:,SELECTlast_name,d.dept,_,_idFROM employeese,departmentsdWHEREe.department,_,_id,(,(+),=,=d.department,_,_id,;,;,SELECTlast_name,d.dept,_,_idFROMemployeeseRIGHTOUTERJOIN departments dON,(,(e.department_id =d.department_id);,RIGHTOUTERJOIN,FULL OUTER JOIN,=,=LEFTOUTJOIN+RIGHTOUTJOIN,例:,SELECTlast_name,d.dept,_,_idFROMemployeese,departmentsdWHEREe.department,_,_id,=,=d.department,_,_id,(,(+),UNIONALL,SELECTlast_name,d.dept,_,_idFROMemployeese,departmentsdWHEREe.department,_,_id,(,(+,),)=d.department,_,_id,SELECTlast_name,d.dept,_,_idFROMemployeeseFULL OUTER JOINdepartmentsdON,(,(e.department_id =d.department_id);,FULL OUTER JOIN,附加条,件,件,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 市场营销


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!