连接查询和子查询全解课件

上传人:txadgkn****dgknqu... 文档编号:228226473 上传时间:2023-08-21 格式:PPT 页数:28 大小:782.50KB
收藏 版权申诉 举报 下载
连接查询和子查询全解课件_第1页
第1页 / 共28页
连接查询和子查询全解课件_第2页
第2页 / 共28页
连接查询和子查询全解课件_第3页
第3页 / 共28页
资源描述:

《连接查询和子查询全解课件》由会员分享,可在线阅读,更多相关《连接查询和子查询全解课件(28页珍藏版)》请在装配图网上搜索。

1、SQL Server SQL Server 20082008第第5章章 数据查询数据查询连接查询和连接查询和子查询子查询第第1717讲讲2第5章 数据查询连接查询和子查询第第1717讲讲复习复习:1.数据库的投影运算数据库的投影运算数据库的投影运算数据库的投影运算(选择列选择列选择列选择列)用什么子句实现?用什么子句实现?用什么子句实现?用什么子句实现?2.数据库的选择运算数据库的选择运算数据库的选择运算数据库的选择运算(选择行选择行选择行选择行)用什么子句实现?用什么子句实现?用什么子句实现?用什么子句实现?3.分类汇总用什么子句实现?分类汇总用什么子句实现?分类汇总用什么子句实现?分类汇总

2、用什么子句实现?4.对分类汇总生成的组进行条件筛选用什么子句?对分类汇总生成的组进行条件筛选用什么子句?对分类汇总生成的组进行条件筛选用什么子句?对分类汇总生成的组进行条件筛选用什么子句?5.明细汇总用什么子句实现?明细汇总用什么子句实现?明细汇总用什么子句实现?明细汇总用什么子句实现?putebycomputeby子句必须与什么子句连用?子句必须与什么子句连用?子句必须与什么子句连用?子句必须与什么子句连用?selectselect子句子句wherewhere子句子句group bygroup by子句子句compute bycompute by子句子句order by order by 子

3、句子句havinghaving子句子句3第5章 数据查询连接查询和子查询第第1717讲讲复习复习:数据汇总查询的语法格式数据汇总查询的语法格式uu用聚合函数、用聚合函数、用聚合函数、用聚合函数、group bygroup by子句、子句、子句、子句、computebycomputeby子句子句子句子句 select 列名表列名表 from 表名表名,n where 条件条件 group by 列名列名 having 逻辑表达式逻辑表达式 order by 列名列名 compute 聚集函数聚集函数 by 列名列名 投影运算选择运算分类汇总连接运算排序明细汇总4第5章 数据查询连接查询和子查询第

4、第1717讲讲第第5章章 数据查询数据查询连接查询连接查询和和子查询子查询学习目标学习目标认知目标:认知目标:uu了解数据库的连接运算了解数据库的连接运算了解数据库的连接运算了解数据库的连接运算uu了解子查询的基本含义了解子查询的基本含义了解子查询的基本含义了解子查询的基本含义能力目标能力目标:uu掌握连接查询的方法掌握连接查询的方法掌握连接查询的方法掌握连接查询的方法(重点、难点重点、难点重点、难点重点、难点)uu理解子查询的方法理解子查询的方法理解子查询的方法理解子查询的方法(难点难点难点难点)5第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)

5、连接查询的含义:连接查询的含义:连接查询的含义:连接查询的含义:uu从从从从多个多个多个多个相关的表中查询数据(用相关的表中查询数据(用相关的表中查询数据(用相关的表中查询数据(用from子句实现)。子句实现)。子句实现)。子句实现)。连接运算:连接运算:连接运算:连接运算:uu把多个表中的行按把多个表中的行按把多个表中的行按把多个表中的行按给定的条件给定的条件给定的条件给定的条件进行连接从而形成新表。进行连接从而形成新表。进行连接从而形成新表。进行连接从而形成新表。连接运算的类型:连接运算的类型:连接运算的类型:连接运算的类型:uu内连接内连接内连接内连接(掌握)掌握)掌握)掌握)uu外连接

