1、数据库应用基础课程设计报告112020年4月19日文档仅供参考数据库应用基础课程设计报告 学号:班级: 姓名: 姓名学号性别第一部分、教务管理系统的E-R图成绩课程名年龄课程号 选修学生课程n m教室号指导 mn n姓名讲授教师 m 教师号性别职称 第二部分、教务管理系统相关的表与视图的结构表的结构T(教师关系表)列名数据类型数据长度是否为空TNOvarchar16TNvarchar16SEXint4AGE int4S(学生关系表)列名数据类型长度允许空SNOvarchar20SNchar20SEXchar20AGEint4SC(选课表)列名数据类型数据长度是否为空CNOVARCHAR16是C
2、NCHAR16否CTINT4否SCOREINT4否SNOVarchar16否TNOINT4否学生部分信息视图SI结构列名数据类型长度允许空SNOVARCHAR20SNCHAR20CNCHAR20SCOREINT4第三部分、表与视图的数据列表表的数据列表T(教师关系表)TNOTNSEXAGE01赵成男3502李强男2803何东男3004李红女2205张力男39S(学生关系表)SNOSNSEXAGES1赵亦女17S2钱尔男18S3孙珊女18S4李思男21S5周武男19S6吴丽男15SC选课表CNOCNCTSCORESNOTNO2信息6080S3052信息6056S2051计算机6090S5011计
3、算机6592S1043物理7590S3025自动化8075S4025自动化5565S6057会计5874S503创立命令:Create view SI as select sno,sn,cn,score from s,sc where s.sno=sc.sno 执行结果:SNOSNCNSCORES1赵亦计算机92S3孙珊信息80S3孙珊物理90S5周武计算机90S6吴丽自动化65 第四部分、自定义函数、存储过程、触发器的源码一、自定义函数(1)计算全体学生课程号为1的平均成绩DECLARE cnum char(15)declare aver float set cnum=1select ave
4、r=(select avg(score)from SC WHERE CNO=CNUMGROUP BY CNO)SELECT aver AS 1课程的平均成绩(2)对于给定的学号S3,查询该值在学生表中是否存在,若存在返回0,不存在返回1。declare num varchar,flag varcharset num=S3IF EXISTS(SELECT SNO FROM S WHERE SNO=num)select flag=1elseselect flag=0二、存储过程 在TEACH数据库中,创立一个名称为QUERYTEACH 的存储过程,该存储过程的功能是从数据表S中根据学号查询某一同学
5、的姓名和系别,查询的结果由参数sn和dept返回.CREATE PROCEDURE QUERYTEACH (sno char(20),sn char(20)OUTPUT,dept char(10) OUTPUT)AS SELECT sn=SN,dept=DEPT FROM SWHERE SNO=sno(3)触发器创立一个触发器,当向S表中插入一条记录时,自动显示S表中的记录。CREATE TRIGGER CHANGEDISPLAY ON SFOR INSERTASSELECT * FROM S第五部分、自定义函数,存储过程,触发器的执行结果自定义函数存储过程触发器PART 6 课程设计的体会与
6、建议 经过一个学期的数据库学习,我觉得这门课程还是比较难学的,期末考试并不是很理想。对于两周的数据库实践感觉还是比较茫然与困惑。实践的第一天,老师只是简单的说了下实践所要参考的重要章节,同学们都感觉比较迷茫,不知道要干什么。后面几天就好多了,大家都按照课本上的要求开始学习,在学习的过程中还是有比较多的问题的,可是我发现老师来机房的时间不够多,以致于同学们堆积了很多问题,因此希望老师以后能多去机房解答同学们的难题。两周的实践说短不短说长不长,可是我却受益匪浅。我弄懂了许多在学习中一直困扰我的问题,而且对计算机的操作对数据库系统的运用也更加熟练了,同时我也深深的感受到数据库的确是一门值得认真学习的学科,学会使用数据库对我们以后的工作有很大的帮助。总的来说,这次的数据库实践过的既有意义又充实。