数据库原理实验报告6含答案

上传人:cn****1 文档编号:431511849 上传时间:2023-11-01 格式:DOC 页数:6 大小:407.50KB
返回 下载 相关 举报
数据库原理实验报告6含答案_第1页
第1页 / 共6页
数据库原理实验报告6含答案_第2页
第2页 / 共6页
数据库原理实验报告6含答案_第3页
第3页 / 共6页
数据库原理实验报告6含答案_第4页
第4页 / 共6页
数据库原理实验报告6含答案_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据库原理实验报告6含答案》由会员分享,可在线阅读,更多相关《数据库原理实验报告6含答案(6页珍藏版)》请在金锄头文库上搜索。

1、南 京 晓 庄 学 院数据库原理与应用课程实验报告实验六 分组统计查询和集合查询设计所在院(系): 数学与信息技术学院班级: 学号:姓名: 1.实验目的(1) 熟练掌握数据查询中分组条件表达、选择组条件的表达方法。(2) 熟练使用统计函数和分组函数。(3) 熟练各类计算和分组计算的查询操作方法。(4) 掌握集合查询的实现方法。2.实验要求(1) 针对 “TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作:a) 查询各个院系学生的总人数,并按人数进行降序排列。b) 查询各系各门课程的平均成绩。c) 查询每个院系各种职称的教师人数,输出院系、职称、人数。d) 查询数

2、学与信息技术学院学生的平均年龄。e) 查询07294003课程的最高分和最低分。f) 查询选修人数超过30人,且课程号以07开头的课程号、课程名称和选修人数。按选修人数降序排列。g) 查询选修了5门以上课程的学生学号。h) 查询年龄大于女同学平均年龄的男同学姓名和年龄。i) 查询SC表中最高分与最低分之差大于20分的课程号。j) 查询平均成绩大于75分的课程的课程号、课程名、平均分。k) 查询期末考试平均分排名前10%的学生,输出学号和平均分。l) 查询教师人数最多的前3个院系,输出院系和教师人数。m) 查询全校老师和学生的姓名,输出姓名和类别两列(类别中显示教师或学生),结果按类别排序。n)

3、 用集合查询实现同时讲授过07294003和07295007两门课的老师的工号。o) 用集合查询实现教师表中职称不是教授的老师的详情。(2) 按要求完成实验报告。3.实验步骤、结果和总结实验步骤/结果将调试成功的T-SQL语句写在下方(标明题号)。a)查询各个院系学生的总人数,并按人数进行降序排列。 select DEPT_ID, COUNT(*) 总人数 from dbo.Student group by DEPT_ID order by DEPT_ID descb)查询各系各门课程的平均成绩。 select DEPT_ID, AVG(EXAM_Grade) as 平均成绩 from dbo

4、.SC,dbo.Student where dbo.SC.S_ID=dbo.Student.S_ID group by DEPT_IDc)查询每个院系各种职称的教师人数,输出院系、职称、人数。 select DEPT_ID,Academic_Title,count(Academic_Title)as 人数 from dbo.Teacher group by DEPT_ID,Academic_Titled)查询数学与信息技术学院学生的平均年龄。 select AVG(year(getdate()-year(Date_of_Birth) from Student,Department where

5、Student.DEPT_ID=Department.DEPT_ID and DEPT_Name=数学与信息技术学院e)查询07294003课程的最高分和最低分。 select MAX(EXAM_Grade) as 最高分,MIN(EXAM_Grade) as 最低分 from SC where C_ID=07294003f)查询选修人数超过30人,且课程号以07开头的课程号、课程名称和选修人数。按选修人数降序排列。 select Course.C_ID,Course.C_Name,count(*) 人数 from SC,Course where SC.C_ID=Course.C_ID and

6、 Course.C_ID like 07% group by Course.C_ID,Course.C_Name having count(*)30 order by count(*) descg)查询选修了5门以上课程的学生学号。 select S_ID from SC groupy S_ID having COUNT(*) 5h)查询年龄大于#学平均年龄的男同学姓名和年龄。 select S_NAME,year(getdate()-year(Date_of_Birth) from dbo.student where Gender=男and year(getdate()-year(Date_

7、of_Birth)=(select avg(year(getdate()-year(Date_of_Birth) from dbo.student where Gender=女)i)查询SC表中最高分与最低分之差大于20分的课程号。 select C_ID form SC group by C_ID having MAX(EXAM_Grade)-MIN(EXAM_Grade) 20j)查询平均成绩大于75分的课程的课程号、课程名、平均分。 select SC.C_ID,C_Name,AVG_Grade from Student,SC,Course where Student.S_ID=SC.S

8、_ID and SC.C_ID=Course.C_ID and AVG_Grade75k)查询期末考试平均分排名前10%的学生,输出学号和平均分。 select top 10percent S_ID,avg(avg_grade) 平均成绩 from SC group by S_ID order by avg(avg_grade) descl)查询教师人数最多的前3个院系,输出院系和教师人数。 select top 3 Department.DEPT_ID, COUNT(*) 人数 from Teacher,Department where Teacher.DEPT_ID=Department.

9、DEPT_ID group by Department.DEPT_ID order by count(*) descM)、select T_Name as 教师,S_Name as 学生 from Teacher,StudentN)、select Teacher.T_ID from Teacher,TCwhere Teacher.T_ID=TC.T_ID and TC.C_ID=07294003 and TC.C_ID=07295007O)、select * from Teacher where Academic_Title教授4实验思考:SELECT命令中,HAVING子句和WHERE子句表

10、示的筛选条件有何不同?WHERE 子句指定连接和筛选条件,用于决定查询返回的行。WHERE 子句中的连接条件与 FROM 子句中的 JOIN 操作功能相同。HAVING 子句指定了确定查询中包含的分组的条件。如果 SQL SELECT 语句中不包含聚集函数,在可以使用包含 HAVING 子句但不带 GROUP BY 子句的 SQL SELECT 语句。提示:不带 GROUP BY 子句的 HAVING 子句作用于 WHERE 子句相同。如果 HAVING 子句中包含非聚集函数,则使用 WHERE 子句的速度更快。使用GROUP BY(分组条件)子句后,语句中的统计函数的运行结果有什么不同?group by 分组 结果是name1 123name2 123name3 123age1 456age2 456age3 456 统计分组3 1233 456组合查询是否能用其他语句代替?有何不同?可以用其他语句代替。同一个查询可以用不同的方式来实现,但每种查询方法的执行效率不同。总体来说,多表连接查询的效率比子查询的效率要高,嵌套子查询的效率比相关子查询的效率要好一些。用UNION(或UNION ALL)进行组合查询时,有哪些基本规则?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号