网站大量收购独家精品文档,联系QQ:2885784924

第5章数据库查询-02.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京物资学院信息学院 【例5-29】查询进货的北京客户所进零件的编号和名称。 SELECT 库存零件表.零件编号,零件名称 FROM 库存零件表 JOIN 进货单表 JOIN 客户表 ON 客户表.客户编号=进货单表.客户编号 ON 库存零件表.零件编号=进货单表.零件编号 AND 城市=北京 GO 【例5-30】查询学生选修的课程的情况,输出学号和课程名,如果有课程没有学生选修,也输出。 SELECT 学号,课程名 FROM 课程表 LEFT JOIN 成绩表 ON 课程表.课程号=成绩表.课程号 【例5-31】查询学生选修的课程的情况,输出姓名和课程号,如果有学生没有选修课程,也输出。 SELECT 姓名,课程号 FROM 成绩表 RIGHT JOIN 学生表 ON 学生表.学号=成绩表.学号 【例5-32】查询所有学生选修所有课程的情况。 SELECT 姓名,课程名 FROM 学生表 CROSS JOIN 课程表 GO 【例5-34】统计选修了1号课程的学生的人数。 SELECT count(*),count(分数) FROM 成绩表 WHERE 课程号=1 【例5-35】统计红色零件的总数。 SELECT COUNT(颜色) FROM 库存零件表 WHERE 颜色=红 空值能使聚合函数产生意想不到的结果 对包含空值的字段使用聚合函数时,应注意 SQL Server 的聚合函数(COUNT(*) 除外)将忽略字段中的空值 COUNT(*)将计算所有的行,即使每个字段都含有空值 除了使用聚集函数对结果进行汇总计算外,T-SQL还提供了COMPUTE关键字对结果进行汇总计算。 COMPUTE生成合计作为附加的汇总列,出现在结果集的最后。当与BY一起使用时, COMPUTE字句在结果集内生成控制中断和小计。可在同一查询内指定COMPUTE BY和COMPUTE。其语法格式如下: [COMPUTE {{AVG|COUNT|MAX|MIN|STDEV|STDEVP|VAR|VARP|SUM}(expression)}[,…n] [BY expression [,…n] ] 说明: COMPUTE对指定要执行的聚集函数计算。如果是用COMPUTE子句指定的聚集函数,则不允许它们使用DISTINCT关键字。 【例5-36】查询外语学院的学生信息,并统计人数。 SELECT * FROM 学生表 WHERE 院系名称=‘外语学院’ COMPUTE COUNT(学号) GO 【例5-37】查询选修了5号课程的学生,并按分数从高到低排序输出学生的学号和分数。 SELECT 学号,分数 FROM 成绩表 WHERE 课程号=5 ORDER BY 分数 DESC 【例5-35】查询零件信息,并按重量从轻到重输出。 SELECT * FROM 库存零件表 ORDER BY 重量 使用 GROUP BY 子句 使用 GROUP BY 子句(续) 【例5-39】统计每门课程的总分和平均分,并按平均分从高到低排序输出。 SELECT 课程号,总分=SUM(分数),平均分=AVG(分数) FROM 成绩表 GROUP BY 课程号 ORDER BY AVG(分数) DESC GO 【例5-40】统计每个学院学生的男女生人数。 SELECT 院系名称,性别,COUNT(*) FROM 学生表 GROUP BY 院系名称,性别 GO 统计每个学院学生的男女生人数。 SELECT 院系名称,性别,COUNT(*) FROM 学生表 GROUP BY 性别,院系名称 GO 【例5-41】统计每种颜色零件的总数。 SELECT 颜色,COUNT(颜色) FROM 库存零件表 GROUP BY 颜色 GO USE northwind SELECT productid, orderid,quantity FROM [order details] GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM [order details] GROUP BY productid HAVING SUM(quantity)=1200 GO 在结果集中生成汇总值 使用带有 ROLLUP 运算符的 GROUP BY 子句 使用带有 CUBE 运算符的 GROUP BY 子句 使用 GROUPING 函数 Use northwind Select orderid,productid,sum(quantity) as total_quantity From [order details] Group by orderid,productid Order by orderid,product

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档