数据库原理及应用实验(Access、VFP、SQL SERVER) 1.Access部分: 实验一 Access创建数据库(2课时) 实验二 Access数据库高级操作(2课时) 2.VFP部分: 实验三 VFP建立数据库与简单查询(2课时) 实验四 VFP数据库基本操作(2课时) 实验五 VFPSQL基本操作(4课时) 实验六 VFPSQL高级操作(2课时) 实验七 VFP结构化数据库应用编程(2课时) 实验八 VFP可视化面向对象应用编程(4课时) 实验九 VFP数据库应用系统设计(8课时) 3.SQL SERVER数据库部分: 实验十 SQL SERVER数据库基本操作(2课时) 实验十一 SQL SERVER数据库高级操作(2课时) 实验一 Access创建数据库 一、实验目的 1.理解关系数据库的基本概念。 2.掌握Access数据管理系统的基本操作。 3.在Access中建立学生管理数据库SM,建立student数据表,掌握建数据库和数据表的一般过程。 4.对student数据表完成简单的查询操作。 二、 实验内容 1.在硬盘的用户盘上建立一个用户目录(如D:\JYY),用于保存本门课程的所有实验文件。每次实验后,应将文件其备份到软盘,下次上机时再将其复制到硬盘上。所有操作在硬盘上完成。 2.启动ACCESS,先建立数据库SM,再在数据库中建立基本表STUDENT。 3.STUDENT表结构数据如下: 学号 姓名 性别 出生日期 所在系  200117101001 张三 男 1982/10/12 IS  200117101002 李艳 女 1981/12/10 MATH  200117101003 王五 男 1983/11/13 CS  其中:“学号”数据类型为字符型, 长度12位;姓名数据类型为字符型, 长度10位; 性别数据类型为字符型, 长度2位;出生日期数据类型为日期型, 长度8位。 4.在ACCESS建立数据表窗口中建立STUDENT表结构,并将“学号”设置为主码。 5.保存STUDENT表结构,输入三条学生数据。 6.显示STUDENT表学生数据,利用SQL语句完成简单的查询操作。 7.对STUDENT表数据操作后,再建立课程表COURSE和学生选修表SCG,表结构如下:COURSE(课程号,课程名,学分);SCG(学号,课程号,成绩)。 8.创建数据表“成绩”,包含“学号、课程号、成绩”等字段(注意该表中的“学号”数据类型与“学生”表中的“学号”数据类型一致,“课程号”的要求同理),并填写10个左右的记录,每记录的学号和课程号应该是另外两表中实际存在的。 三、 实验要求及检查 1.能利用ACCESS建立表结构并输入实验数据。 2.每个表中录入不少于3个记录。 3.学生表的有一个记录为本人的真实信息。 4.各表中的学号和课程号应该一致。 四、 上交(不要求) 1.与该数据库相关的所有文件。 2.但不能包含非相关文件。 3.将要上交的所有文件压缩打包成一个压缩文件。 4.将压缩文件以邮件的附件形式上交。 5.在邮件主题中包含“实验一”及姓名、学号等内容,严格如“数据库实验一某某某12345678”的格式。 实验二 Access数据库高级操作 一、实验目的 1.对实验一所创建的数据库SM和数据表STUDENT、COURSE、SCG进行操作。 2.掌握如何创建查询。 3.掌握如何创建窗体和报表。 4.掌握如何创建启动窗体。 二、实验内容 1.启动Access,打开实验一所创建的数据库SM。 2.重新复习实验一的操作,显示基本表的结构和数据。 3.用向导创建一个查询,用于显示所有男生,然后再运行查询。 4.创建表关联:将SM数据库中的三个数据表建立关联,并设置完整性约束条件,如果无法设置完整性,那很可能是三表的数据内容没有相互对应。 5.创建查询:根据三个数据表的关联形成一个查询“成绩明细”,包括“姓名、课程名、成绩”等属性。 6.用向导创建窗体:给数据表“学生”创建窗体;给查询“成绩明细”创建窗体。 7.用向导创建报表:给查询“成绩明细”创建报表;给数据表“学生”创建报表,要求每页显示一个学生记录。 8.创建启动窗体:在其上放置命令按钮,用来调用刚才创建的各个窗体和报表,并设置为自启动方式。 9.关闭Access,在文件夹中直接双击SM.mdb数据库文件,观察窗体的自启动情况以及命令按钮的调用情况。 三、实验要求及检查 1.能在ACCESS中用向导或手工建立查询、窗体和报表。 2.能运行查询、窗体和报表。 3.窗体和报表格式符合要求。 四、上交(不要求) 1.将本实验生成的Access数据库文件Sm.mdb作为Email的附件上交。 2.必须在邮件主题中包含如“数据库实验二 姓??名 学??号”等字样。 实验三 VFP建立数据库与简单查询 一、实验目的 1.掌握VFP的启动、运行、关闭。 2.在项目管理器建立数据库和数据表、视图等。 3.用VFP命令在命令窗口中完成建立数据库基本操作。 4.掌握简单的查询语句。 ?二、实验内容 1.新建实验文件夹D:\SM,并将VFP的默认工作目录设置为D:\ SM。 2.创建新的项目,并在项目中新建数据库SM。 3.练习在VFP中建立一个学生数据库(自由表)熟悉建库的基本操作过程及注意事项。 (1)先建库结构:字段名、字段类型。 (2)向数据表增加新记录。 (3)练习简单的查询操作。 4.建立数据库DB1,然后在DB1下建三个基本表student,course,sc,每个表输入5条记录,理解数据库、视图、查询表、基本表的区别,结构如下: student(sno,sname,ssex,sage,sdept),表示学号,姓名,性别,年龄,所在系。 course(cno,cname,cpno,ccredit), 依次表示课程号,课程名,先行课程号,学分。 SC(sno,cno,grade),依次表示学号,课程号,成绩。 ??????? 5.学习VFP中建立数据库的基本操作,并给每个数据表建立索引。 6.练习LIST、DISPLAY、BROWSE的使用。 三、实验要求 1.在VFP中建立自由表、数据库、基本表、视图等。 2.运行并能完成简单的查询。 四、上交(不要求) ??????? 1.将D: \SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 ??????? 2.必须在邮件主题中包含如“数据库实验三 某某某 12345678”字样。 实验四 VFP数据库基本操作 一、实验目的 用VFP提供的命令在命令窗口中完成数据库的基本操作。 理解工作区、关联,掌握多表操作 ?二、实验内容 1.显示结构LIST STRU或DISPSTRU,修改结构MODI STRU 2.追加记录APPEND,插入记录INSERT,显示查询记录LIST,或DISPLAY 3.理解记录指针的用法,练习命令GO,SKIP 4.逻辑删除记录DELETE,物理删除PACK。 5.清空库中所有记录ZAP。 6.练习排序SORT。 7.建立索引,区分IDX索引与结构索引文件(CDX)的不同,INDEX,索引查询FIND,SEEK。 8.理解几个函数的作用:EOF(),BOF(),FOUND()等。 9.练习多库操作,多表间的连接和关联,理解工作区的作用。 10. 练习库文件间的更新操作,UPDATE,REPLACE 11. 练习数据运算命令:COUNT,SUM,CALCULATE,TOTAL ?????? 12.给数据表建立关联,并设置完整性规则。 ?????? 13.创建视图view1,包含学生姓名、课程名称、成绩等字段。 ?????? 14.通过向导创建报表report1,显示student表的情况,并做适当的编辑修改,预览观看效果 三、实验要求 1.在VFP中建立数据库、基本表、视图及报表等。 2.运行并能完成简单的查询。 四、上交(不要求) ??????? 1.将D:\JYY\SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 ??????? 2.必须在邮件主题中包含如“数据库实验四 某某某 12345678”字样。 实验五 VFP SQL基本操作 一、实验目的 1.在VFP的运行SQL基本命令 2.在命令窗口中建立表、运行查询(SELECT语句) ?二、实验内容 对SM数据库的三个表(student、course、scg),表结构如下: student(sno,sname,ssex,sbirthday) course(cno,cname,cpo,ccredit) scg(sno,cno,grade) 用SQL语句完成以下操作: 1.创建关系表stu1(sno,sname,ssex,sbirth,sdept)。 2.对student按姓名建立索引。 3.查询信息系所有年龄不大于21岁的女生。 4.查询1982年出生的男生的姓名。 5.查询信息系、金融系所有姓“王”的同学的姓名和年龄。 6.查询姓“王”的男同学的人数。 7.查询2号课程的最低分。 8.查询总分最高的学生的学号。 9.查询每个同学的平均分。 10.查询每个同学所选修的课程门数。 11.查询“计算机网络”90分以上的同学的姓名。 12.查询每门课程的课程名及选修人数。 13.查询选修了全部课程的学生姓名。 14.查询总学分已超过40学分的学生学号、姓名、总学分。 15.查询至少选修了学生“20021710233”选修的全部课程的学生姓名。 16.查询其他系中比“cs”系任一学生年龄都小的学生名单。 17.查询每一个同学的学号、姓名、选修的课程名及分数。 18.查询信息系学生或年龄小于20岁的学生。 19.查询信息系学生与年龄小于20岁学生的交集。 20.查询信息系学生与年龄小于20岁学生的差集。 21.向student增一新生(“20021710146”,“王飞”,“男”,12/22/1985,“is”) 22.删除“李军”同学的所有信息。 23.为信息系所有男生建一视图vs_ism。 24.利用视图vs_ism查询信息系“王强”同学。25.查询年龄在25-30之间的学生姓名及性别。 26.查询姓“欧阳”的学生 。 27.查询信息系is,数学系ma和计算机系cs的学生。 28.检索蒋炎焱老师所授课程的课程号和课程名。 29.检索年龄大于23岁的男学生的学号和姓名。 30.检索至少选修蒋炎焱老师所授课程中一门课程的女学生姓名。 31. 创建一工作表stu1(sno,sname,ssex,sage,sdept)。 32. 对STUDENT按姓名建立索引。 33. 查询信息系所有年龄不大于21岁的女生。 34. 查询每个同学所选修的课程门数。 35. 查询信息系、金融系所有姓“王”同学的姓名和年龄。 36. 查询姓“王”的男同学的人数。 37. 查询2号课程的最低分。 38. 查询总分最高的学生的学号。 39. 查询每个同学的平均分。 三、实验要求 1.SQL语句在VFP中建立基本表、视图等。 2.SQL语句运行并能完成简单的查询。 四、上交(不要求) ??????? 1.将D:\SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 ??????? 2.必须在邮件主题中包含如“数据库实验五 某某某 12345678”字样。 实验六 VFP SQL高级操作 一、实验目的 1.在VFP的运行SQL命令 2.在命令窗口中建立表、运行查询(SELECT语句) 3.能完成复杂查询。 ?二、实验内容 对SM数据库的三个表(student、course、scg),表结构如下: student(sno,sname,ssex,sbirthday) course(cno,cname,cpo,ccredit) scg(sno,cno,grade) 用SQL语句完成以下操作: 40.检索姓名以wang打头的所有学生的姓名和年龄。 41.在scg中检索成绩为空值的学生学号和课程号。 42.求年龄大于女同学平均年龄的男学生姓名和年龄。 43.求年龄大于所有女同学年龄的男学生姓名和年龄。 44.在基本表student中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表student2(sno,sname,sex)。 45.在基本表scg中删除尚无成绩的选课元组。 46.把wang同学的选课和成绩全部删去。 47.把选修maths课不及格的成绩全改为空值。 48.把低于总平均成绩的女同学成绩提高5%。 49.在基本表scg中修改3号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。 50.将修改成绩的权限授用户“JYY”。 51.检索wang同学不学的课程的课程号。 52.检索全部学生都选修的课程的课程号与课程名。 53.检索选修课程包含蒋炎焱老师所授课程的学生学号。 54.统计有学生选修的课程门数。 55.求选修5号课程的学生的平均年龄。 56.求蒋炎焱老师讲授的每门课程的学生平均成绩。 57.统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 58.检索学号比wang同学大,而年龄比他小的学生姓名。 59.检索至少选修两门课程的学生学号。 60.查询“计算机网络“分数大于90分的同学的姓名。 61.查询每门课程的课程名及选修人数。 62.查询选修的全部课程的学生姓名。 63.查询总学分已超过40学分的学生学号、姓名、总学分。 64.查询至少选修了学生”0201“选修的全部课程的学生姓名。 65.查询其他系中比’CS‘系任一学生年龄都小的学生名单。 66.向student中增一同学(“0289”,“王”,“男”,19,“IS”) 67.删除一“李军”同学的所有信息。 68.为IS系所有男生建一视图S_ISM,查询IS系“王强”同学。 三、实验要求 1.用SQL语句在VFP中建立视图、索引等。 2.用SELECT语句完成复杂查询。 3.练习DML语句和DCL语句,完成数据操纵和控制。 四、上交(不要求) ????? 1.将D:\SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 必须在邮件主题中包含如“数据库实验六 某某某 12345678”字样。 实验七 VFP数据库结构化编程 一、实验目的 ???????1.掌握使用项目管理器建立管理一个项目。 ???????2.掌握数据库表的关联。 ???????3.掌握VFP数据库结构化程序设计。 二、实验内容 学习结构化程序设计方法,熟悉VFP中分支判断、循环结构和过程(子程序)的设计方法。建立两个数据库应用程序。 1.新建实验文件夹D:\SM,并将VFP的默认工作目录设置为D:\SM。 ???????2.创建新的项目,并在项目中新建数据库SM,包括student,course,scg表。 3.在命令窗口中用CREATE COMMAND D:\SM\exp1.prg建立一个数据库应用程序,exp1.prg程序实现在student表中查询“张三”学生数据,如存在则显示,如不存在则显示“没有张三同学!”。 4. 在命令窗口中用CREATE COMMAND D:\SM\exp2.prg建立另一个数据库应用程序,exp2.prg程序实现可查询多个学生的成绩数据。 5.给student,course,scg数据表建立关联,并设置完整性规则。 6. 设计一个应用程序,完成对student表数据的增加,删除,修改,查询功能。 三、实验要求 1.学习掌握建立一个VFP应用项目的过程。 2.项目的各部分能独立运行通过。 3.掌握VFP结构化程序设计。 四、上交(不要求) ???????1.将D:\SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 2.必须在邮件主题中包含如“数据库实验六三 某某某12345678”字样。 实验八 VFP可视化程序设计 一、实验目的 1.理解掌握VFP可视化面向对象程序设计方法。 2.掌握创建表单、报表、菜单。 3.练习数据库应用系统的建立开发。 4.练习项目管理,连编和制作安装程序。 二、实验内容 1. 学习VFP可视化的面向对象的程序设计方法,理解类、对象、控件、属性、方法、事件驱动的意义,掌握VFP中常用的控件对象的属性、方法及事件,掌握属性和方法的作用及如何引用,理解对象事件发生机制。控件对象包括:窗口、标签、文本框、命令按钮、下拉框、列表框等。 ???????2.通过向导创建student1表单,做适当的编辑修改,运行观看效果。 3.人工新建student表单,实现尽可能多的功能。在窗口上布景相应的控件,熟悉控件的属性、方法、事件。要求: (1)student表增加民族、专业、班级等字段; (2)编程实现对表中数据的浏览、增加记录、删除、修改、统计查询等功能; (3)性别、民族、专业、班级等字段的录入能进行有效的完整性控制; (4)窗口布局美观,操作方便。 ???????4.创建视图view1,包含学生姓名、课程名称、成绩等字段。 ???????5.建表单sc1,浏览显示视图view1的内容。 ???????6.通过向导创建报表report1,显示student表的情况,并做适当的编辑修改,预览观看效果。 ???????7.人工设计报表report2,显示student表的情况,要求分页显示每个学生,版面做适当的美化。 ???????8.设计菜单menu1,调用以上的几个表单和报表。 ???????9.创建程序代码文件program1,让其首先调用菜单,并设置为主文件。 ???????10.连编成可执行文件,运行可执行文件,观察是否达到预期目标。 ???????12.将必要的文件做成安装程序。 ???????13.运行安装程序,将应用程序安装到硬盘。 14.运行安装到硬盘的应用程序,观察是否达到预期目标。 三、应用软件要求 1.窗体、报表功能基本能正常运行。 2.菜单可用合理 3.连编成功。 四、上交要求 ???????1.将D:\ SM文件夹及其中的所有文件打包压缩后作为Email的附件上交。 ???????2.必须在邮件主题中包含如“数据库应用软件 某某某 12345678”字样。 实验九 VFP数据库应用系统设计 一、实验目的 选择一个应用题目,深入分析设计一个简单的数据库应用软件。 进行细致地数据库分析设计,充分考虑数据的安全性和完整性。 ???????3.应用软件包括主表单、菜单、工具条、报表及多个操作窗口。 ???????4.连编项目,并制作安装程序。 二、实验内容 针对某一业务管理活动(如工资管理、人事管理等),设计开发一个实用的功能完善的MIS软件。 (一)要求 1.对应用系统所涉及的对象进行系统分析设计。理解数据间的联系及应用要求,画出ER图,为系统建立合理的数据模型。 2.确定系统应具备的基本功能,合理划分系统子模块,确定人机交互方式,设计好菜单。 3.编写规范的系统分析设计报告。 4.编程实现系统各功能,并进行严格的软件测试,使系统能正确运行。 5.美化界面,试运行,编写系统操作说明书。 (二)具体步骤 1.新建实验文件夹D:\GZGL,并将VFP的默认工作目录设置为D:\ GZGL ???????2.用向导使用项目管理器建立一个项目,将相关文件存放到相应文件夹中。 3.细致地数据库分析设计,确定建立几个表,每个表包括哪些字段、表与表如何联系,充分考虑数据的安全性和完整性,在项目中新建数据库。 4.分析数据库用户的权限,建立用户登录窗口。 5.分析创建相关视图。 6.建立主窗口、主菜单、工具条。 ???????7.创建各级窗口,做适当的编辑修改,运行观看效果。 ???????8.创建各级报表并做适当的编辑修改,预览观看效果。 ???????9.创建程序代码文件program1,让其首先调用菜单,并设置为主文件。 ???????10.连编成可执行文件,运行可执行文件,观察是否达到预期目标。 ???????11.将必要的文件做成安装程序。 ???????12.运行安装程序,将应用程序安装到硬盘。 13.运行安装到硬盘的应用程序,观察是否达到预期目标。 三、应用软件要求 1.功能基本能正常运行。 2.数据库设计科学。 3.界面友好。 四、上交要求 ???????1.将D:\ GZGL文件夹及其中的所有文件打包压缩后作为Email的附件上交。 ???????2.必须在邮件主题中包含如“数据库应用软件 某某某 12345678”字样。 实验十 SQL SERVER数据库基本操作 一、实验目的 1.熟悉SQL SERVER的启动、运行、关闭,熟悉主界面。 2.掌握在SQL SERVER中完成数据库基本操作,包括对数据库和数据表的相关操作。充分考虑数据的安全性和完整性。 ???????3.理解SQL SERVER数据库的相关概念。 二、实验内容 1.打开SQL SERVER数据库的企业管理器,学习企业管理器的使用,学习菜单和工具条的功能。 ???????2.在企业管理器中,建立学生管理数据库SM和数据表(student,course,scg),并输入一些记录数据。 3.学习数据库管理的操作界面。 4.在企业管理器中,练习SQL语句的用法。 5.创建多种数据库对象,如视图、规则、等。 三、实验要求 1.掌握企业管理器的基本用法。 2.掌握数据库和数据表的基本操作。 3.掌握在SQL SERVER中使用SQL语句。 实验十一 SQL SERVER数据库高级操作 一、实验目的 1.掌握SQL SERVER的数据库备份和恢复。 2.掌握在SQL SERVER中日志文件的使用。 ???????3.深入理解SQL SERVER数据库的安全性和完整性。 二、实验内容 1.在企业管理器中,建立备份设备。 ???????2.在企业管理器中,学习备份和恢复学生管理数据库SM。 3.在企业管理器中,用SQL语句完成更复杂的查询操作。 4.理解并创建数据库对象,如触发器等。 5.通过ODBC实现对SQL SERVER数据库的访问。 三、实验要求 1.能熟练使用SQL SERVER完成数据库管理工作。 2.在企业管理器中,掌握SQL语句、菜单与界面的使用。