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