上海大学数据库原理1实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》
实验报告(一)
院(系) 计算机工程与科学
年级专业计算机科学与技术
教师
姓名
报告日期:
第1周(第四章:SQL体系结构、组成、建库建表,索引自学)
一、实验课:
1.建立school数据库
2.在school下建立如下数据库表,根据表中数据选取合适的数据类
型及宽度,设置各表的主键及表间外键联系:
3.在学生表中建立索引idx1:院系号升序,姓名降序
在课程表中建立索引idx2:课名
实验小结:
这次实验就是我学习数据库课程的第一次上机,本来我还以为会很难,但就是实际上机下来却让我对学好数据库更加有信心了。可能就是因为老师给了我们类似的代码,书上也讲的挺详细的缘故吧。不过一开始,我还就是不知道怎么用SQL sever 用编程的方式建立数据库,我就人工手动的建表与录入数据,设置外键等,不过后面通过仿照老师给的实例代码与教科书,我又试着用代码建立了数据库,效果还不错。总之,通过这次上机,对数据库有了初步的认识与体验,也熟悉了SQL sever这个工具。
第2周(第四章:投影、选择、多表连接与嵌套,排序自学)
一、实验课:
1.查询2011年进校年龄大于20岁的男学生的学号与姓名。
2.检索刘晓明不学的课程的课程号。
3.检索马小红老师所授课程的学年,学期,课程号,上课时间。
4.查询计算机学院男生总评成绩及格、教授开设的课程的课程号、
课名、开课教师姓名,按开课教师升序,课程号降序排序。
5.检索学号比张颖同学大,年龄比张颖同学小的同学学号、姓名。
6.检索同时选修了“”与“”的学生学号与姓名。
实验小结:
这次老师上课的内容就是关于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窗口
课程信息窗口