1、2在表S、C、SC上进行连接查询;3在表S、C、SC上进行嵌套查询;4使用聚合函数的查询;5对数据的分组查询;6对数据的排序查询。具体内容:在表S,C,SC上完成以下查询:1 查询学生的基本信息;2 查询“CS”系学生的基本信息;3 查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;4 找出所有学生中的最大年龄;5 找出“CS”系年龄最大的学生,显示其学号、姓名;6 找出各系年龄最大的学生,显示其学号、姓名;7 统计“CS”系学生的人数;8 统计各系学生的人数,结果按升序排列;9 按系统计各系学生的平均年龄,结果按降序排列;10 查询每门课程的课程名;11 查询无先修课的课程的课程名
2、和学时数;12 统计无先修课的课程的学时总数;13 统计每位学生选修课程的门数、学分及其平均成绩;14 统计选修每门课程的学生人数及各门课程的平均成绩;15 找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;16 查询选修了“1”或“2”号课程的学生学号和姓名;17 查询选修了“1”和“2”号课程的学生学号和姓名;18 查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;19 查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);20 查询没有选修课程的学生的基本信息;21 查询选修了3门以上课程的学生学号;22 查询选修课程成
3、绩至少有一门在80分以上的学生学号;23 查询选修课程成绩均在80分以上的学生学号;24 查询选修课程平均成绩在80分以上的学生学号;25 选做:针对SPJ数据库中的四个表S,P,J,SPJ,完成教材P74-75-习题5中的查询及教材P127-习题5中的查询。四、实验步骤1打开SQL server;2进入查询分析器; 3创建S数据库; 4建立S、C、SC三个学生关系表; 5根据要求,对三个关系表进行操作;6用SQL命令语句完成实验要求,详见源程序;7将调试过程及结果,截图保存。五、调试过程及实验结果查询学生的基本信息查询“CS”系学生的基本信息查询“CS”系学生年龄不在19到21之间的学生的学
4、号、姓名找出所有学生中的最大年龄找出“CS”系年龄最大的学生,显示其学号、姓名找出各系年龄最大的学生,显示其学号、姓名统计“CS”系学生的人数统计各系学生的人数,结果按升序排列按系统计各系学生的平均年龄,结果按降序排列查询每门课程的课程名查询无先修课的课程的课程名和学时数统计无先修课的课程的学时总数统计每位学生选修课程的门数、学分及其平均成绩统计选修每门课程的学生人数及各门课程的平均成绩找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列查询选修了“1”或“2”号课程的学生学号和姓名查询选修了“1”和“2”号课程的学生学号和姓名查询选修了课程名为“数据库系统”且成绩在60分以下
5、的学生的学号、姓名和成绩查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩)查询没有选修课程的学生的基本信息查询选修了3门以上课程的学生学号查询选修课程成绩至少有一门在80分以上的学生学号查询选修课程成绩均在80分以上的学生学号查询选修课程平均成绩在80分以上的学生学号六、总结 通过本次实验,我基本掌握了SQL语句中的各种查询方式,简单查询、连接查询、嵌套查询、使用聚合函数的查询、对数据的分组查询、对数据的排序查询等,但是对比较复杂的查询方式,还不能熟练运用,特别是其WHERE条件,有时,还不能够准确描述,这将在以后的练习中有所加强。七、源程序清单建立S数据库CREATE
6、 DATABASE S;建立关系表StudentCREATE TABLE Student( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20), Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );建立关系表Coursecreate table Course ( Cno char(4) primary key, Cname char(40), Cpno char(4), Ccredit smallint, foreign key (Cpno) references Course(Cno);建立关系表SCCREATE TABLE
7、 SC( Sno char(9), Cno char(4), Grade smallint,primary key (Sno,Cno),foreign key (Sno) references Student(Sno),foreign key (Cno) references Course(Cno)向学生表Student 中插入数据INSERTINTO StudentVALUES (200215121,李勇男,20,CS200215122刘晨女,19,200215123王敏,18,MAVALUES(200215125张立IS向课程表 Course 中插入数据INTO Course2数学,NUL
8、L,2);6数据处理4操作系统,3);7PASCAL 语言,4);5数据结构1数据库3信息系统向学生选课表 SC中插入数据INTO SC,92);,85);,88); ,90);INTO SC(Sno,Cno,Grade),80);SELECT * from student;SELECT * from student where sdept=cs;SELECT sno,sname,sdeptfrom student where sdept= and sage not between 19 and 21;SELECT Sno,Sname,Ssex,Sdept,Sage MAXSageFROM S
9、tudentWHERE Sage=( SELECT MAX(Sage) FROM StudentSELECT Sno,Sname,Ssex,Sdept WHERE Sdept=SELECT Sdept,MAX(Sage)GROUP BY Sdept;SELECT Sdept,COUNT(*) NumStudentWHERE Sdept=GROUP BY SdeptORDER BY NumStudent ASC;SELECT Sdept,AVG(Sage) AVGSageORDER BY AVGSage DESC;SELECT Cno 课程编号,Cname 课程名称FROM Course;SEL
10、ECT Cname,CcreditFROM CourseWHERE Cno!=ALL( SELECT Cno FROM Course WHERE Cpno!=NULLSELECT SUM(Ccredit) 无先修课的课程学分总数SELECT Sno,COUNT(SC.Cno) 选修课程总数,AVG(Grade) 平均成绩,SUM(Ccredit) 总学分FROM Course,SCWHERE Course.Cno=SC.Cno GROUP BY Sno;SELECT Cno,COUNT(Sno) 课程选修人数,AVG(Grade) 平均成绩FROM SCGROUP BY Cno;15 找出平均成绩在85分以上的学生,结果按系分组,并按平
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1