数据库 实验报告.docx
《数据库 实验报告.docx》由会员分享,可在线阅读,更多相关《数据库 实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
![数据库 实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/21/c9d1bbc9-b838-4894-8657-f9f002e40953/c9d1bbc9-b838-4894-8657-f9f002e409531.gif)
数据库实验报告
实验指导书
班级:
姓名:
序言
数据库是数据管理的最新技术,是计算机科学的重要分支。
通过学习重点让大家掌握数据库技术的程序设计思想和方法,学习开发管理系统的技术,并结合PB8.0和SQLSERVER2000上机环境编程测试。
实验上机是对学生的一种综合训练,是与课堂听讲、自习相联系必不可少的一个教学环节。
通常,实习中的问题比平时的习题复杂得多,也更接近实际。
实验着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
实验习题是软件设计的综合训练,培养程序设计基本技能和技巧,也是进行软件工作规范的训练和科学作风的培养。
此外,还有很重要的一点是:
机器是比任何教师更严厉的检查者。
为了达到这个目的,这里安排五个实验单元。
本实验制订了严格的规范,通过制定规范,使学生掌握程序设计的思路与规范。
有时学生花两个小时的机上时间只找出一个一个错误,甚至一无所获的情况是常见的。
其原因在于,很多人只认识到找错误,而没有认识到努力预先避免错误的重要性,也不知道应该如何努力。
实际上,结构不好、思路和概念不清的程序可能是根本无法调试正确的。
严格按照实验步骤规范进行实验不但能有效地避免上述种种问题,更重要的是有利于培养软件工作者不可缺少的科学工作方法和作风,培养软件的设计规范。
实验报告的内容
1.题目
描述每个实验的内容是什么。
2.需求分析、程序数据流与功能图
用E-R图描述数据库的模式设计及每个关系模式的建立;描述数据字典及程序数据流与功能图;每个事件、函数或过程的头和规格说明;列出每个过程或函数所调用和被调用的过程或函数,也可以通过调用关系图表示。
主要算法的框架。
3.调试报告
调试过程中遇到的主要问题是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。
4.源程序清单和结果
源程序要加注释,要有测试数据及结果。
实验1:
学习SQLSERVER2000的数据库操纵语句和PB运行环境(4学时)
本次实验的主要目的在于学会使用SQLSERVER2000环境建库的方法和PB编程环境,通过数据库操纵环境,了解库的建立、表的建立、索引的建立、数据库的查询实现方法。
实验数据如下:
Student
SC
sclass
sno
sname
ssex
sage
Sdept
1
1
李勇
男
20
IS
1
2
刘晨
女
19
IS
1
3
刘朋
男
20
IS
2
1
王敏
女
18
MA
2
2
张锋
男
19
MA
2
3
李敏
男
20
MA
sclass
sno
cno
grade
1
1
1
92
1
1
2
85
1
1
3
88
1
2
2
90
1
2
3
80
2
1
1
75
2
1
2
92
2
2
2
87
2
2
3
89
2
3
1
90
Course
cno
cname
cpno
ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
实验报告1
日期:
一.题目:
1.建立课程表
2.建立学生表
3.建立选课表
4.查询所有学生的详细信息
5.查询1班的学生学及姓名(某些列)
6.查询‘刘晨’的出生年(列表达式)
7.查询姓‘刘’的学生的详细情况
8.查询选修了1号课的学生姓名、性别、成绩
9.查询没有先行课的课程的课号和课名(NULL的使用)
10.查询2班的所有女生的情况(ANDOR)
11.查询学分为2到4之间的课程(Betweenand)
12.查询选修1或2号课的学生的详细情况
13.查询2班至少选修一门其先行课为1号课的学生的详细情况
14.查询2号科成绩最高的学生
15.查询1班2号课成绩最低的学生
16.查询选修2号课且成绩不是最低的同学(ANY)
17.*查询至少选了1班2号同学所选课的所有同学(EXISTS\相关子查询)
18.*查询不选1号课的学生(EXISTS)
19.查询1班平均分在85分以上的同学详细情况及各科成绩(GROUP)
20.查询选了1号课且选了2号课的学生的学号
22.查询选了1号课但不选2号课的学生的学号
23.查询选2号课的学生的名字及相应2号课成绩,按成绩排序(ORDERBY连接)
二.题目
熟悉PB编程环境,完成PB实用教程中(第2版)实验1。
二.源程序清单和结果
4.SELECT*
FROMStudent
5.SELECTsno,sname
FROMStudent
WHERE(sclass='1')
6.SELECTsno,sname,2008-sageASBirthyear
FROMStudent
WHERE(sname='刘晨')
7SELECT*
FROMStudent
WHERE(snameLIKE'刘%')
8SELECTStudent.sname,Student.ssex,SC.grade
FROMSCINNERJOIN
StudentONSC.sno=Student.snoANDSC.sclass=Student.sclass
WHERE(SC.cno='1')
9.SELECTcno,cname
FROMCourse
WHERE(cpnoISNULL)
10.SELECT*
FROMStudent
WHERE(sclass='2')AND(ssex='女')
11SELECTcno,cname,ccredit
FROMCourse
WHERE(ccreditBETWEEN2AND4)
12SELECTDISTINCTStudent.*
FROMStudentINNERJOIN
SCONStudent.sclass=SC.sclassANDStudent.sno=SC.sno
WHERE(SC.cno='1')OR
(SC.cno='2')
13SELECTDISTINCTStudent.*
FROMCourseINNERJOIN
SCONCo=SC.cnoINNERJOIN
StudentONSC.sno=Student.snoANDSC.sclass=Student.sclass
WHERE(Course.cpno='1'AND)
14SELECTDISTINCTStudent.*
FROMStudentINNERJOIN
SCONStudent.sclass=SC.sclassANDStudent.sno=SC.sno
WHERE(SC.gradeIN
(SELECTMAX(grade)
FROMSC
WHEREcno='2'))AND(SC.cno='2')
15SELECT*
FROMStudentINNERJOIN
SCONStudent.sclass=SC.sclassANDStudent.sno=SC.sno
WHERE(SC.gradeIN
(SELECTMIN(grade)
FROMSC
WHEREcno='2'))AND(SC.cno='2')AND(Student.sclass='1')
16SELECTStudent.*
FROMStudentINNERJOIN
SCONStudent.sclass=SC.sclassANDStudent.sno=SC.sno
WHERE(SC.grade>ANY
(SELECTMIN(grade)
FROMSC
WHEREcno='2'))AND(SC.cno='2')
17SELECTDISTINCTStudent.*
FROMStudentINNERJOIN
SCSCXONStudent.sclass=SCX.sclassANDStudent.sno=SCX.sno
WHERE(NOTEXISTS
(SELECT*
FROMSCSCY
WHERESCY.sclass='1'ANDSCY.sno='2'ANDNOTEXISTS
(SELECT*
FROMSCSCZ
WHERESCZ.sclass=SCX.sclassANDSCZ.sno=SCX.snoAND
SCZ.cno=SCY.cno)))
18SELECTStudent.*
FROMStudent
WHERE(NOTEXISTS
(SELECT*
FROMSC
WHEREsno=Student.snoANDcno='1'))
19
20SELECTDISTINCTSC1.sclass,SC1.sno
FROMSCSC1INNERJOIN
SCSC2ONSC1.sclass=SC2.sclassANDSC1.sno=SC2.sno
WHERE(SCo='1')AND(SCo='2')
实验2:
学习PB及PB与SQLSERVER数据库的连接(4学时)
本次实验的主要目的是掌握PB8.0环境及语句的使用,学习PB与SQLSEREVR数据库的连接方法与编程技巧。
实验报告2
日期:
一.题目:
题目见PB实用教程(第2版)中实验2、实验3和实验4,编程序,然后上机调试运行。
二.需求分析设计、程序数据流与功能图
三.调试报告
四.源程序清单和结果
实验3:
学习嵌入SQL及PB常用功能控件的编程使用(4学时)
本次实验的主要目的是掌握嵌入SQL及PB常用功能控件,学会使用嵌入SQL对数据库进行单表精确查询、模糊查询的方法。
实验报告3
日期:
一.题目:
见PB实用教程(第2版)中实验5,实验6,另加如下题目。
编程序,然后上机调试运行,也可自选。
采用嵌入SQL实现如下界面功能的查询。
建立学生表:
S(SNO,SNAME,SSEX,SAGE,SADDR)
95001王明24威海
┇
结果显示列表输入家庭地址:
结果
查询
退出
二.需求分析设计、程序数据流与功能图
三.调试报告
四.源程序清单和结果
实验4:
学会PB数据窗口编程(4学时)
本次实验的主要目的在于学习SQLSERVER数据库备份与恢复技术,掌握PB数据窗口与数据库的连接操作与编程技巧及方法。
实验报告4
日期:
一.题目:
1、练习SQLSERVER数据库备份与恢复技术方法。
2、见PB实用教程(第2版)中实验7、8、9,编程序,然后上机调试运行。
二、需求分析设计、程序数据流与功能图
三.调试报告
四.源程序清单和结果
实验5学会SQL中游标使用、SQL触发器的使用及PB编程菜单生成(4学时)
本次实验的主要目的在于掌握PB中如何用SQL游标进行数据库编程,及使用PB生成报表和菜单,学会SQL触发器的建立。
实验报告5
日期:
一.题目:
见PB实用教程(第2版)中实验12、13,编程序,然后上机调试运行。
用SQL2000上机实现书中第5章中例18和例19触发器的定义,并检测触发器是否执行。
[例18]定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000元,如果低于4000元,自动改为4000元。
”
[例19]定义AFTER行级触发器,当教师表Teacher的工资发生变化后就自动在工资表Sal-log中增加一条相应的记录。
二.需求分析设计、程序数据流与功能图
三.调试报告
四.源程序清单和结果