数据检索(三)高级查询之连接查询课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据检索(三)高级查询之连接查询课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 检索 高级 查询 连接 课件
- 资源描述:
-
1、数据检索(三)高级查询连接查询 连接查询n实现从两个或两个以上表中检索数据且结果集中出现的列来自于两个或两个以上表中的检索操作被称为连接查询(连接技术),或者说连接技术是指对两个表或两个以上表中数据执行乘积运算的技术。在设计表时,为了提高表的设计质量,经常把相关数据分散到不同的表中。但是,在使用数据时,需要把这些数据集中在一个查询语句中。n1.1 交叉连接查询 n1.2 等值与非等值连接查询 n1.3 自身连接查询 n1.4 外连接查询 n1.5 复合连接条件查询 1 连接查询 n内连接(INNER JOIN)n外连接n左外连接(LEFT JOIN)n右外连接(RIGHT JOIN)n完整外连
2、接(FULL JOIN)n交叉连接(CROSS JOIN)1 连接查询 1.1 交叉连接查询1.交叉连接的连接过程 例如,有一个产品表和一个产品销售表,如表1、表2所示,两个表交叉连接后产生的结果如表3所示,结果集是两个表记录的交叉乘积,列是两个表列的集合。产品名称产品编号0001显示器0002键盘0004鼠标产品编号销量000125000330000535产品名称表表1表表2产品编号产品名称产品编号销量0001显示器0001250002键盘0001250004鼠标0001250001显示器0003300002键盘0003300004鼠标0003300001显示器0005350002键盘000
3、5350004鼠标000535表表31.1 交叉连接查询交叉连接语法结构select From cross join On .=.交叉连接查询1.1 交叉连接查询2.交叉连接的语法格式如下:SELECT 列名列表 FROM 表名1 CROSS JOIN 表名2 3.交叉查询产品表和产品销售表,代码如下:USE STUDENT GO SELECT*FROM 产品 CROSS JOIN 产品销售 GO 练习:范例6-1select StudID,StuName,tblstudent.ClassID,EnrollYear,specialityfrom tblstudent ,tblclasswher
4、e tblstudent.ClassID=tblclass.ClassID内连接查询语法结构(1)select From inner join On .=.(2)select From,On .=.内连接(示例)内连接(示例)select StudID,StuName,tblstudent.ClassID,EnrollYear,specialityfrom tblstudent join tblclasson tblstudent.ClassID=tblclass.ClassID内连接查询select StudID,StuName,ClassName,DepartNamefrom tblstu
5、dent,tblclass,tbldepartwhere tblstudent.ClassID=tblclass.ClassID and tblclass.DepartID=tbldepart.DepartID内连接(示例)示例)在学生基本情况表在学生基本情况表tblstudent,班级表,班级表tblclass和系别表和系别表tbldepart三表中查询学生信息,包括学生的学三表中查询学生信息,包括学生的学号、姓名、班级号、姓名、班级名称和系别名称名称和系别名称。内连接查询1.2 等值与非等值连接查询(内连接)例1:用等值连接的方法连接产品表和产品销售表。代码如下:USE STUDENT G
6、O SELECT*FROM 产品 INNER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO1.2 等值与非等值连接查询(内连接)例2:自然连接产品表和产品销售表。代码如下:SELECT 产品.产品编号,产品名称,销量 FROM 产品 JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-2、6-3、6-41.3 自身连接查询 一个表的两个副本之间的连接 称为自身连接查询 例3:查询选修了两门或两门以上课程的学生的学号和课程号。代码如下:USE student GOSELECT DISTINCT a.学号,a.课程号FROM 课程注册 AS a J
7、OIN 课程注册 AS b ON a.学号=b.学号 AND a.课程号!=b.课程号GO(1)select a.StudID,a.StuName,a.StuSex,year(EnrollDate),ClassID from tblstudent a,tblstudent b where b.StuName=刘备刘备 and a.ClassID=b.ClassID and a.StuName刘备刘备(2)select a.ClassID,b.ClassID,a.EnrollYear from tblclass a,tblclass b where a.EnrollYear=b.EnrollYe
8、ar and a.ClassIDb.ClassID注:注:a.ClassIDb.ClassID主要是主要是为了避免交叉连接而出现无意义的行。为了避免交叉连接而出现无意义的行。自连接(示例)示例)在学生基本情况表在学生基本情况表tblstudent中中(1)查询刘备的同班同学的)查询刘备的同班同学的学号、姓名、性别、入学年份和班学号、姓名、性别、入学年份和班级号级号(不含刘备本人不含刘备本人)。(2)查询入学年份为同一年的)查询入学年份为同一年的班级编号班级编号。自连接查询1.4 外连接查询 外连接有分为左外连接、右外连接、全外连接三种。外连接除产生内连接生成的结果集外,还可以使一个表(左、右外
9、连接)或两个表(全外连接)中的不满足连接条件的记录也出现在结果集中。(1)select a.StudID,a.StuName,a.StuSex,year(EnrollDate),ClassID from tblstudent a,tblstudent b where b.StuName=刘备刘备 and a.ClassID=b.ClassID and a.StuName刘备刘备(2)select a.ClassID,b.ClassID,a.EnrollYear from tblclass a,tblclass b where a.EnrollYear=b.EnrollYear and a.Cl
10、assIDb.ClassID注:注:a.ClassIDb.ClassID主要是主要是为了避免交叉连接而出现无意义的行。为了避免交叉连接而出现无意义的行。外连接语法结构select From left|right|fullouter join On .=.外连接查询外连接语法结构select From left|right|fullouter join On .=.外连接查询SELECT s.StudID,StuName,CourseID,Scorefrom tblstudent s left join tblScore scOn s.StudID=sc.StudID order by Stud
11、ID desc外连接(示例)在学生基本情况表在学生基本情况表tblstudent和成绩表和成绩表tblScore中查询学中查询学生选课情况,如果学生没有选课,则在成绩表生选课情况,如果学生没有选课,则在成绩表tblScore将没有将没有该学生的成绩信息,课程和成绩列用空值填充。(用该学生的成绩信息,课程和成绩列用空值填充。(用左外连接左外连接)外连接查询1.4 外连接查询 1.左外连接 例4:将产品表左外连接产品销售表。代码如下:USE STUDENT GO SELECT*FROM 产品 LEFT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-61
12、.4 外连接查询 2.右外连接 例5:将产品表右外连接产品销售表。代码如下:USE STUDENT GO SELECT*FROM 产品 RIGHT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-71.4 外连接查询 3.全连接 例6:用全连接的方法连接产品表与产品销售表。代码如下:USE STUDENT GO SELECT*FROM 产品 FULL OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-8(1)建立两个表:)建立两个表:药品表和数量表药品表和数量表。(2)输入药品表和数量表记录。)输入药品表和数
展开阅读全文