6、外连接外连接外连接(左外连接、右外连接、全外连接)左外连接、右外连接、全外连接)左外连接、右外连接、全外连接)左外连接、右外连接、全外连接)(理解理解理解理解)uu自连接自连接自连接自连接(理解理解理解理解)uu无限制连接无限制连接无限制连接无限制连接(了解,略了解,略了解,略了解,略)6第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)1.内连接内连接含义:含义:含义:含义:uu将多个表中的将多个表中的将多个表中的将多个表中的共享列值共享列值共享列值共享列值进行比较,把表中满足进行比较,把表中满足进行比较,把表中满足进行比较,把表中满足连接条连接条

7、连接条连接条件件件件的行组合起来,作为查询结果。的行组合起来,作为查询结果。的行组合起来,作为查询结果。的行组合起来,作为查询结果。例如:请将例如:请将例如:请将例如:请将xsqkxsqk和和和和xs_kcxs_kc表进行连接。表进行连接。表进行连接。表进行连接。内连接内连接查询结果查询结果思考:思考:这两张表为什么这两张表为什么可以进行连接?可以进行连接?连接的条件应该连接的条件应该是什么?是什么?7第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)1.内连接内连接语法格式有两种语法格式有两种:uANSI语法形式:语法形式:select 列名表列名

8、表列名表列名表 from 表表表表1 1 inner join 表表表表2 2 on 连接条件连接条件连接条件连接条件 where 查询条件查询条件查询条件查询条件uSQL Server语法形式:语法形式:select 列名表列名表列名表列名表 from 表表表表1,1,表表表表2 2 where 查询条件查询条件查询条件查询条件 连接条件连接条件连接条件连接条件表示内连接表示内连接(可省略可省略)连接条件连接条件:当两个表中:当两个表中的列名相同时,需加上的列名相同时,需加上表名修饰;否则,可省表名修饰;否则,可省去表名。去表名。连接条件连接条件8第5章 数据查询连接查询和子查询第第1717

9、讲讲一、连接查询一、连接查询(多表查询)多表查询)1.内连接内连接实例实例1:查询不及格学生的学号、姓名、课程号、成:查询不及格学生的学号、姓名、课程号、成绩信息。绩信息。分析:分析:u确定要查询内容的来源。确定要查询内容的来源。u确定连接条件确定连接条件(要查询的表通过什么列名相关联要查询的表通过什么列名相关联)。select 学号,姓名,课程号,成绩from xsqk,xs_kcwhere xsqk.学号=xs_kc.学号 and 成绩60检查有没有多张表的共有字检查有没有多张表的共有字段,需要加表名前缀?段,需要加表名前缀?9第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一

10、、连接查询(多表查询)多表查询)1.内连接内连接课堂练习课堂练习1:查询不及格学生的学号、课程名、授课:查询不及格学生的学号、课程名、授课教师、开课学期的信息。教师、开课学期的信息。select 学号,xs_kc.课程号,授课教师,开课学期,成绩from kc,xs_kcwhere xs_kc.课程号=kc.课程号 and 成绩60select 学号,xs_kc.课程号,授课教师,开课学期,成绩from kc join xs_kc on xs_kc.课程号=kc.课程号where 成绩60请思考:请思考:xsqkxsqk、kckc、xs_kcxs_kc三张表应如何连接?三张表应如何连接?10第

11、5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接含义:含义:uu在在在在内连接内连接内连接内连接中,只把两个表中中,只把两个表中中,只把两个表中中,只把两个表中满足条件满足条件满足条件满足条件的行显示的行显示的行显示的行显示出来。出来。出来。出来。uu而在而在而在而在外连接外连接外连接外连接中,可以将中,可以将中,可以将中,可以将不满足条件不满足条件不满足条件不满足条件的行也显示的行也显示的行也显示的行也显示出来。出来。出来。出来。外连接的类型外连接的类型uu左外连接:保留左边表中不匹配的行。左外连接:保留左边表中不匹配的行。左外连接

