《数据库实验—视图》由会员分享,可在线阅读,更多相关《数据库实验—视图(7页珍藏版)》请在金锄头文库上搜索。
1、.-科技学院电信学院科技学院电信学院实实验验报报告告实验工程实验工程视 图课程名称课程名称数据库原理时时间间16 年 5 月 10 日第 12 周第 1.2 节2021080021姓姓名名建敏学学号号07一、实验要求一、实验要求能在 SQL Server 2021 的环境中熟练的进展表的创立和管理。地地点点E404班班级级通信 1301二、实验目的二、实验目的1掌握在 SQL Server Management Studio 中对表进展插入、修改和删除数据的操作。2掌握使用 T-SQL 语句对表进展插入、修改和删除数据的操作。3重点掌握带查询的更新方法。三、实验环境三、实验环境1)硬件设备:P
2、C 机一台2)操作系统:Windows 73)应用工具:SQL Server 2021四、实验容及程序代码四、实验容及程序代码对于“Student数据库的三个根本表:S(Sno,Sname,Sage,Ssex,Sdept),C(Cno,Cname,Credit,Semester),SC(Sno,Cno,Grade)1、请用 SQL 语句按要求创立视图:1查询学生的学号、 、所在系、课程号、课程名、课程学分。createview 学生视图 1(学号,所在系,课程号,课程名,课程学分)asselectStudent.Sno,Sname,Sdept,SC.Cno,Cname,CcreditfromS
3、tudentjoinSConStudent.Sno=SC.SnojoinCourseonCourse.Cno=SC.Cnoselect*from 学生视图 1.可修编.-2查询学生的学号、 、选修的课程名和选课成绩。createview 学生视图 2(学号,选修的课程名,选课成绩)asselectStudent.Sno,Sname,Cname,GradefromStudentjoinSC1onStudent.Sno=SC.SnojoinCourseonCourse.Cno=SC.Cnoselect*from 学生视图 23统计每个学生的选课门数,要求列出学生学号和选课门数。createview
4、 学生视图 3(学生学号,选课门数)asselectStudent.Sno,count(Cno).可修编.-fromStudentjoinSConStudent.Sno=SC.SnogroupbyStudent.Snoselect*from 学生视图 34统计每个学生的修课总学分,要求列出学生学号和总学分。 注明:成绩大于 60 分才可获得学分createview 学生视图 4(学生学号,总学分)asselectStudent.Sno,sum(Ccredit)fromStudentjoinSConStudent.Sno=SC.SnojoinCourseonCourse.Cno=SC.Cnowh
5、ereGrade60groupbyStudent.Snoselect*from 学生视图 45查询计算机系 VB 考试成绩最高的学生的学号、和VB 考试成绩。createview 学生视图 5(学生的学号,VB 考试成绩,)asselectStudent.Sno,grade,Snamefromstudentjoinsconstudent.sno=o=o.可修编.-whereSdept=计算机系andCname=VBandgrade=(selectmax(grade)fromstudentjoinsconstudent.sno=o=owhereSdept=计算机系andCname=VB)Grou
6、pBYStudent.Sno,grade,Snameselect*from 学生视图 52、利用上面建立的视图,完成如下查询:1查询考试成绩大于等于90 分的学生的、课程名和成绩。select,选修的课程名,选课成绩from 学生视图 2where 选课成绩=902查询选课门数超过3 门的学生的学号和选课门数。select 学生学号,选课门数from 学生视图 3where 选课门数3学生视图 3.可修编.-从右图比照可知原始数据库没有超过选修3 门课的学生我的原始数据库有更改可能与其他同学不同3查询计算机系选课门数超过3 的学生的和选课门数。select,选课门数from 学生视图 1s1j
7、oin 学生视图 3s3ons1.学号=s3.学生学号where 所在系=计算机系and 选课门数3比照分析可知满足题目要求的没有4查询修课总学分超过10 分的学生的学号、 、所在系和修课总学分。selectdistinct 学号,所在系,总学分from 学生视图 1s1join 学生视图 4s4ons1.学号=s4.学生学号where 总学分105查询年龄大于等于20 岁的学生中,修课总分数查过10 分的学生的、年龄、所在系和修课总学分。selectdistinct,Sage,所在系,总学分fromStudentsjoin 学生视图 1s1ons.Sno=s1.学号join 学生视图 4s4
8、ons4.学生学号=s1.学号.可修编.-whereSage20 and 总学分10再去执行以下代码验证selectdistinctSname,SagefromStudentSjoinSConS.Sno=SC.Snowheres.Sno=9531101ors.sno=9521102可以知道而另外一个人年龄不符 ,所以该结果是正确的五、实验总结五、实验总结通过本次实验可以通过视图的方式来定义自己需要的数据,而且可以通过对自定义的视图来进展查看相应的数据,可以不需要通过原来的表就可以参看数据,非常方便而且可对指定的数据进展参看,还有加深了前面所学的有关表的定义,多表连接以及对表的相关查询等的熟悉度,知道了它们之间的一样之处和不同之处,能够更好的对数据进展操作了。六、教师评语六、教师评语.可修编.-.教师签字:年月日可修编.