实验三表的基本操作14071.pdf
-1-实验三 表的基本操作 一、实验目的 1 掌握表建立的方法以及修改表结构的方法。2 掌握表中数据输入的方法。3 掌握记录指针的移动方法。4 掌握表的基本操作:追加、插入、修改、显示、删除和恢复记录。5 掌握表中的数据访问控制方式。6 掌握表的排序和索引及使用。7 掌握多个工作区和多表的操作方法。二、实验内容和步骤 1.创建自由表。(1)创建学生情况表(xsqk.dbf)表结构如下:字段名 类型 宽度 小数位 索引 null 学号 C 8 姓名 C 8 性别 C 2 专业 C 12 出生日期 D 8 入学分数 N 3 0 团员 L 1 备注 M 4 照片 G 4 在 D 盘创建自己学号后两位和姓名的文件夹,选择“工具/选项/文件位置”把该文件夹设为VFP 的默认工作目录。选择“文件/新建/表/新建文件”,在“创建”对话框中的输入表名文本框输入“xsqk”,单击“保存”按钮。进入图1 所示的表设计器,依次设置表的所有字段名字、类型、宽度和小数位数。最后单击“确定”按钮。系统提示现在录入记录吗,单击“是”,录入下面两条记录。录入两条记录完毕,选择“显示/浏览”命令查看录入的两条记录。选择“显示/追加方式”命令,继续输入以下三条记录。-2-选择“显示/表设计器”命令,或在命令窗口输入“MODIFY STRUCTURE”,打开表设计器,修改表结构,在性别后加一字段籍贯(c,20)。(2)创建课程表(kc.dbf)表结构如下:字段名 类型 宽度 小数位 索引 null 课程号 C 4 课程名 C 12 学分 N 1 0 先修课 C 10 表结构建立完毕,输入以下记录:(3)创建成绩表(cj.dbf)表结构如下:字段名 类型 宽度 小数位 索引 null 学号 C 8 课程号 C 4 学期 C 1 成绩 N 3 0 在表中输入以下记录:图 1 表设计器 -3-2.打开表并查看表中记录。(1)显示学生情况表(xsqk.dbf)中的记录。菜单操作:选择“文件/打开”命令,在打开对话框中把文件类型设为“表(*.dbf)”,如图2 所示。选定“xsqk.dbf”,单击“确定”按钮,即打开xsqk 表,观察主窗口中状态栏的变化。选择“显示/浏览”命令,即可浏览查看xsqk 表中的记录。命令法:打开表:USE xsqk 浏览记录:BROWSE 关闭表:USE(2)用菜单操作和命令两种方法显示课程表(kc.dbf)中的记录。(3)用菜单操作和命令两种方法显示成绩表(cj.dbf)中的记录。3.表中记录定位。图 2“打开”对话框 -4-(1)打开学生情况表(xsqk.dbf),将记录指针指向第1 记录,并测试函数recno(),eof(),bof()的结果。菜单操作:打开xsqk.dbf,选择“显示/浏览”命令,浏览表中记录。选择“表/转到记录/第一个”命令。在命令窗口输入命令:?recno(),eof(),bof()显示结果为:1 .F.F.命令法:打开表:USE xsqk 定位记录:GO 1 测试函数结果:?recno(),eof(),bof()(2)分别用菜单法和命令法进行下列操作,然后把测试结果填入表中。移动记录指针测试函数的值 定位记录指针 RECNO()的值 EOF()的值 BOF()的值 定位第1 条记录后,执行SKIP-1 第 3 条记录 第 5 条记录 定位最后一条记录 定位最后一条记录后,执行SKIP+1 (3)条件定位 打开表:USE xsqk 查找姓名为张晓伟的记录。命令:在命令窗口用found()函数和Eof()函数测试是否找到该记录。Found()函数的值是:分析结果:Eof()函数的值是:分析结果:4.修改表中记录。把课程表中所有3 学分改为4 学分。(1)用手工方式修改表中记录。-5-选择“文件/打开”命令,打开课程表(kc.dbf)。选择“显示/浏览”命令,浏览表。移动记录指针到学分为3 的地方,直接输入4 即可。注意:修改时一定要小心谨慎。(2)批量修改记录。把课程表中所有4 学分重新改为3 学分。菜单操作:选择“文件/打开”命令,打开课程表(kc.dbf)。选择“显示/浏览”命令,浏览表。选择“表/替换字段”命令,打开图3 所示“替换字段”对话框。把所有学分为4 的课程的学分改为3。命令法:打开表:USE kc 把所有学分为4 的课程的学分重新改为3。命令:5.删除与恢复表中记录。(1)逻辑删除学生情况表(xsqk.daf)中专业为“市场营销”的所有记录。菜单操作:选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。选择“显示/浏览”命令,浏览表。选择“表/删除记录”命令,打开图5 所示“删除”对话框。在“删除”对话框设置删除专业为“市场营销”的记录。图 4 替换字段对话框 -6-单击“确定”按钮,所有“市场营销”专业的记录打上了黑色删除标记。命令法:打开表:USE xsqk 逻辑删除专业为“市场营销”的记录。命令:(2)物理删除记录和恢复记录 去掉张晓伟所打的删除标记,彻底删除其他打上删除标记的记录。菜单操作:选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。选择“显示/浏览”命令,浏览表。用鼠标单击记录张小伟前的黑色删除标记,即可去掉删除标记。也可选择“表/恢复记录”命令去掉删除标记。选择“表/彻底删除”命令可以物理删除已打上删除标记的记录。命令法:打开表:USE xsqk 恢复张小伟这条记录。命令:物理删除其它打上删除标记的记录。命令:6.表的排序与索引。(1)表的排序 图 5 删除对话框 -7-对学生情况表(xsqk.daf)按入学分数从高到低排序生成表文件rxfs.dbf,并检查排序结果。命令:(2)建立表的索引 对学生情况表(xsqk.dbf)建立以学号为主关键字的候选索引xh。菜单操作:选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。选择“显示/表设计器”命令,打开表设计器。在“索引”区域选择升序或降序。单击“索引”选项卡,打开如图6 所示的建立索引对话框,在索引名处输入“xh”,类型设为“候选索引”,单击“确定”按钮。命令法:打开表:USE xsqk 建立索引:INDEX ON 学号 TAG xh CANDIDATE 参照以上两种方法对学生情况表建立以下索引:以姓名为关键字建立普通索引xm。以出生日期为关键字建立普通索引csrq。以入学分数为关键字建立普通索引rxfs 且降序排列。参照以上两种方法对成绩表cj.dbf 建立以下索引:以学号为关键字建立普通索引xh;图 6 建立索引 -8-以课程号为关键字建立普通索引kch;以学号+课程号为关键字建立候选索引(xhkc)(3)索引查询的使用。按姓名查询张晓伟的情况,并测试是否找到,如果找到显示结果。打开学生情况表(xsqk.dbf):USE xsqk 把姓名为关键字建立的普通索引xm 作为主控索引:SET ORDER TO TAG xm 索引查找:SEEK”张晓伟”测试查找结果:?RECNO(),FOUND()4 .T.显示查找结果:DISPLAY 参照上述步骤查找学号为“20070105”的学生情况,并测试是否找到,如果找到显示结果。写出命令序列:参照上述步骤查找出生日期为“12/01/88”的学生情况,并测试是否找到,如果找到显示结果。写出命令序列:7.多个工作区操作。(1)练习在多个工作区打开多个表。菜单操作:选择“窗口/数据工作期”命令,打开数据工作期对话框。依次选择“打开”按钮,打开xsqk,kc,cj 三个表,如图7 所示。选中工作表,单击“关闭”按钮可以依次关闭所有表。-9-命令法:在 1 区打开学生情况表:SELECT 1 USE xsqk 在 2 区打开课程表:SELECT 2 USE kc 在 3 区打开成绩表:SELECT 3 USE cj 关闭所有打开的表:CLOSE TABLES (2)多表数据查询。列出李小霞所选的课程号及成绩。在 1 区打开学生情况表(xsqk.dbf)定位李小霞。命令:在 2 区打开成绩表(cj.dbf),显示成绩表中和1 区学号相同的记录就是李小霞的成绩。(要求:最后显示的字段有学号,姓名,课程号,成绩)命令:图 7 数据工作期窗口 -10-(3)表的关联 创建学生情况表(xsqk.dbf)和成绩表(cj.dbf)的一对多关联,并显示关联结果。菜单操作:选择“窗口/数据工作期”命令,打开数据工作期对话框。依次打开表xsqk 和 cj。选中cj 表,单击“属性”命令按钮,把cj 表的索引顺序选为xh。选中xsqk 表,单击“关系”按钮,然后单击cj 表,在图8 所示的“表达式生成器”对话框中选择“学号”字段,单击“确定”按钮。两表已经建立关联。单击“一对多”按钮,为两表建立一对多关联。在命令窗口输入命令“BROWSE FIELDS 姓名,cj.课程号,cj.成绩”,显示一对多关联后结果,如图9 所示。命令法:选择工作区1 打开学生情况表(xsqk.dbf)。命令:选择工作区2 打开成绩表(cj.dbf),并把按学号字段建立的索引作为主索引。命令:图 8 表达式生成器窗口 图 9 一对多关联后结果 -11-重新回到工作区1,建立表xsqk 和 kc 的关联。命令:建立一对多关联:命令:在命令窗口执行“BROWSE FIELDS 姓名,cj.课程号,cj.成绩”显示一对多关联后结果和图9 一致。