第三次SQLServer试验解答
1 --讲解函数: SUM、AVG、COUNT、MAX、MIN 、GETDATE()等 2 --查询BookInfo表中购进价格最高的图书的信息 3 --查询BookInfo表中书的平均购进价格 4 --查询BookInfo表中图书的总数 5 --讲解Group By、Order By、Top的用法 6 --分类显示图书信息 7 --显示1999-12-23 到2005-12-23的罚款 8 --把BookInfo表中的信息按照购进价格升序排序 9 --显示BookInfo表中进购价格最高的10个图书的信息 10 --显示BookInfo表中每种图书的平均价格和总金额 11 --显示BookInfo表中平均价格低于20元的图书种类和平均价格 12 /*1、SQL中的常用函数 13 转换函数、日期函数、字符串函数… 14 2、简单查询(可用 ‘*’,可取别名) 15 3、条件查询(and 、or、not…) 16 4、模糊查询(like 和 ‘%’、‘_’结合使 17 用) 18 1、聚合函数的使用 19 2、使用Group by进行分组统计 20 3、使用 Order by 排序 21 4、使用 TOP 选择限定范围内的行 22 Sum(col_name)返回一列值的总和 23 Avg(col_name)返回一列值得平均值 24 count()检查记录数 25 Max(col_name)返回列表中的最大值 26 Min(col_name)返回列表中的最小值 27 例:求学号是‘001’的学生的总成绩 28 Select Sum(fscore) From scoreWhere fcode = ‘001’ 29 例:求本次VB考试的平均成绩 30 Select Avg(fscore) as ‘VB平均分’ 31 From score Where fsubject=‘VB’ 32 例:求本次C++考试的最高分 33 Select Max(fscore) From scoreWhere fsubject = ‘C++’ 34 例:求有多少学生参加了JAVA考试 35 Select count(fsubject) from score Where fsubject='JAVA' 36 Select Count(*)from score 返回表的记录数 37 例:求001号学生共参加了几门考试 38 Select count(fsubject) from score Where fcode=‘001’ 39 例:求JAVA考试的最低分是多少 40 Select min(fscore) from score Where fsubject='JAVA' 41 group By 42 1. 可以将查询结果表的各行按一列或多列进行分组。 43 2、分组的目的是为了细化聚合函数的作用对象。 44 例:求成绩表中每个学生的平均成绩和总成绩 45 Select fcode, Avg(fscore) AS 平均值, 46 Sum(fscore) AS 总成绩 47 From Score 48 Where fcode<>‘001’Group by fcode 49 Where子句必须位于Group by之前 50 例:返回成绩表中平均成绩大于60的每个学生的学号和平均成绩 51 Select fcode,Avg(fscore) AS 平均值 52 From score 53 Group by fcode 54 Having Avg(fscore) > 60 55 HAVING子句必须位于Group by之后 56 例:求成绩表中求学号为‘001’的学生的平均成绩和总成绩 57 Select fcode, Avg(fscore) AS 平均值, 58 Sum(fscore) AS 总成绩 59 From Score 60 Group by fcode 61 Having fcode=‘001’ 62 WHERE作用于基本表或视图,从中选择满足条件的记录 63 HAVING作用于结果集,从中选择满足条件的记录 64 默认情况下,指定的字段按升序排列。 65 如要更改顺序,我们可以使用“ASC”(升序)和“DESC”(降序)参数来指定排列顺序。 66 例如:对学生C++语言成绩排榜 67 Select * From score 68 Where fsubject = ‘C++’ 69 ORDER BY fscore DESC 70 Distinct可与聚合函数配合使用,以消除重复数据 71 Select distinct fclass as 班级 from Student 72 返回学生表中的前三行的学号、姓名、班级 73 Select Top 3 fcode,fname,fclass 74 From student 75 返回符合条件的所有学生信息的百分之50 76 Select Top 50 Percent * 77 From student 78 1、聚合函数的使用 79 (SUM、AVG、MAX、MIN、COUNT) 80 2、使用Group by进行分组统计 81 (Where 和 Having 的使用规则) 82 3、使用 Order by 排序(ASC、DESC) 83 4、使用 TOP 选择限定范围内的行 84 85 */
1 --//第三次实验 2 3 --查询BookInfo表中购进价格最高的图书的信息 4 Select top 1 * from BookInfo 5 order by BookPrice desc 6 7 --查询BookInfo表中书的平均购进价格 8 Select Avg(BookPrice) from BookInfo 9 --as '平均购进价格' 10 --查询BookInfo表中图书的总数 11 Select count(*) as '图书的总数' 12 --把BookInfo表中的信息按照购进价格升序排序 13 Select * from BookInfo order by BookPrice asc 14 15 --显示BookInfo表中进购价格最高的10个图书的信息 16 Select top 10 * from BookInfo 17 order by BookPrice desc 18 --显示BookInfo表中每种图书的平均价格和总金额 19 Select BookKind,Avg(BookPrice),Sum(BookPrice) 20 from BookInfo 21 group by BookKind 22 23 --显示BookInfo表中平均价格低于20元的图书种类和平均价格 24 Select BookKind,Avg(BookPrice) 25 from BookInfo 26 group by BookKind 27 having Avg(BookPrice)<20