第四章 表的创建和基本操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大纲要求:P11、表的概念2、表的建立、显示、修改与复制1)表与表结构的建立、显示、修改和复制;2)记录的定位、显示、增加、删除、修改与复制;3)逻辑表的设置(1)记录过滤器;(2)字段过滤器3、表中数据与数组的传递第四章表的创建和基本操作第四章表的创建及基本操作数据表的创建数据表的维护4.1.3数据表文件的打开、关闭、显示和定位4.1.2表数据的输入4.1.1创建数据表4.1数据表的创建1.数据表结构的定义(1)文件名:表文件的主要标识(表名)(2)结构:字段名、类型、宽度等(列)(3)记录:表文件的基本数据(行)2.数据表的创建(1)命令方式:CREATE文件名(2)表设计器(3)表向导4.1.1创建数据表3.字段类型及命名4.1.1创建数据表(1)字段名:必须以字母或汉字开头,可以包括字母、汉字、数字和下划线,不要超过10个字符。(2)字段类型:共10种。(3)字段宽度:不同类型的字段具有不同的宽度。(4)小数位:数值型数据需要规定小数位数。(5)使用NULL值:可以指定字段是否接受NULL值,它是一个不存在的值。例:姓名、XB、班级BJ、班级2、班级_2_XM、2班、“成绩”、班级:姓名1.创建数据表时输入数据2.使用浏览窗口追加数据备注型字段与通用型字段内容的输入:双击鼠标左键,进入相应的编辑窗口进行输入。命令格式:BROWSE3.添加记录命令格式:APPEND[BLANK]4.插入记录命令格式:INSERT[BEFORE][BLANK]4.1.2表数据的输入1.数据表文件的打开与关闭命令格式:USE[数据表文件名[Exclusive|Shared]Exclusive:表示以独占方式打开,表可读可写。Share:表示以共享方式打开,能读不能修改。缺省为Share方式。例:USE学生情况表.DBF关闭:USE|CLOSEALL|CLOSE文件类型2.数据表文件的显示格式:LISTSTRUCTURE或DISPLAYSTRUCTURE例:USE学生情况表LISTSTRU(1)结构的显示4.1.3数据表文件的打开、关闭、显示和定位注意:若数据表文件不在当前路径下,文件名前应添加路径,或者用setdefaultto命令设置默认路径。格式:LIST/DISPLAY[OFF][范围][[FIELDS]表达式表][WHILE条件][FOR条件](2)记录的显示例:USE学生情况表LISTOFFFOR性别=“女”LISTFIELDS学号,姓名,性别DISPALL记录指针:用来指示表文件中记录位置的指针。当前记录:指针当前所指向的记录。3.记录指针的定位(1)指针的绝对移动命令格式:GO/GOTO[RECORD]记录号GO/GOTOTOP/BOTTOM例:USE学生情况表GO3DISPGOTORECO5DISPGOTOPDISP(2)指针的相对移动命令格式:SKIP[+/-][算术表达式]例:USE学生情况表DISPSKIPDISPSKIP3DISPSKIP-2DISPSKIP6DISP注意:若表中有N条记录记录号位置1文件头1首记录2第二条记录3第三条记录……N尾记录N+1文件尾4.2数据表的维护4.2.1数据表结构的修改4.2.2显示和编辑数据表中的数据4.2.3删除数据表中的记录4.2.4文件的目录显示、复制、删除与更名4.2.5数组与数据表之间的数据交换4.2.1数据表结构的修改格式:MODIFYSTRUCTURE示例:USE学生情况表MODISTRU4.2.2显示和编辑数据表中的数据格式:BROWSE[FIELDS字段名表][LOCK数值表达式][FREEZE字段名][NOMENU][NOAPPEND][NOMODIFY][WIDTH数值表达式][FOR逻辑表达式][PARTITION数值表达式][LEDIT][REDIT][NOLINK]1.浏览修改命令BROWSE例:USE学生情况表BROWSEFIELDS学号,姓名,性别,入校总分BROWSEFREEZE入校总分&&只能修改入校总分BROWSENOAPPENDBROWSENOMENUBROWSEFOR性别=“男”BROWSENOMODIFY1.浏览修改命令BROWSE2.CHANGE/EDIT命令格式:CHANGE/EDIT[范围][FIELDS字段名表][WHILE逻辑表达式][FOR逻辑表达式]例:USE学生情况表.DBFCHANGEFIELDS姓名,性别3.REPLACE命令格式:REPLACE[范围]字段1WITH表达式1[ADDITIVE][,字段2WITH表达式2[ADDITIVE]…][FOR条件][WHILE条件]例:USE学生情况表.DBFGO6DISPREPLACE姓名WITH李青,性别WITH男DISP缺省范围和条件,只对当前纪录修改4.修改通用型字段格式:MODIFYGENERAL通用型字段名表[NOMODIFY][NOWAIT]4.2.3删除数据表中的记录1.逻辑删除数据表中的数据格式:DELETE[范围][WHILE条件>][FOR条件>]说明:SETDELETEON(直接不显示被删除的记录)/OFF(出现删除标记)例:USE学生情况表.DBFGO6DELETELISTSETDELETEONLIST2.恢复数据表中逻辑删除的数据格式:RECALL[范围][FOR条件][WHILE条件]例:USE学生情况表.DBFGO6DELETEDISPGO6RECALL&&缺省选项只恢复当前记录DISP[菜单]:表……3.物理删除数据表中的数据格式:PACK&&删除带删除标记的记录4.删除数据表中的所有记录格式:ZAP&&保留表结构说明:SETSAFETYON/OFF(确认对话框的出现与否)4.2.4文件的目录显示、复制、删除与更名1.文件目录的显示命令格式:DIR/DIRECTORY[盘符][路径][文件名描述]例:DIRDIR*.PRGDIRC:\*.*1)表结构的复制本命令在表打开的情况下进行。格式:COPYSTRUCTURETO〈新文件名〉[FIELDS字段表]复制结构到新文件字段字段表例:USE学生情况表.DBFCOPYSTRUCTURETO学生表1FIELDS学号,姓名,性别USE学生表1LISTSTRUCTURE命令功能:将当前表文件中的结构的部分或全部复制到新文件中。新文件中只有结构,没有数据记录。2.表及表结构的复制2)表的复制(结构+记录)本命令在表打开的情况下进行。格式:COPYTO〈新文件名〉[FIELDS字段表][FOR/WHILE条件][范围]例:USE学生情况表.DBFCOPYTO学生表2FOR性别=“男”命令功能:将当前表文件中满足条件的记录按指定字段复制到新文件中。新文件必须用USE命令打开后,才能使用。表及表结构的复制3)任意文件的复制本命令在表关闭的情况下进行。格式:COPYFILE源文件.扩展名TO〈新文件名.扩展名〉例:COPYFILE学生情况表.DBFTO学生表.DBFCOPYFILE学生情况表.FPTTO学生表.FPT命令说明:文件名可以带通配符*(任意长任意字符)和?(一个任意非汉字符号)。表及表结构的复制P33.文件的更名格式:RENAME源文件名TO新文件名例:RENAMEE:\VFP\例题\学生表.DBFTO学生名单.DBFRENAMEE:\VFP\例题\学生表.DBFTO学生名单.FPT4.文件的删除格式:ERASE文件名/?或DELETEFILE[文件名/?]例:ERASE学生表1.DBF&&不要忘了后缀名.DBFDELETEFILE学生名单.DBF5.从另外的数据表中向当前表文件添加记录格式:APPENDFROM文件名[FIELDS字段名表][WHILE条件][FOR条件]例:USE学生表COPYSTRUTO学生表3USE学生表3APPENDFROM学生表for性别=‘男’list4.7表的过滤过滤器分类:记录过滤器和字段过滤器1、记录过滤:[命令]SETFILTERTO[条件][菜单]打开表显示浏览表属性工作区属性[说明]缺省条件表取消所设置的过滤器例:USE学生表SETFILTERTO入校总分=550LIST/BROWSETFILTERTOLIST/BROW2、字段过滤:[命令]SETFEILDSTO[字段名表|ALL]SETFIELDSON|OFF[菜单]打开表显示浏览表属性工作区属性字段筛选指定的字段字段筛选字段选择器例:USE学生表SETFIELDSTO学号,姓名,性别LIST/BROWSETFIELDSOFFLIST/BROW1、表=》数组当前表应先打开命令格式:SCATTER[FIELDS字段表]TO数组名/memvar将当前记录指定字段的值赋予数组或内存变量。Vfp会自动建立或扩大数组。常规用法:DIMEA(1)USE学生情况表GO3SCAT学号,姓名,性别,入校总分TOA?A(1),A(2),A(3),A(4)go6scattob?b(1),b(3),b(7)4.8.1数组和表之间的数据交换2、数组=》表当前表应先打开命令格式:GATHERFROM数组名FIELDS字段表将数组值依次赋予当前记录指定字段。例:use学生表go3dispdimex(3)x(1)=“a”x(2)=‘b’x(3)=‘c’gatherfromxdisp4.8.1数组和表之间的数据交换4.8.2多记录和数组之间的数据交换1、一批表记录数组COPYTOARRAY数组名[FIELDS字段名表][范围][FOR条件][WHILE条件]说明:若数组事先定义,该命令不会扩大数组;若数组不存在,vfp会自动建立满足长度的数组Use学生Dimexs1(3,2)Copytoarrayxs1field姓名,性别,入校总分fornot三好生&&满足条件的记录有8个,但仅可复制3个记录到数组?xs(1,1),xs(1,2),xs(2,1),xs(2,2),xs(3,1),xs(3,2)copytoarrayxs2for三好生&&满足条件的记录有2个,自动建立2行8列的二维数组?xs2(1,2),xs2(1,6),xs2(2,2),xs2(2,6),xs2(12)2、从数组向表追加记录APPENDFROMARRAY数组名[FOR条件][FIELDS字段名表说明:忽略备注型字段例:USE学生表COPYTOarrayxs3fiel姓名,性别,入校总分for性别=‘男’COPYTOnxsfiel姓名,性别,入校总分for性别=‘女’USEnxslistAPPENDFROMarrayxs3list

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功