《sql server数据库应用与实践教程》课件第4章-多表查询.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《sql server数据库应用与实践教程》课件第4章-多表查询.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql server数据库应用与实践教程 sql server数据库应用与实践教程课件第4章-多表查询 sql server 数据库 应用 实践 教程 课件 查询
- 资源描述:
-
1、StuIDStuNameDepName0001Mary计算机系0002Tom数学系0003Mike英语系有有Student表及表及Department表如下:表如下:Department(DepID,DepName)Student(StuID,StuName,StuAge,StuSex,StuCity,StuScore,DepID)第四章第四章表的管理表的管理连接查询和子查询连接查询和子查询连接查询连接查询子查询子查询 在很多情况下,需要从多个表中提取数据,组在很多情况下,需要从多个表中提取数据,组合成一个结果集。如果一个查询需要对多个表进行合成一个结果集。如果一个查询需要对多个表进行操作,则
2、将此查询称为连接查询。操作,则将此查询称为连接查询。连接查询包括内连接、外连接和交叉连接。连接查询包括内连接、外连接和交叉连接。(INNER,OUTER,CROSS)SELECT 列名列名,nFROM 表表1 CROSS|INNER|LEFT|RIGHTOUTER JOIN 表表2 ON 表表1.连接字段连接字段=表表2.连接字段连接字段WHERE search_condition 内连接常使用等号连接每个表共有列的值来匹内连接常使用等号连接每个表共有列的值来匹配两个表中的行。只有每个表中都存在相匹配列配两个表中的行。只有每个表中都存在相匹配列值的记录才出现在结果集中。在内连接中,所有值的记录
3、才出现在结果集中。在内连接中,所有表是表是平等平等的,没有前后之分。的,没有前后之分。sales114323151553711421003buyersAdam BarrSean ChaiEva CoretsErin OMelia1234查询结果查询结果Adam BarrAdam BarrErin OMeliaEva Corets11431553711Erin OMelia41003SELECT buyer_name,sales.buyer_id,qty FROM buyers INNER JOIN sales ON buyers.buyer_id=sales.buyer_id语法:语法:SEL
4、ECT 列名列名,nFROM 表表1 INNER JOIN 表表2 ON 表表1.连接字段连接字段=表表2.连接字段连接字段WHERE search_condition示例:有示例:有Student表及表及Department表如下表如下Department(DepID,DepName)Student(StuID,StuName,StuAge,StuSex,StuCity,StuScore,DepID)要显示计算机系学生的要显示计算机系学生的StuID,StuName,DepID,DepName字段。字段。解决方案:解决方案:SELECT StuID,StuName,Department.De
5、pID,DepNameFROM Student JOIN DepartmentON Student.DepID=Department.DepIDWHERE DepName=计算机系计算机系示例:有关系模式如下示例:有关系模式如下Student(StuID,StuName,StuAge,depID)Course(CourseID,CourseName)SC(StuID,CourseID,Grade)显示成绩显示成绩90分以上的学生姓名,课程分以上的学生姓名,课程名及成绩。名及成绩。解决方案:解决方案:SELECT StuName,CourseName,GradeFROM Student JOIN
6、 SC ON Student.StuID=SC.StuIDJOIN Course ON Course.CourseID=SC.CourseIDWHERE Grade=90语法:语法:SELECT 列名列表列名列表 FROM A JOIN B ON 连接条件连接条件1JOIN C ON 连接条件连接条件2WHERE search_condition示例:有关系模式如下示例:有关系模式如下Department(DepID,DepName)Student(StuID,StuName,StuAge,DepID)Course(CourseID,CourseName)SC(StuID,CourseID,S
7、core)解决方案:解决方案:SELECT SC.StuID,StuName,DepName,CourseName,GradeFROM Student JOIN SC ON Student.StuID=SC.StuIDJOIN Course ON Course.CourseID=SC.CourseIDJOIN Department ON Department.DepID=Student.DepID查询学生的学号、姓名、所在系的名称、课程名及该课程的考试成绩。查询学生的学号、姓名、所在系的名称、课程名及该课程的考试成绩。与内连接相对,参与外连接的表有主次之分。以主表的每与内连接相对,参与外连接的
8、表有主次之分。以主表的每一行数据去匹配从表中的数据列,符合连接条件的数据将直一行数据去匹配从表中的数据列,符合连接条件的数据将直接返回到结果集中,对那些不符合连接条件的列,将被填上接返回到结果集中,对那些不符合连接条件的列,将被填上NULL值后再返回到结果集中。值后再返回到结果集中。外连接可以分为左向外连接、右向外连接和完整外部连接外连接可以分为左向外连接、右向外连接和完整外部连接3种情况。种情况。(LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL JOIN)。语法:语法:SELECT 列名列名,nFROM 表表1 LEFT|RIGHTOUTER JOIN 表表2 O
9、N 表表1.连接字段连接字段=表表2.连接字段连接字段WHERE search_condition 左向外连接以连接(左向外连接以连接(JOIN)子句左侧的表为主表,主表)子句左侧的表为主表,主表中所有记录都将出现在结果集中。如果主表中的记录在右表中所有记录都将出现在结果集中。如果主表中的记录在右表中没有匹配的数据,则结果集中右表的列值为中没有匹配的数据,则结果集中右表的列值为NULL。sales114323151553711421003buyersAdam BarrJane LeeEva CoretsErin OMelia1234查询结果查询结果Adam BarrAdam BarrErin
10、OMeliaEva Corets11431553711Erin OMelia41003Jane LeeNULLNULLSELECT buyer_name,sales.buyer_id,qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id=sales.buyer_id右向外连接以连接(右向外连接以连接(JOIN)子句右侧的表为主表,主)子句右侧的表为主表,主表中所有记录都将出现在结果集中。如果主表中的记录表中所有记录都将出现在结果集中。如果主表中的记录在左表中没有匹配的数据,则结果集中左表的列值为在左表中没有匹配的数据,则结果集中左表的
11、列值为NULL。示例:示例:SELECT DepName,StuID,StuNameFROM Student RIGHT OUTER JOIN DepartmentON Student.DepID=Department.DepID解决方案:以系表为主表匹配学生表,当有学生属于相应的解决方案:以系表为主表匹配学生表,当有学生属于相应的系时,则显示该系的系名,学生学号及学生姓名,如果某个系时,则显示该系的系名,学生学号及学生姓名,如果某个系没有学生,则显示一条包含系名,而学生学号,学生姓名系没有学生,则显示一条包含系名,而学生学号,学生姓名均为均为NULL的信息。的信息。完整外部连接包括连接表中的
展开阅读全文