资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,SQL Server 2005,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,主讲:倪宁,项目五、数据查询的实施,(,简单查询,),数据库应用技术,主讲:倪宁项目五、数据查询的实施(简单查询)数据库应用技术,1,任务,5,:使用聚合函数实现汇总查询,任务,6,:使用,Group by,子句实现分类汇总。,项目五、数据查询的实施,(,简单查询,),任务5:使用聚合函数实现汇总查询项目五、数据查询的实施(简单,复习:,数据库的基本运算,:,投影运算,选择运算,连接运算,19,20,年龄,女,吴玉,1002,男,王成,1001,性别,姓名,学号,投影运算:,在列上进行,选择运算:,在行上进行,复习:数据库的基本运算:1920年龄女吴玉1002男王成10,复习:,Select,语句实现的命令格式:,Select,列名表,From,表名,Where,条件,投影运算,选择运算,关系条件,-,运算符:,=!=!,逻辑条件,-,运算符:,and or not,范围条件,-,运算符:,not betweenand,模式匹配,-,运算符:,not like,列表条件,-,运算符:,not in,空值判断,-,运算符:,is not null,复习:Select语句实现的命令格式:投影运算选择运算关系条,引:,在基本查询中,我们只涉及到了:,对表的,原始数据,进行查询。,对,一张表,的查询。,请思考:,能否通过查询得到我们所需要的信息?,例如:,平均成绩,、,最高成绩,、,最低成绩,、,男女生人数,、,各专业人数,等,能否同时对多张表中的数据进行查询?,例如:同时查询学生的姓名、专业名、课程名称、成绩等,数据汇总查询,连接查询,引:在基本查询中,我们只涉及到了:数据汇总查询连接查询,认知目标:,了解,数据汇总的基本概念,能力目标,:,掌握数据库的汇总查询,(,重点、难点,),学习目标,任务,5,:使用聚合函数实现汇总查询,认知目标:学习目标任务5:使用聚合函数实现汇总查询,数据汇总查询,含义,对查询结果集进行求总和、求平均、求最大值、求最小值的计算称为汇总统计。,使用的方法有三种:,使用聚合函数,(,重点,),Sum(),、,avg(),、,count(),、,max(),、,min(),使用,group by,子句,(,重点,),数据汇总查询含义,数据汇总查询,聚合函数的作用,用来在查询结果集中产生累加和、平均值、记录个数、最大值、最小值等汇总性的数据,并返回,一个单值,。,聚合函数的作用范围,既可以是一个表中的全部记录,也可以是由,where,子句指定的该表的一个子集。,语句格式:,select,聚合函数,(,列名,),from,表名,where,条件,说明:当,select,子句中,有,聚合函数且没有,group by,子句,时,就,不能再指定其它的列名。,数据汇总查询聚合函数的作用,最高分,?,最低分,?,平均分,?,成绩表,人数,?,select,from,成绩表,where,课号,=,1,max,(,成绩,),as,最高分,min,(,成绩,),as,最低分,avg,(,成绩,),as,平均分,count,(,学号,),as,人数,演示,最高分?最低分?平均分?成绩表人数?sele,学生表,全部,15,条记录,where,操作,后的,11,条记录,Select count(*)From,学生表,全体学生人数,Select count(*)From,学生表,Where,性别,=,男,男学生人数,Select count(*)as,男学生,From,学生表,Where,性别,=,男,聚合函数的作用范围,Select,性别,count(*)From,学生表,Where,性别,=,男,错误,性别每人一个,但人数只有一个值,全部记录或由,where,子句指定表的一个子集。,学生表 全部15条记录 where操作Select co,select,学号,性别,from,学生表,where,班号,=,1,and,性别,=,男,select 学号,性别from 学生表,数据汇总查询,SQL Server,提供的常用聚合函数有:,AVG,函数:,age,(,all,|,distinct,列名,),SUM,函数:,sum,(,all,|,distinct,列名,),MAX,函数:,max,(,all,|,distinct,列名,),MIN,函数:,min,(,all,|,distinct,列名,),Count,函数:,count,(,*,|,all,|,distinct,列名,),All,:计算该列值非空的记录的个数,默认为,all,。,Distinct,:计算该列值非空且不同的记录的个数,(,不计算重复行,),。,*,:计算所有记录的个数。,只能用于,数值型数据,数据汇总查询SQL Server提供的常用聚合函数有:,范例演示:,SELECT count(,all,name)from sss,结果,5,SELECT count(,Distinct,name)from sss,结果,4,SELECT count(,*,)from sss,结果,7,计算该列值非空的记录的个数,默认为,all,计算该列值非空且不同的记录的个数,(,不计算重复行,),计算所有记录的个数,数据表,SELECT count(name)from sss,范例演示:SELECT count(all name),数据汇总查询,实例,1,:使用聚合函数进行汇总查询。,select,avg(,成绩)as 平均成绩,max,(成绩)as 最高分,min,(成绩)as 最低分,from 成绩表,select,count,(学号)as 女生人数,from 学生表,where 性别=,女,数据汇总查询实例1:使用聚合函数进行汇总查询。select,数据汇总查询,实例,1,:使用聚合函数进行汇总查询。,select,count,(课号)as 课程总数,from 课程表,select,count,(,distinct,课号)as 课程总数,from 成绩表,统计不重复的记录行,数据汇总查询实例1:使用聚合函数进行汇总查询。统计不重复的记,数据汇总查询,实例,1,:使用聚合函数进行汇总查询。,select,count,(,学号,),as,女生人数,from,学生表,where,性别,=,女,select,性别,count,(,学号,),as,女生人数,from,学生表,where,性别,=,女,注意:当,select,子句中,有,聚合函数且没有,group by,子句,时,就,不能再指定列名。,数据汇总查询实例1:使用聚合函数进行汇总查询。注意:当sel,数据汇总查询,课堂练习,1,:完成实现下列功能的汇总语句。,统计成绩表中,成绩不及格的课程门数。,统计成绩表中,成绩不及格的人数和课程门数。,select,count,(,distinct,课程号,),as,不及格课程门数,from,成绩表,where,成绩,60,select,count,(distinct,学号,),as,不及格人数,count,(distinct,课号,),as,有不及格学生的课程数,from,成绩表,where,成绩,11,功能,:,统计各班级男女生的人数超过,11,人的信息。,数据汇总查询(分类汇总),实例3:分析下列查询语句执行的功能。功能:数据汇总查询(分类,课堂练习,3,:统计平均成绩超过,75,分的学生学号和平均成绩。,select,学号,,avg,(,成绩,),as,平均成绩,from,成绩表,group by,学号,数据汇总查询(分类汇总),成绩表,课堂练习3:统计平均成绩超过75分的学生学号和平均成绩。se,课堂练习,3,:统计平均成绩超过,75,分的学生学号和平均成绩。,select,学号,,avg,(,成绩,),as,平均成绩,from,学生表,group by,学号,having,avg,(,成绩,),75,数据汇总查询(分类汇总),成绩表,课堂练习3:统计平均成绩超过75分的学生学号和平均成绩。se,Select,班号,count,(*),as,男生人数,From,学生表,Where,性别,=,男,Select,班号,count,(*),as,男生人数,From,学生表,Where,性别,=,男,group by,班号,Select,班号,count,(*),as,男生人数,From,学生表,Where,性别,=,男,group,by,班号,having,count,(*),11,where,子句与,having,子句的区别:,where,子句作用于表,(,在分组之前对表中的记录先筛选,),。,having,子句作用于组,(,在分组之后对生成的组进行筛选,),Group by,子句实现分组,当,where,与,having,同时出现时,先,where,后,group by,再,having,Select 班号,count(*)as 男生人数,select,学号,课号,成绩,from,成绩表,where,课号,=,1,select,avg,(,成绩,),as,平均分,from,成绩表,where,课号,=,1,例,:,以下命令执行的结果是:,如果要将这两个查询的结果一起显示,出来,可以用,compute by,子句实现。,select 学号,课号,成绩select avg(成绩,select,学号,课号,成绩,from,成绩表,where,课号,=,1,compute,avg,(,成绩,),例:查询学习,1,号课程的全体学生的成绩,并计算平均成绩,如果需将所有课程的成绩均按此格式显示,如何写命令?,select 学号,课号,成绩例:查询学习1号课程的全体学,6.3.3 数据汇总查询,(明细汇总)(计算汇总),格式:,select,列名表,from,表名,order by,列名,compute,聚合函数,(,列名,),by,列名,说明:,用,computeby,进行汇总的列必须按该列排序,所以,compute by,必须与,order by,(,排序,),连用。,作用,:,对查询结果集的记录进行,明细汇总,。,查询返回的,结果集有两个,:,一个是数据的详细记录。另一个是汇总记录。而,group by,仅显示汇总结果,不显示数据的详细记录。,按给定的列进行明细汇总,6.3.3 数据汇总查询(明细汇总)(计算汇总)格式:用c,select,学号,课号,成绩,from,成绩表,order,by,课号,compute,avg,(,成绩,),by,课号,用,computeby,进行汇总的列必须按该列排序,所以,compute by,必须与,order by,(,排序,),连用。,用,课程,汇总的列必须按,课程,排序。,实质是电子表格中的分类汇总。,select 学号,课号,成绩 用comput,数据库应用技术数据查询的实施(汇总查询)总结课件,实例,4,:分析下列查询语句执行的功能和结果。,select,学号,课程号,成绩,from,成绩表,compute,avg,(,成绩,),显示数据的详细记录,显示一条汇总记录,注意:,compute by,必须与,order by,(,排序,),连用,select 学号,课号,成绩from 成绩表,order by 课号,desc,-课号降序排列,compute,avg,(成绩)by 课号,-,按,课号分组,汇总,数据汇总查询(明细汇总),实例4:分析下列查询语句执行的功能和结果。显示数据的详细记录,课堂练习,4,:写出实现下列功能的,SQL,语句。,统计课程表中的总学分,并
展开阅读全文