第05章:级联查询、子查询讲述.pptx

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第05章:级联查询、子查询讲述

第5章 级联查询、子查询 本章内容 级联查询:内容预览 联接查询的作用和分类 通过联接查询可以将多个表作为一个表进行处理。 当检索数据时,通过联接查询可检索出源于不同表的信息,提高用户操作的灵活性。 联接查询分为:交叉联接、内联接和外联接。 联接查询 笛卡尔积 含义:两个集合中的每一个成员,都与对方集合中的任意一个成员有关联。即第一个表的行数乘以第二个表的行数等于笛卡尔积大小。 交叉联接 SELECT fieldlist FROM table1 CROSS JOIN table2 WHERE 条件表达式 表table1和表table2中的字段列表 不带WHERE条件的交叉联接中的列数=表table1与table2中列数之和。 不带WHERE条件的交叉联接中的行数=表table1与table2中行数之积。 没有WHERE条件的交叉联接所生成的结果集即笛卡尔积。 交叉联接 交叉联接 SELECT * FROM Employee CROSS JOIN Rank 获取Employee表和Rank表的笛卡尔积 交叉联接 内联接 通过内联接获取两张表的全部数据。 内联接 通过内联接获取两张表的部分列数据。 内联接 查询职级名为“工程师”的员工人数。 内联接 SELECT COUNT(e.EmployeeID) 工程师员工数 FROM Employee e JOIN Rank r ON e.RankID=r.RankID WHERE r.RankName=工程师 员工表Employee有职级编号,却没有职级名,所以不能仅通过查询Employee表获取职级名为“工程师”的员工人数。 职级表Rank既有职级号,也有职级名,却没有员工信息,所以也不能仅通过查询Rank表来完成任务。 可以通过Employee.RankID=Rank.RankID, 来建立Employee表和Rank表的联接,从而解决该查询任务。 查询每个职级的员工数和平均月基本工资,要求列出职级名。 内联接 查询每个职级的员工数和平均月基本工资,要求列出职级名,但仅显示月平均基本工资低于30000的分组信息。 内联接 SELECT r.RankName 职级名, COUNT(e.EmployeeID) 员工数, AVG(Salary) 平均月基本工资 FROM Employee e JOIN Rank r ON e.RankID=r.RankID GROUP BY r.RankName HAVING AVG(Salary)30000 自联接定义 如果在一个联接查询中,涉及的两个表均为同一张表,那么这种联接就是自联接。 自联接是一种特殊的内联接,它是指相互联接的两个表在物理上为同一张表,但可以在逻辑上分为两张表。 自联接 自联接应用场景 自联接通常在具有上下层级关系的数据查询中应用。 某公司部门信息表中,DeptID为部门编号,ParentDeptID为上级部门编号,DeptName为部门名。 获取每个部门的名称以及上级部门的名称。 自连接 自连接 自连接 某公司部门数据 查询周杰伦所唱的歌曲名,要求列出歌手名和歌曲名。 统计每位歌手所唱的歌曲数,要求列出歌手名和歌曲数,并按歌曲数量升序排列。 计算每位歌手所唱歌曲的总点歌数,要求列出歌手名和歌曲总点歌数,并按总点歌数升序排列。 列出每位歌手所唱歌曲的总点歌数超过30的统计信息,要求列出歌手名和歌曲总点歌数。 查询热门流行歌曲的歌曲名称。 根据歌曲类型统计歌曲数量,要求列出歌曲类型名,并按歌曲数量升序排列。 计算每一类歌曲的总点歌数,要求列出歌曲类型名,并按总点歌数升序排列。 计算每一类歌曲的总点歌数超过100的统计信息,要求列出歌曲类型名,并按总点歌数升序排列。 实践练习 实践时间: 60分钟 级联查询:内容预览 外联接定义和分类 外联接是相对于内联接的一种查询方式。 外联接除了显示符合联接条件的记录外,还会显示所有左表或右表或左右表中的记录。 显示时根据数据来源于表的不同,将外联接分为:左外联接、右外联接和全联接。 外连接 左外联接(LEFT [OUTER] JOIN)的含义 左外联接的结果集包括LEFT JOIN子句中指定的左表的所有行。如果左表的某行在右表中没有匹配行,则结果集中的右表列均显示为空值。 左外联接 左外链接 右外联接(RIGHT [OUTER] JOIN)的含义 左外联接的反向联接。 右外联接的结果集包括RIGHT JOIN子句中指定的右表的所有行。如果右表的某行在左表中没有匹配行,则结果集中的左表列均显示为空值。 右外连接 SELECT

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档