12、:保留左边表中不匹配的行。左外连接:保留左边表中不匹配的行。uu右外连接:保留右边表中不匹配的行。右外连接:保留右边表中不匹配的行。右外连接:保留右边表中不匹配的行。右外连接:保留右边表中不匹配的行。uu全外连接:保留两表中不匹配的行。全外连接:保留两表中不匹配的行。全外连接:保留两表中不匹配的行。全外连接:保留两表中不匹配的行。11第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接左外连接的查询结果左外连接的查询结果左外连接的查询结果左外连接的查询结果:右外连接右外连接右外连接右外连接的查询结果的查询结果的查询结果的查询结果:左外连

13、接左外连接查询结果查询结果右外连接右外连接查询结果查询结果12第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接全外连接的查询结果全外连接的查询结果全外连接的查询结果全外连接的查询结果:全外连接全外连接查询结果查询结果13第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接(1)左外连接左外连接1.ANSI语法格式语法格式select 列名表列名表列名表列名表from 表表表表1 1 left outer join 表表表表2 2 on 连接条件连接条件连接条件连接条件wher

14、e 查询条件查询条件查询条件查询条件 2.SQL Server语法格式语法格式select 列名表列名表列名表列名表from 表表表表1 1,表表表表2 2 where 查询条件查询条件查询条件查询条件 连接条件连接条件连接条件连接条件实例:阅读教材例实例:阅读教材例实例:阅读教材例实例:阅读教材例5-375-37。14第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接(2)右外连接右外连接1.ANSI语法格式:语法格式:select 列名表列名表列名表列名表from 表表表表1 1 right outer join 表表表表2 2

15、on 连接条件连接条件连接条件连接条件where 查询条件查询条件查询条件查询条件2.SQL Server语法格式:语法格式:select 列名表列名表列名表列名表from 表表表表1 1,表表表表2 2 where 查询条件查询条件查询条件查询条件 连接条件连接条件连接条件连接条件实例:阅读教材例实例:阅读教材例实例:阅读教材例实例:阅读教材例5-385-38。15第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)2.外连接外连接(3)全外连接全外连接语法格式语法格式(只有一种只有一种):select 列名表列名表列名表列名表from 表表表表1

16、1 full outer join 表表表表2 2 on 连接条件连接条件连接条件连接条件where 查询条件查询条件查询条件查询条件说明:说明:u只有只有ANSI语法格式语法格式uuSQL ServerSQL Server无全外连接语句。无全外连接语句。无全外连接语句。无全外连接语句。实例:阅读教材例实例:阅读教材例5-39。16第5章 数据查询连接查询和子查询第第1717讲讲一、连接查询一、连接查询(多表查询)多表查询)3.自连接自连接含义:含义:uu将将将将同一个表同一个表同一个表同一个表的不同行连接起来。的不同行连接起来。的不同行连接起来。的不同行连接起来。uu自连接可以看作一张表的两

17、个副本之间进行的自连接可以看作一张表的两个副本之间进行的自连接可以看作一张表的两个副本之间进行的自连接可以看作一张表的两个副本之间进行的连接。连接。连接。连接。要求:要求:uu在自连接中,必须在自连接中,必须在自连接中,必须在自连接中,必须为表指定两个别名为表指定两个别名为表指定两个别名为表指定两个别名,使之在,使之在,使之在,使之在逻辑上成为两张表。逻辑上成为两张表。逻辑上成为两张表。逻辑上成为两张表。实例:阅读教材例实例:阅读教材例5-40。17第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询含义:含义:含义:含义:uu是指在一个是指在一个是指在一个是指在一个selec

18、tselect语句中再包含另一个语句中再包含另一个语句中再包含另一个语句中再包含另一个selectselect语句,外语句,外语句,外语句,外层的层的层的层的selectselect语句被称为外部查询,内层的语句被称为外部查询,内层的语句被称为外部查询,内层的语句被称为外部查询,内层的selectselect语句被语句被语句被语句被称为称为称为称为内部查询内部查询内部查询内部查询(或或或或子查询子查询子查询子查询)。使用注意事项:使用注意事项:使用注意事项:使用注意事项:子查询出现的形式:子查询出现的形式:子查询出现的形式:子查询出现的形式:uu多数情况下,子查询出现在外部查询的多数情况下,子

