- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 高级查询 本章目标 掌握聚合函数 Max Min Sum Avg count 掌握分组查询Group by和Having的使用 连接 内联接 外部联接 自联接 聚合函数 在查询时,除了显示记录的详细信息外,经常需要对数据进行汇总和统计,T-SQL提供聚合函数来实现这个功能 聚合函数 AVG 可计算一组值的平均值,是用一组值的总和除以非空值的计数,只能用于数字列。 SUM 返回表达式中所有值的和,SUM只能用于数字列。 COUNT 计算所有行并返回表中所有行的总数,返回数字类型值。 COUNT(列名) 对组中每一行都计算并返回非空值的数量,返回数字类型值。 MAX 返回表达式的最大值,表达式通常是列名,返回与表达式相同的数据类型。 MIN 返回表达式的最小值,表达式通常是列名,返回与表达式相同的数据类型。 聚合函数 聚合函数对一组值执行计算,并返回单个值,除COUNT之外,聚合函数都会忽略空值 聚合函数 聚合函数 聚合函数 聚合函数 【例7-4】统计用户表UserInfo的用户数和用户的最大年龄和最小年龄。 分组统计 在SQLServer中,按一个或多个列或表达式的值将一组选定行组合成一个摘要行集,针对每一组返回一行 语法: 分组统计 分组统计 使用having 【例7-8】统计用户表UserInfo 2004年出生的人数 分析:在上例的基础上,使用Having对结果集进行筛选 分组查询小结 Where用来筛选From子句中指定的操作所产生的行 Group by用来分组Where子句的输出 Having子句用来从分组的结果中筛选行。 Having子句后可以跟统计函数,而Where子句后则不可以。 多表连接查询 提问:用户需要查看图书的有关信息以及出版社信息?所需要的数据分别在两个表中存储,如何同时访问这两个表的数据? 多表关联分类 内联接(INNER JOIN) 外联接 ——左外联接(LEFT JOIN) ——右外联接(RIGHT JOIN) 自联接(Self JOIN) 内联接 一.传统语法 二.SQL联接 内连接-多表连接 内连接-多表连接 外部联接 左外部联接 左向外部联接以左边的表为主,它的结果集包括 LEFT子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表列均为空值 右外连接 右外部联接以右边的表为主,它的结果集包括 RIGHT 子句中指定的右表的所有行,而不 仅仅是联接列所匹配的行。如果右表的某一行在左表中没有匹配行,则在关联的结果集行中,来自左表的所有选择列表列均为空值 多表连接 外连接只能用于两个表,内连接可实现三个以上表的连接 【例7-12】查询住在”广州”的用户销售的图书的书号、书名、销售日期和销售数量以及用户的名字和地址 自联接 自连接把表通过自联接与自身联接。 表自联接其实是把一个表逻辑上看成两个表,然后根据两个逻辑表之间的关系来检索数据,为避免使用相同表名而导致错误,必须为表命名别名,以示区别 总结 对数据进行统计使用SQL内置的聚合函数 Max Min Sum Avg Count 对数据进行分组用GROUP BY,分组条件筛选用Having 查询的数据来自于多个表用关联查询 关联查询—连接 内联接 内联接筛选多表中完全匹配的行 外部联接 左外联接以左表为主筛选数据 右外联接以右表为主筛选数据 自联接 自联接将表自身通过别名关联 * * * * 【例7-1】求所有图书的平均价格 SELECT AVG(Price) as 平均价格 FROM BookInfo 【例7-2】在BookInfo表中,统计2006年出版的图书数量、图书的总价值及按供 应商提供的8折批发优惠价购买的图书总金额 SELECT COUNT(bookid) 图书数量, SUM(price) 图书总价值, SUM(Price*0.8) 购书总金额 FROM BookInfo WHERE YEAR(PublishDate)=2006 SELECT COUNT(DISTINCT(BookID)) FROM SalesDetails 【例7-3】统计销售细表SalesDetails中销售人员销售了多少不同书号的图书。 GROUP BY 分组表达式 【例7-5】在BookInfo中,查询每类图书的总价 SELECT CategoryID 类别,SUM(price) 总价 FROM BookInfo GROUP BY CategoryID 思考:如何查询各出版社出版的图书的数量? 【例7-6】 在SalesDet
您可能关注的文档
- SQL Server 2005数据库应用与开发教程教学课件 作者 978 7 302 16021 2 ch11.ppt
- SQL Server 2005数据库应用与开发教程教学课件 作者 978 7 302 16021 2 ch12.ppt
- SQL Server 2005中文版基础教程教学课件 作者 宋晓峰 SQL Server 2005中文版基础教程课件.ppt
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程测试题(二套).doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程测试题(二套)答案.doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程测试题(一套).doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程测试题(一套)答案.doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程示例的TSQL语句.doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程思考和练习.doc
- SQL Server 2005中文版基础教程习题答案 作者 宋晓峰 SQL Server 2005中文版基础教程思考和练习_答案.doc
文档评论(0)