版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章关联检索
本章主要内容6.1前言了解关联查询6.2笛卡尔关联描述概念。6.3相等关联描述概念以及应用。6.4自我关联了解概念以及应用方式。6.5外部关联了解概念以及应用方式。本章主要内容6.6集合运算掌握运算概念和应用。6.7总结6.1前言
本章主要介绍表关联查询的方式。由于在实际开发过程中,关联查询是占很大比重的。同时我们需要注意表关联中,传统写法和JOIN写法的区别。两种方式在开发中的应用都比较广泛。6.2笛卡尔关联
当检索时,使用多个表时,如果条件不完全,输出的结果就会有规则的出现重复数据。而这种重复结果集就是笛卡尔乘积,我们把这种关联方式叫笛卡尔关联。通常笛卡尔关联是一种错误的关联方式。(参看例6.1)
SELECTA.stuname,B.scoreFROMtbl_studentinfoA,tbl_scoreinfoB6.3相等关联
最常用的联接类型是对一个公共列中存储了相同数据的几个表创建的,这种联接称为相等关联。相等关联分为传统方法和JOIN方式。(参看例6.2和例6.3)例6.2(查询学生名和成绩)SELECTA.stuname,B.scoreFROMtbl_studentinfoA,tbl_scoreinfoBWHEREA.stuno=B.stunoSELECTA.stuname,B.scoreFROMtbl_studentinfoAJOINtbl_scoreinfoBONA.stuno=B.stuno6.3相等关联
例6.3(查询学生名和成绩已经课程名)SELECTA.stuname,B.score,C.classnameFROMtbl_studentinfoA,tbl_scoreinfoB,tbl_classinfoCWHEREA.stuno=B.stunoANDB.classno=C.classnoSELECTA.stuname,B.score,C.classnameFROMtbl_scoreinfoBJOINtbl_studentinfoAONA.stuno=B.stunoJOINtbl_classinfoCONB.classno=C.classno6.3相等关联
注意:多表关联中,追加的条件应该是可以唯一确定关联表的数据.如果不能唯一,或出现笛卡尔集合的话,肯定是有条件没有追加完全。6.4自我关联
自我关联的两个表,其实就是一个表,只是根据业务的需要,看成两个不同的表
。根据表6.1修改学生表数据,然后查询每个学生的上级组长的姓名(参看例6.4)6.4自我关联
例6.4(查询学号和学生名以及上级组长名)SELECTA.stuno,A.stuname,B.stunameFROMtbl_studentinfoA,tbl_studentinfoBWHEREA.upstuno=B.stunoSELECTA.stuno,A.stuname,B.stunameFROMtbl_studentinfoAINNERJOINtbl_studentinfoBONA.upstuno=B.stuno6.5外部关联
当用户需要查询结果中包括存在于一个表中但是在另一个表中没有对应的记录的时候,就需要使用外部关联查询了。查询所有学生日语课成绩(参看例6.6,例6.7,例6.8)6.5外部关联
例6.6(查询所有学生日语的成绩)SELECTA.stuno,A.stuname,B.scoreFROMtbl_studentinfoA,tbl_scoreinfoBWHEREA.stuno=B.stuno(+)ANDB.classno='002';SELECTA.stuno,A.stuname,B.scoreFROMtbl_studentinfoALEFTOUTERJOINtbl_scoreinfoBONA.stuno=B.stunoANDB.classno='002'6.5外部关联
例6.7(查询所有学生日语的成绩和课程名,学生名)SELECTA.stuno,A.stuname,B.score,C.classnameFROMtbl_studentinfoA,tbl_scoreinfoB,tbl_classinfoCWHEREA.stuno=B.stuno(+)ANDB.classno='002'ANDB.classno=C.classno(+)SELECTA.stuno,A.stuname,B.score,C.classnameFROMtbl_scoreinfoBRIGHTOUTERJOINtbl_studentinfoAONA.stuno=B.stunoANDB.classno='002'LEFTOUTERJOINtbl_classinfoCONB.classno=C.classno6.5外部关联
例6.8(查询所有学生日语的成绩和课程名,学生名,没成绩的为0)SELECTA.stuno,A.stuname,NVL(B.score,0)score,C.classnameFROMtbl_studentinfoA,tbl_scoreinfoB,tbl_classinfoCWHEREA.stuno=B.stuno(+)ANDB.classno='002';ANDB.classno=C.classno(+)SELECTA.stuno,A.stuname,NVL(B.score,0),C.classnameFROMtbl_scoreinfoBRIGHTOUTERJOINtbl_studentinfoAONA.stuno=B.stunoANDB.classno='002'LEFTOUTERJOINtbl_classinfoCONB.classno=C.classno6.6集合运算
在数据库查询中我们有时需要将数据库的检索结果集进行合并,则这个时候需要用到集合运算(UNION与UNIONALL)。查询参加日语和英语考试的学生成绩(参看例6.9)。方式1:
SELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoANDB.classnamein('英语','日语');6.6集合运算
方式2:
SELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoAND(B.classname='英语'ORB.classname='日语')6.6集合运算
方式3:SELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoANDB.classname='英语'UNIONALLSELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoANDB.classname='日语'6.6集合运算
查询参加日语和英语考试的学生成绩,结果按照课程与成绩降序排序(参看例6.10)。
SELECTstuname,classname,scoreFROM(SELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoANDB.classno='002'UNIONALLSELECTA.stuname,B.classname,C.scoreFROMtbl_studentinfoA,tbl_classinfoB,tbl_scoreinfoCWHEREA.stuno=C.stunoANDB.classno=C.classnoANDB.classno='003')ORDERBYclassname,scoreDESC;6.6集合运算
注意:
1.UNION,UNIONALL集合运算很多情况下可以和OR,IN语句互换。
2.UNION与UNIONAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竺可桢《大自然的语言》课件
- 2021广州市高考英语阅读类训练(4)及答案【三月版】
- 【与名师对话】2022高考地理课标版总复习课时跟踪训练46环境保护-
- 2021广东惠州市高考英语完形填空课外自练(9)就答案(解析)
- 【志鸿优化】2021年人教版高中语文必修4学案-第11课-廉颇蔺相如列传-第二课时
- 20202021学年高中数学北师大版选修2-1课件第二章5夹角的计算
- 《生姜病虫害防治》课件
- 【中学课件】信息技术教材培训
- 2024年高效工业设备采购与销售合同协议
- 2024版路灯安装工程承包合同模板
- 小学英语一般疑问句和特殊疑问句(附练习题)
- 信息安全技术课件整套电子教案
- 2024年安徽省行政执法人员资格认证考试试题含答案
- 2024年放射工作人员放射防护培训考试题及答案
- 2024年1月国开电大专科《渠道管理》期末考试试题及答案
- JGT302-2022卷帘门窗规范
- 居家养老单项服务及收费
- 长输管道项目管道封堵施工技术方案
- 中国2型糖尿病运动治疗指南 (2024版)
- 人教版初中九年级全册英语单词表
- 医疗器械质量安全承诺书
评论
0/150
提交评论