19、查询出现在外部查询的多数情况下,子查询出现在外部查询的多数情况下,子查询出现在外部查询的where子句中,子句中,子句中,子句中,并与比较运算符、列表运算符并与比较运算符、列表运算符并与比较运算符、列表运算符并与比较运算符、列表运算符in in、存在运算符存在运算符存在运算符存在运算符existsexists等等等等一起构成一起构成一起构成一起构成查询条件查询条件查询条件查询条件,完成有关操作。,完成有关操作。,完成有关操作。,完成有关操作。uu在新增列中的子查询。在新增列中的子查询。在新增列中的子查询。在新增列中的子查询。18第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查

20、询语法格式:语法格式:select 列名列名列名列名 from 表名表名where (select from where)运算符运算符 表达式表达式该子查询用来作为外部该子查询用来作为外部查询的查询的查询条件查询条件19第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询-类型类型1.相关子查询相关子查询相关子查询相关子查询uu含义:内部查询的执行含义:内部查询的执行含义:内部查询的执行含义:内部查询的执行依赖依赖依赖依赖于外部查询。于外部查询。于外部查询。于外部查询。uu执行过程:执行过程:执行过程:执行过程:vv将外部查询到的第将外部查询到的第将外部查询到的第将外部查询到的

21、第1 1 1 1条记录中被引用列的列值,传递给子查条记录中被引用列的列值,传递给子查条记录中被引用列的列值,传递给子查条记录中被引用列的列值,传递给子查询,然后执行子查询。询,然后执行子查询。询,然后执行子查询。询,然后执行子查询。vv根据子查询的执行结果判断外部查询条件是否满足要求,若根据子查询的执行结果判断外部查询条件是否满足要求,若根据子查询的执行结果判断外部查询条件是否满足要求,若根据子查询的执行结果判断外部查询条件是否满足要求,若是则显示结果行,直到外部查询处理完外表的每一行。是则显示结果行,直到外部查询处理完外表的每一行。是则显示结果行,直到外部查询处理完外表的每一行。是则显示结果

22、行,直到外部查询处理完外表的每一行。2.嵌套子查询嵌套子查询嵌套子查询嵌套子查询uu含义:内部查询的执行含义:内部查询的执行含义:内部查询的执行含义:内部查询的执行不依赖不依赖不依赖不依赖于外部查询。于外部查询。于外部查询。于外部查询。uu执行过程:执行过程:执行过程:执行过程:vv先执行子查询,子查询得到的结果集不被显示出来,而是传先执行子查询,子查询得到的结果集不被显示出来,而是传先执行子查询,子查询得到的结果集不被显示出来,而是传先执行子查询,子查询得到的结果集不被显示出来,而是传递给外部查询,递给外部查询,递给外部查询,递给外部查询,作为外部查询的条件作为外部查询的条件作为外部查询的条

23、件作为外部查询的条件来使用。来使用。来使用。来使用。vv执行外部查询,如果外部查询条件成立则显示查询结果。执行外部查询,如果外部查询条件成立则显示查询结果。执行外部查询,如果外部查询条件成立则显示查询结果。执行外部查询,如果外部查询条件成立则显示查询结果。20第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询说明:说明:uu不管是相关子查询还是嵌套子查询,不管是相关子查询还是嵌套子查询,不管是相关子查询还是嵌套子查询,不管是相关子查询还是嵌套子查询,其外部其外部其外部其外部查询用于显示查询结果集查询用于显示查询结果集查询用于显示查询结果集查询用于显示查询结果集,而,而,而,而

