实验6数据库的统计查询实验.pdf
实验六 数据库的统计查询实验 1 实验目的 本实验的目的是使学生熟练掌握 SQL Server 查询分析器的使用方法,加深 SQL 语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算的操作方法。2 实验时数 2 学时 相关知识(1)分组和 SQL 函数查询 SQL 函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等,。SQL 函数可作为列标识符出现在 SELECT 子句的目标列或 HAVING 子句的条件中。在 SQL 查询语句中,如果有 GROUP BY 分组子句,则语句中的函数为分组统计函数;如果没有 GROUP BY 分组子句,则语句中的函数为全部结果集的统计函数。表 1 基本的 SQL 函数 函数 功能 AVG()求与字段相关的数值表达式的平均值 SUM()求与字段相关的数值表达式的和值 MIN()求字段表达式的最小值 MAX()求字段表达式的最大值 COUNT(*|)求记录行数(*),或求不是 NULL 的字段的行数 实验内容 本实验的主要内容是:分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。具体完成以下例题,将它们用 SQL 语句表示,在学生选课中实现其数据查询操作。1、查询学生的总人数 select count(*)学生总人数 from Student 2、查询选修了课程的学生人数 select count(distinct Sno)选修了课程的人数 from SC 3、查询课程和选修了该课程的学生人数 select Cname,count(distinct Sno)选了该课的人数 from SC,Course where SC.Cno=Course.Cno group by Cname 4、查询选修超过 3 门课的学生学号 select distinct Sno from SC where Sno in(select Sno from SC group by Sno having count(Cno)3)5、查询每个系的学生人数 select Sdept,count(Sdept)人数 from Student group by Sdept 6、查询每门课程的平均分、最高分和最低分 select Cno,avg(Grade)平均分,max(Grade)最高分,min(Grade)最低分 from SC group by Cno 7、查询每个学生的总分、平均分、最高分和最低分 select Sno,sum(Grade)总分,avg(Grade)平均分,max(Grade)最高分,min(Grade)最低分 from SC group by Sno 8、查询平均分不及格的学生学号和平均分 select Sno,avg(Grade)平均分 from SC group by Sno having avg(Grade)80 10、查询所以学生的姓名及其选课数 select Sname,count(Cno)选课数 from Student,SC where Student.Sno=SC.Sno group by SC.Sno,Sname 3 实验步骤 将查询需求用 SQL 语言表示:在 SQL Server 查询分析器的输入区中输入 SQL 查询语句:设置查询分析器的结果区为 Standard Execute(标准执行)或 Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。4 收获体会 本次试验还是 SQL 语言查询操作,前面两次实验都是 SQL 语言查询操作实验,这是第三次了,足以看出 SQL 查询语句的重要性,通过实验不仅增加了我们的操作技能也加深 SQL 语言查询语句的理解,通过这次实验我基本上掌握数据查询中的分组、统计、计算的操作方法。