1、 数据库实验报告(一)第 1 页 共 35 页数据库原理实验报告(一)院(系) 计算机工程与科学 年级专业 计算机科学与技术 教师 姓名 报告日期: 数据库实验报告(一)第 2 页 共 35 页第 1 周(第四章:SQL 体系结构、组成、建库建表,索引自学)一、实验课: 1. 建立 school 数据库2. 在 school 下建立如下数据库表,根据表中数据选取合适的数据类型及宽度,设置各表的主键及表间外键联系:数据库实验报告(一)第 3 页 共 35 页3. 在学生表中建立索引 idx1:院系号升序,姓名降序在课程表中建立索引 idx2:课名数据库实验报告(一)第 4 页 共 35 页实验小
2、结:这次实验是我学习数据库课程的第一次上机,本来我还以为会很难,但是实际上机下来却让我对学好数据库更加有信心了。可能是因为老师给了我们类似的代码,书上也讲的挺详细的缘故吧。不过一开始,我还是不知道怎么用 SQL sever 用编程的方式建立数据库,我就人工手动的建表和录入数据,设置外键等,不过后面通过仿照老师给的实例代码和教科书,我又试着用代码建立了数据库,效果还不错。总之,通过这次上机,对数据库有了初步的认识和体验,也熟悉了 SQL sever 这个工具。数据库实验报告(一)第 5 页 共 35 页第 2 周(第四章:投影、选择、多表连接和嵌套,排序自学)一、实验课:1. 查询 2011 年
3、进校年龄大于 20 岁的男学生的学号与姓名。2. 检索刘晓明不学的课程的课程号。3. 检索马小红老师所授课程的学年,学期,课程号,上课时间。数据库实验报告(一)第 6 页 共 35 页4. 查询计算机学院男生总评成绩及格、教授开设的课程的课程号、课名、开课教师姓名,按开课教师升序,课程号降序排序。5. 检索学号比张颖同学大,年龄比张颖同学小的同学学号、姓名。数据库实验报告(一)第 7 页 共 35 页6. 检索同时选修了“08305001”和“08305002”的学生学号和姓名。实验小结:这次老师上课的内容是关于 select 用法的初步学习,在这次实验中很喜欢用嵌套语句,因为觉得很好理解,有
4、逻辑清晰,可是做数据库实验报告(一)第 8 页 共 35 页到最后一小题实在觉得嵌套不合适,于是用了将三张表连接的方法,其实发现这种方法思维清晰的话还是很好用的,理解了感觉比嵌套更容易和舒服,总的来说,学会了一些简单的 select 语言,查处结果的时候还蛮有成就感的。数据库实验报告(一)第 9 页 共 35 页第 3 周(第四章:除法、聚合函数、分组、集合操作,外连接自学)一、实验课:1. 验证在 1000 万个以上记录时在索引和不索引时的查询时间区别。1) 建立 30W 条记录declarei intset i=1while i300000begin insert into Table_1
5、values(i)set i=i+1end2) 未建立索引前查询set statistics time onselect idfrom Table_1where id=200000set statistics time off数据库实验报告(一)第 10 页 共 35 页3) 以降序建立 id 索引后查询set statistics time onselect idfrom Table_1where id=200000set statistics time off2. 查询每个学生选课情况(包括没有选修课程的学生) 。数据库实验报告(一)第 11 页 共 35 页3. 检索所有课程都选修的的学
6、生的学号与姓名。注:(为检查出结果,有修改表中数据)数据库实验报告(一)第 12 页 共 35 页4. 检索选修课程包含 1106 同学所学全部课程的学生学号和姓名。5. 查询每门课程中分数最高的学生学号和学生姓名。数据库实验报告(一)第 13 页 共 35 页6. 查询年龄小于本学院平均年龄,所有课程总评成绩都高于所选课程平均总评成绩的学生学号、姓名和平均总评成绩,按年龄排序。实验小结:这次实验比之前的实验难度有所增加,写起来也遇到了不少麻烦,第一题是借助了别班老师的代码写的,让我明白建立索引会使速度增快很多。这次学习了外连接,存在量词的用法以及分组的概念,初上手还是很不适应,还好老师上课有
7、讲一些模版,有好好记录,套上去还是很好用的,存在量词的理解确实有所难度,用两个 not exists 表示双重否定,真的很棒呢。不过第六题实在难以解决想了很多方案,还是不行,后来问过老师,说是题目有点问题,有点无语,不过倒是锻炼了大脑,是自己对 select 的用法有了更深入的理解。数据库实验报告(一)第 14 页 共 35 页第 4 周(第四章:数据更新、视图、嵌入式 SQL 部分自学)一、实验课:1. 建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选课程和成绩。2. 在 E 表中插入记录,把每个学生没学过的课程都插入到 E 表中,使得每个学生都选修每门课。3.
8、求年龄大于所有女同学年龄的男学生姓名和年龄。数据库实验报告(一)第 15 页 共 35 页4. 在 E 表中修改 08305001 课程的平时成绩,若成绩小于等于 75 分时提高 5%,若成绩大于 75 分时提高 4%。数据库实验报告(一)第 16 页 共 35 页5. 删除没有开课的学院。6. 查询优、良、中、及格、不及格学生人数数据库实验报告(一)第 17 页 共 35 页实验小结:这次的实验主要是学习了如何建立视图,从而更有效的找到自己想要寻找的数据,然后就是学习了如何更新和删除数据表中的内容,总的来说比上次简单,遇到的一点问题就是在更新成绩时,要注意先更新分数低于 75 的,再更新分数
9、高于 75 的,一面把一些分数接近 75 的人变成高于 75 的,多做一次提分,造成结果错误,在做数据库查询操作一定要谨慎并全面的思考,以免发生不必要的错误。数据库实验报告(一)第 18 页 共 35 页第五周 poewrbuilder 数据库实验报告(一)第 19 页 共 35 页数据库实验报告(一)第 20 页 共 35 页数据库实验报告(一)第 21 页 共 35 页数据库实验报告(一)第 22 页 共 35 页创建“学生选课”主窗口数据库实验报告(一)第 23 页 共 35 页学生信息窗口数据库实验报告(一)第 24 页 共 35 页数据库实验报告(一)第 25 页 共 35 页激活 Open 窗口课程信息窗口数据库实验报告(一)第 26 页 共 35 页学生成绩单成绩管理主窗口数据库实验报告(一)第 27 页 共 35 页创建系统登录窗口测试运行登陆界面数据库实验报告(一)第 28 页 共 35 页选课(选 C1)数据库实验报告(一)第 29 页 共 35 页选号结果如下图退课(退掉 C2)数据库实验报告(一)第 30 页 共 35 页