24、内部查询的结内部查询的结内部查询的结内部查询的结果用来作为外部查询的查询条件果用来作为外部查询的查询条件果用来作为外部查询的查询条件果用来作为外部查询的查询条件。21第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询 1.使用比较运算的子查询使用比较运算的子查询例例(5-41):查询平均分低于:查询平均分低于60的学生学号和姓名。的学生学号和姓名。select 学号学号,姓名姓名 from xsqkwhere (select avg(成绩成绩成绩成绩)from xs_kc xs_kc where xs_kc.xs_kc.学号学号学号学号=xsqk.=xsqk.学号学号学号学号

25、)60)=8023第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询 2.使用使用all、any关键字的子查询关键字的子查询例例5-42:查询有不及格学生的课程的授课教师:查询有不及格学生的课程的授课教师select 课程号课程号课程号课程号,授课教师授课教师授课教师授课教师 from kcwhere 课程课程课程课程号号号号=any(select 课程号课程号课程号课程号 from xs_kc xs_kc where 成绩成绩成绩成绩60606060)该子查询属于嵌套子查询,执行后,返回单列多个值(列表)表示等于列表中的任一个值子查询,其结果作为外查询的条件子查询,其结果作

26、为外查询的条件外查询,用于显示结果外查询,用于显示结果24第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询 2.使用使用all、any关键字的子查询关键字的子查询例例5-43:查询每门课程的最低分。:查询每门课程的最低分。select *from xs_kc awhere 成绩成绩=all(select 成绩成绩 from xs_kc b where b.课程号课程号=a.课程号课程号)25第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询 3.使用列表运算符的子查询使用列表运算符的子查询例例5-44:查询有不及格学生的课程的授课教师:查询有不及格学生的课

27、程的授课教师select 课程号课程号课程号课程号,授课教师授课教师授课教师授课教师from kc kcwhere 课程号课程号课程号课程号 in in(select 课程号课程号课程号课程号 from xs_kc xs_kc where 成绩成绩成绩成绩 60)60)26第5章 数据查询连接查询和子查询第第1717讲讲二、子查询二、子查询 4.使用使用exists运算符的子查询运算符的子查询例例5-45:查询至少有一门课程不及格的学生信息:查询至少有一门课程不及格的学生信息 select distinct 学号学号,姓名姓名 from xsqk awhere exists(select *f

28、rom xs_kc b xs_kc b where b.b.学号学号学号学号 =a.=a.学号学号学号学号 and and 成绩成绩成绩成绩 60)80 )=228第5章 数据查询连接查询和子查询第第1717讲讲本课小结本课小结连接查询连接查询连接查询连接查询(多表查询)多表查询)多表查询)多表查询)uu内连接:只显示内连接:只显示内连接:只显示内连接:只显示条件匹配条件匹配条件匹配条件匹配的连接行。的连接行。的连接行。的连接行。uu外连接:既显示条件匹配的连接行,还可显示条件不外连接:既显示条件匹配的连接行,还可显示条件不外连接:既显示条件匹配的连接行,还可显示条件不外连接:既显示条件匹配的

29、连接行,还可显示条件不匹配的行。匹配的行。匹配的行。匹配的行。vv左外连接:保留左表中不匹配的行。左外连接:保留左表中不匹配的行。左外连接:保留左表中不匹配的行。左外连接:保留左表中不匹配的行。vv右外连接:保留右表中不匹配的行。右外连接:保留右表中不匹配的行。右外连接:保留右表中不匹配的行。右外连接:保留右表中不匹配的行。vv全外连接:保留两边表中不匹配的行。全外连接:保留两边表中不匹配的行。全外连接:保留两边表中不匹配的行。全外连接:保留两边表中不匹配的行。uu自连接:将同一张表中自连接:将同一张表中自连接:将同一张表中自连接:将同一张表中条件匹配条件匹配条件匹配条件匹配的行进行连接。的行进行连接。的行进行连接。的行进行连接。子查询子查询子查询子查询uu相关子查询相关子查询相关子查询相关子查询uu嵌套子查询嵌套子查询嵌套子查询嵌套子查询

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!