资源描述:
《数据库的集合查询和统计查询实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、(三》数据库的集合查询和统计查询实验1.实验目的本实验的目的是使学生熟练掌握SQLServer查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。2.实验时数2学时[相关知识](1)分组和SQL函数查询SQL函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等,较详细的SQL函数及功能见第三章3.3节(SQL查询用的函数)。SQL函数可作为列标识符出现在SELECT子句的目标列或HAVING子句的条件屮。在SQL查询语句中,如果有GROUPBY分组子句,则语句中的函数
2、为分组统计函数;如果没有GROUPBY分组子句,则语句中的函数为全部结果集的统计函数。表1基本的SQL函数函数功能AVG(v数值表达式〉)求与字段相关的数值表达式的平均值SUM(v数值表达式〉)求与字段相关的数值表达式的和值MIN(v字段表达式〉)求字段表达式的最小值MAX(v字段表达式〉)求字段表达式的最大值COUNT(*
3、v字段〉)求记录行数(9,或求不是NULL的字段的行数(2)集合查询每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合来完成。集合操作主耍包插并操作UNION、交
4、操作INTERSECT和差操作MINUSo标准SQL语言中提供了并操作UNION,没有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法来实现,具体实现方法依查询不同而不同。3.实验内容本实验的主要内容是:a)分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。b)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。c)集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作MINUS的实现方法。具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。在数据库屮建立学
5、生选课表学号姓名性别年龄所在系0001李雍19计算机科学系0004柳伊20计算机科学系0008王巧巧18信息管理系0011张清19计算机科学系0018欧阳荐19信息管理系0021陈辰20计算机科学系►1丘表-Course"中的数据,位置是•Studezrt"中、叮旷上课程号1课程名1先行课1学分11C142C233C3254C412►宥表USCW中的数据,位置是-Student"中、UX4W上学号课程号成绩0001188000419100082810011100182750021165►口回仅1求学生的总人数,u
6、'11查询一X4.Student.X4Ad»inistrator—无标题1拿SELECTCOUNTS)FROMStudent:
7、<_Z—祖——:_I>1(无列名)62求选修了课程的学生人数—X4.Student.X4Ad*inistrator—SELECTCOU1^T(DISTINCTFROMSC;
8、3求课程和选修了该课程的学生人数SELECT课程号?COUN讥学号厂FROMSCGROUPBY课程号<课程号「(无列名)11142224求选修超过3门课的学生学号SELECT学号FROMSCGROUPBY学号HAVINGCOUNT(*)
9、>3;
10、<
11、
12、I学号5查询计算机科学系的学生及年龄不大于19岁的学生SELECT*FROMStudentWHERE所在系二'计算机科学系'UNIONSELECT*FROMStudentWHERE年龄<=19;
13、<lli学号姓名性别年龄所在系1巧存雍伊巧清郵辰李柳王张欧陈19计算机科学系20计算机科学系18信息管理系19计算机科学系19信息管理系20计算机科学系男女女男女男6查询计算机科学系的学生与年龄不大于19岁的学生的交集SELECT*FROMStudentWHERE所在系二'计算机科学系’AND年龄<=19;
14、学号―[姓名性别库龄]
15、所在系10001李雍男19计算机科学系20011张清男19计算机科学系7查询计算机科学系的学生与年龄不大于19岁的学生的差集SELECT*FROMStudentWHERE所在系二‘计算机科学系’AND年龄>09:学号姓名[性别年龄所在系10004柳伊女20计算机科学系20021陈辰男20计算机科学系8查询选修课程'Cl,的学生集合与选修课程'C2,的学生集合的交集SELECT*FROMSCWHERE课程号=,TAND课程号「2'
16、A<——皿一学号课程号成绩9查询选修课程'C1'的学牛集合与选修课程(2,的学牛集合的差集SELECT*FR
17、OMSCWHERE课程号二’1’AND课程号◊'2’:
18、
19、皿二>学号—
20、课程号成绩
21、1000118820004191300111NULL40021165