版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章关联检索
本章主要内容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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年体外诊断(IVD)高端试剂项目可行性研究报告
- 2026年原子级精密测量设备项目公司成立分析报告
- 2026年中药配方颗粒智能制造项目公司成立分析报告
- 2026江西九江瑞昌市国投建设工程集团有限公司招聘变更2人备考题库附答案详解ab卷
- 2026福建泉州石狮市蚶江镇中心幼儿园教师、保育员招聘备考题库附答案详解(综合题)
- 2026海南海口市琼山区劳动就业和社会保障管理中心招聘公益性岗位工作人员2人备考题库带答案详解(完整版)
- 2026陕西西安音乐学院专任教师招聘10人备考题库带答案详解(综合卷)
- 2026福建新华发行(集团)有限责任公司永安分公司招聘备考题库带答案详解(精练)
- 2026甘肃定西临洮县文庙巷社区卫生服务中心招聘卫生专业技术人员5人备考题库带答案详解(黄金题型)
- 2026甘肃兰州七里河能化集团校园招聘183人备考题库及答案详解(新)
- 2026年内蒙古商贸职业学院单招职业技能考试题库附答案解析
- 水电站电气设备检修方案
- 肠套叠诊疗指南(2025年版)
- 2025年中科大入学笔试及答案
- 蝶阀培训课件
- 污水处理厂员工劳动合同标准模板
- 2026年湖南电气职业技术学院单招职业技能测试必刷测试卷附答案
- 矩阵特征值快速计算方法-洞察及研究
- 2023版金属非金属地下矿山重大事故隐患判定标准
- JJG596-2012电子式交流电能表
- 基于Java电影院售票系统
评论
0/150
提交评论