当前位置:文档之家› 实验三 表的基本操作

实验三 表的基本操作

实验三表的基本操作一、实验目的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所示的表设计器,依次设置表的所有字段名字、类型、宽度和小数位数。

最后单击“确定”按钮。

④系统提示现在录入记录吗,单击“是”,录入下面两条记录。

⑤录入两条记录完毕,选择“显示/浏览…”命令查看录入的两条记录。

⑥ 选择“查看/追加方式”命令,继续输入以下三条记录。

⑦ 选择“显示/表设计器”命令,或在命令窗口输入“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图1 表设计器成绩 N 3 0 ② 在表中输入以下记录:2.打开表并查看表中记录。

(1)显示学生情况表(xsqk.dbf )中的记录。

菜单操作:①选择“文件/打开”命令,在打开对话框中把文件类型设为“表(*.dbf )”,如图2所示。

② 选定“xsqk.dbf ”,单击“确定”按钮,即打开xsqk表,观察主窗口中状态栏的变化。

③ 选择“显示/浏览…”命令,即可浏览查看xsqk 表中的记录。

命令法:① 打开表: USE xsqk ② 浏览记录:BROWSE ③ 关闭表:USE(2)用菜单操作和命令两种方法显示课程表(kc.dbf )中的记录。

图2 “打开”对话框(3)用菜单操作和命令两种方法显示成绩表(cj.dbf)中的记录。

3.表中记录定位。

(1)打开学生情况表(xsqk.dbf),将记录指针指向第1记录,并测试函数recno(),eof(),bof()的结果。

菜单操作:①打开xsqk.dbf,选择“显示/浏览…”命令,浏览表中记录。

②选择“表/转到记录/第一个”命令。

③在命令窗口输入命令:?recno(),eof(),bof()④显示结果为:1 .F. .F.命令法:①打开表: USE xsqk②定位记录:GO 1③测试函数结果:?recno(),eof(),bof()1 .F. .F.(2)分别用菜单法和命令法进行下列操作,然后把测试结果填入表中。

移动记录指针测试函数的值(3)条件定位①打开表: USE xsqk②查找姓名为张晓伟的记录。

命令:Use xsqkLocate for 姓名=”张晓伟”③在命令窗口用found()函数和Eof()函数测试是否找到该记录。

Found()函数的值是:.T.分析结果:在表中有姓名为张晓伟的记录,所以结果为.T.Eof ()函数的值是:.F.分析结果:在表中找到了张晓伟的记录,记录指针指向最后一条记录 4.修改表中记录。

把课程表中所有3学分改为4学分。

(1)用手工方式修改表中记录。

① 选择“文件/打开”命令,打开课程表(kc.dbf )。

② 选择“显示/浏览…”命令,浏览表。

③ 移动记录指针到学分为3的地方,直接输入4即可。

注意:修改时一定要小心谨慎。

(2)批量修改记录。

把课程表中所有4学分重新改为3学分。

菜单操作:① 选择“文件/打开”命令,打开课程表(kc.dbf )。

② 选择“显示/浏览…”命令,浏览表。

③ 选择“表/替换字段”命令,打开图3所示“替换字段”对话框。

④ 把所有学分为4的课程的学分改为3。

命令法:① 打开表: USE kc② 把所有学分为4的课程的学分重新改为3。

命令:use kcReplace all kc.学分 with 3 for kc.学分=4图4 替换字段对话框5.删除与恢复表中记录。

(1)逻辑删除学生情况表(xsqk.daf)中专业为“市场营销”的所有记录。

菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。

②选择“显示/浏览…”命令,浏览表。

③选择“表/删除记录”命令,打开图5所示“删除”对话框。

④在“删除”对话框设置删除专业为“市场营销”的记录。

⑤单击“确定”按钮,所有“市场营销”专业的记录打上了黑色删除标记。

图5 删除对话框命令法:①打开表:USE xsqk②逻辑删除专业为“市场营销”的记录。

命令:use xsqkDelete all for xsqk. 专业=”市场营销”(2)物理删除记录和恢复记录去掉张晓伟所打的删除标记,彻底删除其他打上删除标记的记录。

菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。

②选择“显示/浏览…”命令,浏览表。

③用鼠标单击记录张小伟前的黑色删除标记,即可去掉删除标记。

也可选择“表/恢复记录”命令去掉删除标记。

④选择“表/彻底删除”命令可以物理删除已打上删除标记的记录。

命令法:①打开表:USE xsqk②恢复张小伟这条记录。

命令:use xsqkRecall for 姓名=”张晓伟”③物理删除其它打上删除标记的记录。

命令:pack6.表的排序与索引。

