版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章关联检索
本章主要内容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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多组学技术在精准医疗中的创新服务模式
- 2025年高职木业智能装备应用技术(智能装备操作)试题及答案
- 2026年智能酒品AI营销文案生成器项目可行性研究报告
- 2025年中职(烘焙工艺)中式面点制作试题及答案
- 多源数据融合的化工行业职业病风险预测
- 2025年高职历史(历史应用技能进阶)试题及答案
- 2025年中职行政管理(行政办公实务)试题及答案
- 2025年高职托育基础应用技术(托育应用)试题及答案
- 2025年高职(建设工程管理)工程质量控制综合测试试题及答案
- 2025年高职国际物流(国际物流实务)试题及答案
- GB/T 23446-2025喷涂聚脲防水涂料
- 2026年(马年)学校庆元旦活动方案:骏马踏春启新程多彩活动庆元旦
- 消防箱生产工艺流程
- T-CDLDSA 09-2025 健身龙舞彩带龙 龙舞华夏推广套路技术规范
- 部编版初三化学上册期末真题试题含解析及答案
- GB/T 19566-2025旱地糖料甘蔗高产栽培技术规程
- 去极端化条例解读课件
- 光纤收发器培训
- 汽车减震器课件
- 水上抛石应急预案
- 苏州大学介绍
评论
0/150
提交评论