北大青鸟SQLserver课件.ppt

北大青鸟SQLserver课件.ppt

ID:59347079

大小:1022.00 KB

页数:59页

时间:2020-09-20

北大青鸟SQLserver课件.ppt_第1页
北大青鸟SQLserver课件.ppt_第2页
北大青鸟SQLserver课件.ppt_第3页
北大青鸟SQLserver课件.ppt_第4页
北大青鸟SQLserver课件.ppt_第5页
资源描述:

《北大青鸟SQLserver课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第五章数据查询(2)2回顾数据查询将按照一定的条件对表的的记录进行逐行筛选,然后把符合要求的组合成“记录集”返回给查询的用户,记录集的结构类似于表结构可以在查询中使用AS子句或者=重命名列名判断一行中的数据项是否为空,使用ISNULL使用TOP子句可以限制查询返回的行数ORDERBY子句用来对查询的结果进行排序,缺省按照升序排列,也可以按降序(DESC)来排列,还可以按照多列来排序在查询语句中,可以使用常量、表达式和运算符在查询中使用函数,能够像在程序中那样处理查询得到的数据项3目标在查询中使用聚合函数使用GROUPBY进行分组查询进行多表联结查询4问题成绩表中存

2、储了所有学员的成绩,我想知道:学员的总成绩、平均成绩、有成绩的学员总共有多少名怎么办?5聚合函数-1SUMAVGSELECTSUM(ytd_sales)FROMtitlesWHEREtype='business'SELECTSUM(ytd_sales),PriceFROMtitlesWHEREtype='business'×SELECTAVG(SCore)AS平均成绩FromScoreWHEREScore>=606聚合函数-2MAX、MINCOUNTSELECTAVG(SCore)AS平均成绩,MAX(Score)AS最高分,MIN(Score)AS最低分FromS

3、coreWHEREScore>=60SELECTCOUNT(*)AS及格人数FromScoreWHEREScore>=607问题如果不是统计所有人所有课程的总成绩而是想求每一门课的平均绩或者某个人的所有课的总成绩怎么办?8分组汇总9分组查询—GROUPBYSELECTCourseID,AVG(Score)AS课程平均成绩FROMScoreGROUPBYCourseID10分组查询—思考SELECTStudentID,CourseID,AVG(Score)AS课程平均成绩FROMScoreGROUPBYCourseID思考:执行以下的T-SQL:——结果如何?11分组

4、查询—多列分组第一次内部测试成绩第二次内部测试成绩第三次内部测试成绩补考成绩怎样统计每次的内部测试每个学员的平均成绩?12分组查询—多列分组SELECTStudentIDAS学员编号,CourseIDAS内部测试,AVG(Score)AS内部测试平均成绩FROMScoreGROUPBYStudentID,CourseID13分组查询—问题在以上统计内部测试成绩的基础上,如果只想看补考的学员的成绩,怎么办?14分组查询—再看看增加条件:要求该学员的CourseID在分组内出现过一次以上……SELECTStudentIDAS学员编号,CourseIDAS内部测试,AVG

5、(Score)AS内部测试平均成绩FROMScoreGROUPBYStudentID,CourseID15分组查询—HAVINGSELECTStudentIDAS学员编号,CourseIDAS内部测试,AVG(Score)AS内部测试平均成绩FROMScoreGROUPBYStudentID,CourseIDHAVINGCOUNT(CourseID)>116分组查询—对比WHEREGROUPBYHAVINGWHERE子句从数据源中去掉不符合其搜索条件的数据GROUPBY子句搜集数据行到各个组中,统计函数为各个组计算统计值HAVING子句去掉不符合其组搜索条件的各组数

6、据行17分组查询—思考SELECT部门编号,COUNT(*)FROM员工信息表WHERE工资>=2000GROUPBY部门编号HAVINGCOUNT(*)>1思考:分析以下T-SQL的含义18多表联结查询—问题学员内部测试成绩查询的每次显示的都是学员的编号信息,因为该表中只存储了学员的编号;实际上最好显示学员的姓名,而姓名存储在学员信息表;如何同时从这两个表中取得数据?19多表联结查询—分类内联结(INNERJOIN)外联结——左外联结(LEFTJOIN)——右外联结(RIGHTJOIN)——完整外联结(FULLJOIN)交叉联结(CROSSJOIN)20SELEC

7、TS.SName,C.CourseID,C.ScoreFromScoreASCINNERJOINStudentsASSONC.StudentID=S.SCodeScoreStudentsIDCourseIDScore122300100100200297896776300381猜一猜:这样写,返回的查询结果是一样的吗?SELECTS.SName,C.CourseID,C.ScoreFromStudentsASSINNERJOINScoreASCONC.StudentID=S.SCode再猜一猜:以下返回多少行?SELECTS.SName,C.CourseID,C.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。