收藏 分销(赏)

上海大学数据库原理(1)实验报告.doc

上传人:丰**** 文档编号:3077035 上传时间:2024-06-15 格式:DOC 页数:36 大小:1.48MB
下载 相关 举报
上海大学数据库原理(1)实验报告.doc_第1页
第1页 / 共36页
上海大学数据库原理(1)实验报告.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述
《数据库原理》 实验报告(一) 院(系) 计算机工程与科学 年级专业 计算机科学与技术 教师 姓名 报告日期: 第1周(第四章:SQL体系结构、组成、建库建表,索引自学) 一、实验课: 1. 建立school数据库 2. 在school下建立如下数据库表,根据表中数据选取合适的数据类型及宽度,设置各表的主键及表间外键联系: 3. 在学生表中建立索引idx1:院系号升序,姓名降序 在课程表中建立索引idx2:课名 实验小结: 这次实验是我学习数据库课程的第一次上机,本来我还以为会很难,但是实际上机下来却让我对学好数据库更加有信心了。可能是因为老师给了我们类似的代码,书上也讲的挺详细的缘故吧。不过一开始,我还是不知道怎么用SQL sever 用编程的方式建立数据库,我就人工手动的建表和录入数据,设置外键等,不过后面通过仿照老师给的实例代码和教科书,我又试着用代码建立了数据库,效果还不错。总之,通过这次上机,对数据库有了初步的认识和体验,也熟悉了SQL sever这个工具。 第2周(第四章:投影、选择、多表连接和嵌套,排序自学) 一、实验课: 1. 查询2011年进校年龄大于20岁的男学生的学号与姓名。 2. 检索刘晓明不学的课程的课程号。 3. 检索马小红老师所授课程的学年,学期,课程号,上课时间。 4. 查询计算机学院男生总评成绩及格、教授开设的课程的课程号、课名、开课教师姓名,按开课教师升序,课程号降序排序。 5. 检索学号比张颖同学大,年龄比张颖同学小的同学学号、姓名。 6. 检索同时选修了“08305001”和“08305002”的学生学号和姓名。 实验小结: 这次老师上课的内容是关于select用法的初步学习,在这次实验中很喜欢用嵌套语句,因为觉得很好理解,有逻辑清晰,可是做到最后一小题实在觉得嵌套不合适,于是用了将三张表连接的方法,其实发现这种方法思维清晰的话还是很好用的,理解了感觉比嵌套更容易和舒服,总的来说,学会了一些简单的select语言,查处结果的时候还蛮有成就感的。 第3周(第四章:除法、聚合函数、分组、集合操作,外连接自学) 一、实验课: 1. 验证在1000万个以上记录时在索引和不索引时的查询时间区别。 1) 建立30W条记录 declare @i int set @i=1 while @i<300000 begin insert into Table_1 values(@i) set @i=@i+1 end 2) 未建立索引前查询 set statistics time on select id from Table_1 where id=200000 set statistics time off 3) 以降序建立id索引后查询 set statistics time on select id from Table_1 where id=200000 set statistics time off 2. 查询每个学生选课情况(包括没有选修课程的学生)。 3. 检索所有课程都选修的的学生的学号与姓名。 注:(为检查出结果,有修改表中数据) 4. 检索选修课程包含1106同学所学全部课程的学生学号和姓名。 5. 查询每门课程中分数最高的学生学号和学生姓名。 6. 查询年龄小于本学院平均年龄,所有课程总评成绩都高于所选课程平均总评成绩的学生学号、姓名和平均总评成绩,按年龄排序。 实验小结: 这次实验比之前的实验难度有所增加,写起来也遇到了不少麻烦,第一题是借助了别班老师的代码写的,让我明白建立索引会使速度增快很多。这次学习了外连接,存在量词的用法以及分组的概念,初上手还是很不适应,还好老师上课有讲一些模版,有好好记录,套上去还是很好用的,存在量词的理解确实有所难度,用两个not exists表示双重否定,真的很棒呢。不过第六题实在难以解决想了很多方案,还是不行,后来问过老师,说是题目有点问题,有点无语,不过倒是锻炼了大脑,是自己对select的用法有了更深入的理解。 第4周(第四章:数据更新、视图、嵌入式SQL部分自学) 一、实验课: 1. 建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选课程和成绩。 2. 在E表中插入记录,把每个学生没学过的课程都插入到E表中,使得每个学生都选修每门课。 3. 求年龄大于所有女同学年龄的男学生姓名和年龄。 4. 在E表中修改08305001课程的平时成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%。 5. 删除没有开课的学院。 6. 查询优、良、中、及格、不及格学生人数 实验小结: 这次的实验主要是学习了如何建立视图,从而更有效的找到自己想要寻找的数据,然后就是学习了如何更新和删除数据表中的内容,总的来说比上次简单,遇到的一点问题就是在更新成绩时,要注意先更新分数低于75的,再更新分数高于75的,一面把一些分数接近75的人变成高于75的,多做一次提分,造成结果错误,在做数据库查询操作一定要谨慎并全面的思考,以免发生不必要的错误。 第五周 poewrbuilder 创建“学生选课”主窗口 学生信息窗口 激活Open窗口 课程信息窗口 学生成绩单 成绩管理主窗口 创建系统登录窗口 测试运行 登陆界面 选课(选C1) 选号结果如下图 退课(退掉C2) 退掉C1 建立下拉菜单 新增记录 实验小结: 这次实验算是最麻烦的耗时最长的实验了,当然老师也给我们了很宽泛的时间,做的时候书上虽然有很详细的介绍并且有绝大部分代码,当然也有一些打印错误比如窗口名和后来的代码中有点差异,但是除了那些明显错误之后还是比较直接机械式的做了之后,结果并没有预期所示,第一个问题就是报错未连接数据库,检查了数据源并没有什么问题,于是开始debug,然后发现居然忘记修改书上的代码,哎,敲代码没有太走心于是出现这种错误,书上的connectstring里的id和密码根本和我自己设置的不相符合,解决了这个以后发现还是有问题存在,就是点击成绩分布后没有图片显示,后来发现其实在open这个窗口时应该写一段代码可是书上没写清楚,so...又折腾了一下,不过也算顺利解决了。其实做的途中还有有一些问题,比如少敲一行代码,或者少一个符号,就会出现很多严重的错误,然后要一行一行对着找错误,所以后面在做的时候就比较细心了,错误的地方也自然就少了。 总而言之,做完这个对如何做一个选课系统有了一定程度的了解,对sql语言的操作也有了一定的了解,感觉学到了不少,虽然大部分是照葫芦画瓢做出来的,但是还是很有收获的,相信对下学期数据库的学习会有一定帮助。 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服