




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 分组统计与多表关联查询 回顾 编写SQL语句查询一个月前的订单信息 查询作者表中姓名以 李 开头的作者信息 查询前20 的图书信息 预习检查 什么是分组统计 多表联接查询分为哪几种 为什么要使用多表联接查询 提问 本章任务 使用使用T SQL语句对Authors和Books表进汇总统计 对多表进行关联查询 本章目标 掌握聚合函数的使用 掌握GroupBy进行分组统计 掌握多表联接查询 聚合函数 会员表中存储了所有会员的积分 如果想计算出会员的最高分 平均积分 积分大于300的会员个数 怎么办 会员表Customers 聚合函数 SUM AVG MAX MIN 1 SUM 2 AVG 3 MAX和MIN 聚合函数 COUNT 4 COUNT 表达式 返回结果集的非空行数 MAX和MIN除了计算数值列 还可以用于计算字符型以及日期时间类型数据列 其中 表达式 可以是 列名 1 COUNT 返回表中所有数据行的记录数 2 COUNT 列名 返回指定列非空值个数 示例 聚合函数 如果想统计居住在不同城市的人员个数 编写下面代码正确吗 执行出现错误 解决这样的问题需要使用GROUPBY分组统计 什么是分组统计 一家水果店的一天销售情况 要统计各类水果的销售额 示例 按水果的种类分组 然后分别汇总 分组统计 分组统计牢记 SELECT语句中除聚合函数外所有列 应写在GroupBy语句后面 否则将出现错误 语法 SELECT 聚合函数 FROM表 WHERE 条件GROUPBY 其中可以有多个字段 各字段用逗号隔开 它表示按哪些列进行分组 分组统计应用 统计会员表中居住在不同城市的人员个数 提问 分析 应该按照City列进行分组分组后使用Count 聚合函数汇总行数 统计结果 多列分组统计 统计不同城市不同性别的会员个数 提问 分析 统计结果集应包含 城市 性别和人数3列信息 很明显应该按照City和Sex两列进行分组 分组后仍使用Count 聚合函数汇总行数 统计结果 多列分组统计 如果代码写成这样 结果会怎样 所以牢记 SELECT语句中除聚合函数外所有列 应写在GroupBy语句后面 执行错误 Sex 使用HAVING子句对分组结果再次过滤 继续考虑上面的查询 如果 要统计不同城市不同性别的会员个数 并且只显示会员个数大于2个的记录 如何处理呢 需要对分组后的数据进行筛选 筛选条件Count 2 对分组后的数据进行筛选需要使用Having子句 统计结果 使用HAVING子句对分组结果再次过滤 WHERE子句 从数据源中去掉不符合其搜索条件的数据GROUPBY子句 搜集数据行到各个组中 统计函数为各个组计算统计值HAVING子句 去掉不符合其组搜索条件的各组数据行 小节 如下表A 查询各学生的平均成绩 并显示学生成绩出现2次以上的信息 提问 多表关联查询 为什么要用多表关联查询 这是从图书表中查询出的信息 如果时间长了你还能记得作者编号1 4 11 12都代表是哪个作者吗 实际上最好显示作者姓名 而作者姓名是存储在作者表中 如何同时从这两个表中取得数据呢 多表关联查询 内联接 INNERJOIN 外联接 左外联接 LEFTJOIN 右外联接 RIGHTJOIN 完整外联接 FULLJOIN 交叉联接 CROSSJOIN Authors 内连接 Books 内连接查询出的是两个表公共列共有的记录 内连接 语法 SELECTFROM表1INNERJOIN表2ON表1 列名条件运算符 表2 列名 WHERE条件 ORDERBY排序列 having 其中 ON表1 列名条件运算符表2 列名 中 条件运算符常用的是 表1 列名和表2 列名 分别是两个表的公共列 示例 Books与Authors内连接SQL语句 内连接另外一种写法 SQLServer2005还兼容以前版本的内连接语法 即使用WHERE子句进行内连接 多表内连接 语法 SELECTFROM 表1INNERJOIN表2ON表1 列名条件运算符表2 列名 INNERJOIN表3ON表1 列名条件运算符表3 列名 WHERE条件 ORDERBY排序列 示例 左外连接 语法 SELECTFROM左表LEFT OUTER JOIN右表ON左表 列名条件运算符右表 列名 WHERE条件 ORDERBY排序列 示例 使用左外连接查询Books与Authors表中的数据 右表Authors 从 左外连接 左表 Books 主 左外连接是以左表为主表 去关联右表 从表 结果集中包含主表所有数据行 如果主表的某行在从表中没有匹配行时 则从表的选择列为NULL值 左外连接 如果把上面的语句改如下代码 查询结果一样吗 为什么 右外连接 语法 SELECTFROM左表RIGHT OUTER JOIN右表ON左表 列名条件运算符右表 列名 WHERE条件 ORDERBY排序列 示例 使用右外连接查询Books与Authors表中的数据 右表Authors 主 右外连接 左表 Books 从 右外连接是以右表为主表 去关联左表 从表 结果集中包含主表所有数据行 如果主表的某行在从表中没有匹配行时 则从表的选择列为NULL值 完全连接 语法 SELECTFROM左表FULL OUTER JOIN右表ON左表 列名条件运算符右表 列名 WHERE条件 ORDERBY排序列 示例 使用完全连接查询Books与Authors表中的数据 完全连接左表和右表中所有行 当某行数据在另一个表中没有匹配时 则另一个表的选择列值为NULL 案例分析 在查找作者表中哪些作者还没有出过书 并将这些作者信息保存到新表TempAuthors中 分析 先查找内容 然后插入到新表中 可以使用SELECT INTO 语句 关键是能查询出哪些作者还没有出过书 这涉及到2个表 一个是作者表 另一个是图书表 查询出作者表中作者编号在图书表中没有出现过的 以作者表为主表 图书表为从表 使用左外连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新型城镇化包工不包料安置房建设合同
- 2025年度室内设计师劳务合同(含知识产权)范本
- 2025年农业机械租赁及技术服务合同
- 技术赋能混合空间-洞察及研究
- 2025房地产认筹协议正本:房地产抵押贷款服务合同
- 2025版上海二手房买卖及邻里纠纷解决机制协议
- 2025精准医疗新视角:创新药研发靶点发现与验证技术案例研究
- 2025年工业互联网平台数据备份与恢复策略在智能保险理赔行业的应用案例报告
- 锅炉轻量化设计-洞察及研究
- 牵引变电站施工技术与流程
- T-SCSTA001-2025《四川省好住房评价标准》
- 新入辅导员职员工培训
- 保安公司安全生产培训课件
- 普通话声母资料
- 《测量降水量》教学课件
- 生态学基本原理解析课件
- 煤灰清理施工方案
- 《大学生军事理论教程》第三章
- 黄遵宪年谱长编(上下册):国家社科基金后期资助项目
- 均值X-R极差分析控制图(自动测算表)
- 体力劳动工作管理程序
评论
0/150
提交评论