(1)表的排序对学生情况表(xsqk.daf)按入学分数从高到低排序生成表文件rxfs.dbf,并检查排序结果。

命令:use xsqkSort to rxfs on 入学分数/dUse rxfsBrowse last(2)建立表的索引对学生情况表(xsqk.dbf)建立以学号为主关键字的候选索引xh。

菜单操作:①选择“文件/打开”命令,打开学生情况表(xsqk.dbf)。

②选择“显示/表设计器”命令,打开表设计器。

③在“索引”区域选择升序或降序。

④单击“索引”选项卡,打开如图6所示的建立索引对话框,在索引名处输入“xh”,类型设为“候选索引”,单击“确定”按钮。

图6 建立索引命令法:①打开表: USE xsqk②建立索引:INDEX ON学号 TAG xh CANDIDATE参照以上两种方法对学生情况表建立以下索引:①以姓名为关键字建立普通索引xm。

②以出生日期为关键字建立普通索引csrq。

③以入学分数为关键字建立普通索引rxfs且降序排列。

USE xsqkINDEX ON 姓名 TAG xm CANDIDATEINDEX ON 出生日期 TAG csrq CANDIDATEINDEX ON 入学分数 TAG rxfs DESCENDING参照以上两种方法对成绩表cj.dbf建立以下索引:①以学号为关键字建立普通索引xh;②以课程号为关键字建立普通索引kch;③以学号+课程号为关键字建立候选索引(xhkc)USE cjINDEX ON 学号 TAG xh CANDIDATEINDEX ON 课程号 TAG kch CANDIDATEINDEX ON 学号+课程号 TAG xhkc CANDIDATE(3)索引查询的使用。

按姓名查询张晓伟的情况,并测试是否找到,如果找到显示结果。

①打开学生情况表(xsqk.dbf):USE xsqk②把姓名为关键字建立的普通索引xm作为主控索引:SET ORDER TO TAG xm③索引查找: SEEK ”张晓伟”④测试查找结果:?RECNO(),FOUND()3 .T.⑤显示查找结果:DISPLAY参照上述步骤查找学号为“20070105”的学生情况,并测试是否找到,如果找到显示结果。

写出命令序列:Use xsqkSet order to tag xhSeek “20070105”?recno(),found()结果: 4 .T.参照上述步骤查找出生日期为“12/01/88”的学生情况,并测试是否找到,如果找到显示结果。

写出命令序列:USE xsqkSet order to tag csrqSeek {^1988-12-01}?recno(),found()结果:4 .T.7.多个工作区操作。

(1)练习在多个工作区打开多个表。

菜单操作:①选择“窗口/数据工作期”命令,打开数据工作期对话框。

②依次选择“打开”按钮,打开xsqk,kc,cj三个表,如图7所示。

③选中工作表,单击“关闭”按钮可以依次关闭所有表。

图7 数据工作期窗口命令法:①在1区打开学生情况表:SELECT 1USE xsqk②在 2区打开课程表:SELECT 2USE kc③在3区打开成绩表:SELECT 3USE cj④关闭所有打开的表:CLOSE TABLES(2)多表数据查询。

列出李小霞所选的课程号及成绩。

①在1区打开学生情况表(xsqk.dbf)定位李小霞。

命令:Select 1Use xsqkSet order to xmSeek “李小霞”disply②在2区打开成绩表(cj.dbf),显示成绩表中和1区学号相同的记录就是李小霞的成绩。

(要求:最后显示的字段有学号,姓名,课程号,成绩)命令:Select 1Use xsqkSet order to xmSeek 李小霞Select 2Use cjList fields 学号,课程号,成绩,xsqk.姓名 for 学号=xsqk.学号 off(3)表的关联创建学生情况表(xsqk.dbf )和成绩表(cj.dbf )的一对多关联,并显示关联结果。

菜单操作:① 选择“窗口/数据工作期”命令,打开数据工作期对话框。

② 依次打开表xsqk 和cj 。

③ 选中cj 表,单击“属性”命令按钮,把cj 表的索引顺序选为xh 。

④ 选中xsqk 表,单击“关系”按钮,然后单击cj 表,在图8所示的“表达式生成器”对话框中选择“学号”字段,单击“确定”按钮。

两表已经建立关联。

⑤ 单击“一对多”按钮,为两表建立一对多关联。

⑥ 在命令窗口输入命令“BROWSE FIELDS 姓名,cj.课程号,cj.成绩”,显示一对多关联后结果,如图9所示。

命令法:① 选择工作区1打开学生情况表(xsqk.dbf )。

命令:② 选择工作区2打开成绩表(cj.dbf ),并把按学号字段建立的索引作为主索引。

相关主题