数据检索三高级查询之连接查询_第1页
数据检索三高级查询之连接查询_第2页
数据检索三高级查询之连接查询_第3页
数据检索三高级查询之连接查询_第4页
数据检索三高级查询之连接查询_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据检索(三)高级查询,连接查询,连接查询,实现从两个或两个以上表中检索数据且结果集中出现的列来自于两个或两个以上表中的检索操作被称为连接查询(连接技术),或者说连接技术是指对两个表或两个以上表中数据执行乘积运算的技术。在设计表时,为了提高表的设计质量,经常把相关数据分散到不同的表中。但是,在使用数据时,需要把这些数据集中在一个查询语句中。,1.1 交叉连接查询 1.2 等值与非等值连接查询 1.3 自身连接查询 1.4 外连接查询 1.5 复合连接条件查询,1 连接查询,内连接(INNER JOIN)外连接左外连接 (LEFT JOIN)右外连接 (RIGHT JOIN)完整外连接 (FULL JOIN)交叉连接(CROSS JOIN),1 连接查询,1.1 交叉连接查询,1.交叉连接的连接过程 例如,有一个产品表和一个产品销售表,如表1、表2所示,两个表交叉连接后产生的结果如表3所示,结果集是两个表记录的交叉乘积,列是两个表列的集合。,产品名称,产品名称,表1,表2,表3,1.1 交叉连接查询,交叉连接语法结构,交叉连接查询,1.1 交叉连接查询,2.交叉连接的语法格式如下: SELECT 列名列表 FROM 表名1 CROSS JOIN 表名2 3.交叉查询产品表和产品销售表,代码如下: USE STUDENT GO SELECT * FROM 产品 CROSS JOIN 产品销售 GO 练习:范例6-1,内连接查询语法结构,内连接(示例),内连接查询,内连接(示例),内连接查询,1.2 等值与非等值连接查询(内连接),例1 :用等值连接的方法连接产品表和产品销售表。代码如下: USE STUDENT GO SELECT * FROM 产品 INNER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO,1.2 等值与非等值连接查询(内连接),例2:自然连接产品表和产品销售表。代码如下: SELECT 产品.产品编号,产品名称,销量 FROM 产品 JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-2、 6-3、 6-4,1.3 自身连接查询,一个表的两个副本之间的连接 称为自身连接查询 例3 :查询选修了两门或两门以上课程的学生的学号和课程号。代码如下:USE student GOSELECT DISTINCT a.学号,a.课程号FROM 课程注册 AS a JOIN 课程注册 AS b ON a.学号=b.学号 AND a.课程号!=b.课程号GO,自连接(示例),自连接查询,1.4 外连接查询,外连接有分为左外连接、右外连接、全外连接三种。外连接除产生内连接生成的结果集外,还可以使一个表(左、右外连接)或两个表(全外连接)中的不满足连接条件的记录也出现在结果集中。,外连接语法结构,外连接查询,外连接语法结构,外连接查询,外连接(示例),外连接查询,1.4 外连接查询,1. 左外连接 例4:将产品表左外连接产品销售表。代码如下: USE STUDENT GO SELECT * FROM 产品 LEFT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-6,1.4 外连接查询,2. 右外连接 例5 :将产品表右外连接产品销售表。代码如下: USE STUDENT GO SELECT * FROM 产品 RIGHT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-7,1.4 外连接查询,3. 全连接 例6 :用全连接的方法连接产品表与产品销售表。代码如下: USE STUDENT GO SELECT * FROM 产品 FULL OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 GO练习:范例6-8,连接查询示例,连接查询,连接查询,交叉连接查询结果,连接结果,内连接查询结果,连接结果,左外连接查询结果,连接结果,右外连接查询结果,连接结果,全外连接查询结果,交叉连接查询结果,1.5 复合连接条件查询,例7:查询成绩在75分以上的学生的学号、姓名、专业代码和专业学级,选修课的学期、课程号、成绩,任课教师的教师编号、姓名。范例6-9代码如下:USE studentGOSELECT B.课程号,C.教师编号,C.姓名,A.学号,A.姓名,B.专业代码,B.专业学级,B.学期,B.成绩FROM 学生 AS A JOIN 课程注册 AS B ON A.学号=B.学号 AND B.成绩75 JOIN 教师 AS C ON B.教师编号=C.教师编号GO,2 案例应用举例,2.1 自动注册必修课2.2 重修未取得学分的必修课2.3 查询学生各门课程的成绩 2.4 查询学生的总学分,附件,-(1)使用“学生”表生成“学生1”表的表结构。USE studentGOSELECT 学号,姓名 INTO 学生1FROM 学生WHERE 1=2GO-(2)使用“课程注册”表生成“单科成绩”表的表结构。SELECT 学号,成绩 INTO 单科成绩FROM 课程注册WHERE 1=2GO,-(3)向“学生1”表和“单科成绩”表中添加数据。INSERT INTO 学生1(学号,姓名)VALUES(11,杨文生)INSERT INTO 学生1(学号,姓名)VALUES(12,唐国栋)INSERT INTO 学生1(学号,姓名)VALUES(14,梁明亮)GOINSERT INTO 单科成绩(学号,成绩)VALUES(11,80)INSERT INTO 单科成绩(学号,成绩)VALUES(13,98)INSERT INTO 单科成绩(学号,成绩)VALUES(15,76)GO-(4)交叉连接查询。SELECT *FROM 学生1 CROSS JOIN 单科成绩GO,附件,1左外连接将“学生1”表左外连接“单科成绩”表。代码如下:USE student GOSELECT *FROM 学生1 LEFT OUTER JOIN 单科成绩 ON 学生1.学号=单科成绩.学号GO,附件,2右外连接将“学生1”表右外连接“单科成绩”表。代码如下:USE student GOSELECT *FROM 学生1 RIGHT OUTER J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论