第四章SQL Server 2000数据查询.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章SQL Server 2000数据查询

例4-30 显示所有产品的ProductID、ProductName、Price以及被顾客定购的OrderID、Quantity。 SELECT P.ProductID,ProductName,Price,OrderID,Quantity FROM Products P LEFT OUTER JOIN OrderDetails O ON P.ProductID=O.ProductID 2)右外连接(RIGHT OUTER JOIN) 右外连接即在连接两表时,不管左表中是否有匹配数据,结果将保留右表中的所有行。 例4-32 修改例4-30使用右外连接。 SELECT OrderID,Quantity,P.ProductID,ProductName,Price FROM OrderDetails O RIGHT OUTER JOIN Products P ON O.ProductID=P.ProductID 3.交叉连接 两个表之间的交叉连接,是用左表中的每一行与右表中的每一行进行连接。因此,结果集中的行数是左表的行数乘以右表的行数,该乘积也称为“笛卡儿乘积”。交叉连接使用关键字CROSS JOIN。 例4-33 交叉连接。 SELECT CustomerID,CompanyName,ConnectName,SaleID,SaleName FROM Customers CROSS JOIN Salers 4.3.2 分组和汇总 1.使用聚合函数 聚合函数可以返回一列、几列或全部列的汇总数据,用于计数或寻找某列的平均值。这类函数仅作用于数值型列,并且在列上使用聚合函数时,不考虑NULL值。 例4-34 求Products表中,所有产品的平均价格、最高价、最低价以及总库存。 SELECT AVG(Price) AS ‘平均价格’ FROM Products SELECT MAX(Price) AS ‘最高价格’ FROM Products SELECT MIN(Price) AS ‘最低价格’ FROM Products SELECT SUM(Stocks) AS ‘总库存’ FROM Products 例4-35 统计Products表中,库存量200的产品数量。 SELECT COUNT(ProductID) FROM Products WHERE Stocks200 例4-36 统计Products表中的产品种数。 SELECT COUNT(*) FROM Products 2.使用分组汇总子句 当需要显示分组的汇总数据时,就应使用GROUP BY子句。该子句的功能是根据指定的列将表中数据分成多个组后进行汇总。其语法格式为: SELECT column_name1[,…n] FROM table_name WHERE search_condition GROUP BY [ ALL ]colum_name1[,…n] [ HAVING search_condition ] 例4-37 将Products表中的数据按CategoryID进行分组,然后分别统计每一组产品的平均价格及总库存。 SELECT CategoryID,AVG(Price) AS ‘平均价格’, SUM(Stocks) AS 总库存 FROM Products GROUP BY CategoryID 注意: 使用GROUP BY子句为每一个组产生一个汇总结果,每个组只返回一行,不返回详细信息。 SELECT子句中指定的列必须是GROUP BY子句中指定的列,或者是和聚合函数一起使用。 如果包含WHERE子句,则只对满足WHERE条件的行进行分组汇总。 如果GROUP BY子句使用关键字ALL,则WHERE子句将不起作用。 HAVING子句可进一步排除不满足条件的组 例4-38 在上例基础上只显示平均价格低于10元的分组汇总信息。 SELECT CategoryID,AVG(Price) AS ‘平均价格’, SUM(Stocks) AS 总库存 FROM Products GROUP BY CategoryID HAVING AVG(Price)10 注意:当同时存在GROUP BY子句、HAVING子句和WHERE子句时,其执行顺序为:先WHERE子句,后GROUP BY子句,再HAVING子句。即先用WHERE子句过滤不符合条件的数据记录,接着用GROUP BY子句对余下的数据记录按指定列分组、汇总,最后再用HAVING子句排除不符合条件的组。 例4-39

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档