您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Visual FoxPro程序设计幻灯片.徐红波.第2章
VisualFoxPro程序设计教程教师:徐红波E-mail:x_h_b@tom.com第2章表的操作表是VisualFoxPro的基本内容数据库的管理是对表的管理表能够实现对数据的管理和加工表中的数据可以供多个程序共享VFP中的表分为自由表和数据库表2.1表的建立在VFP中表的建立方式有多种,本节只介绍用可视化的界面建立表和用命令建立表两种方式。建表过程一般可分为三步:确定表的结构用界面或命令建表输入表的内容表2.1学生自然情况表学号C(9)姓名C(6)性别C(2)出生D团否L入学成绩N(3)近照G备注M105010101刘晓华女08/02/80F420genmeno105010102李立明男06/23/79T480genmeno105010103王丽华女03/21/79T460genmeno105010104赵文学男12/11/80F500genmeno2.1.1确定表的结构一个二维表格是由列行组成,表的列称为字段,表的行称为记录。字段是一种变量。字段变量类型可为表1.1数据类型中的所有数据类型。由表2.1确定学生自然情况表的结构:学号C(9)、姓名C(6)、性别C(2)、出生D、团否L、入学成绩N(3)、近照G、备注M。2.1.2表的建立、修改、显示一个表的建立应确定表建立在磁盘中的位置,这样,在建立表后,需要打开表时,按表在磁盘中的位置找到表将表打开。用VFP可以建立默认路径,一旦默认路径建好,当打开VFP时它自动在默认路径上。建立默认路径的方法:通过界面建立通过命令建立SETDEFAULTTOf:\table1、建表(1)用界面建表1)用菜单打开表设计器2)用命令打开表设计器格式:CREATE表名功能:打开表设计器创建表3)用向导创建表(2)用命令创建表格式:CREATETABLE|DBF表名(字段名1类型1(宽度1),[字段名2类型2(宽度2)……])功能:创建表说明:宽度对于数值型可以包括小数的位数。如学生成绩字段的宽度为5位,其中小数占2位,写成N(5,2)例2.1用命令方式创建学生自然情况表createtable学生(学号C(9),姓名C(6),性别C(2),出生D,团否L,入学成绩N(3),近照G,备注M)2、显示表的结构1)用界面显示表的结构2)用命令显示表的结构格式:LIST|DISPLAYSTRUCTURE功能:显示当前表的结构例2.2显示学生表的结构use学生liststructure3、修改表的结构一个表在建立以后,由于实际需要发生变化,或在建表时表的结构就不对,需要对已存在的表结构进行修改,VFP提供了界面与命令两种方式。(1)用界面修改表的结构1)用菜单打开表设计器修改表结构2)用命令打开表设计器修改表结构格式:MODIFYSTRUCTURE功能:打开表设计器。例2.3修改学生表的结构将入学成绩字段改为N(6,2),在备注字段前插入个人简历字段,类型为M。例2.4将表的结构回复为表2.1所示的结构(2)用命令修改格式:ALTERTABLE表名ADD字段名字段类型[(字段宽度[,小数位数)]|ALTER字段名字段类型[(字段宽度[,小数位数)]|RENAME字段名1TO字段名2|DROP字段名功能:修改表的结构说明:1、ADD子句增加新字2、ALTER子句修改原有字段3、DROP子句删除字段4、RENAME子句将字段2改名为字段2例2.5对学生表增加爱好字段C(20)将爱好字段的类型改为C(30)将爱好字段改名为特长删除特长字段altertable学生addcolumn爱好c(20)altertable学生altercolumn爱好c(30)altertable学生rename爱好to特长altertable学生drop特长2.1.3表的打开、关闭及相关操作1、表的打开(1)用界面打开表(2)用命令打开表格式:USE表名功能:打开表例2.6用命令开打学生表USE学生2、关闭表(1)用界面关闭表(2)用命令关闭表格式:USE功能:关闭当前表3、表的复制1)文件的复制命令格式:COPYFILES文件1TO文件2功能:将文件1复制为文件2在使用命令前文件1必须关闭例2.7将学生表复制成学生1表copyfiles学生.*to学生1.*2)显示文本文件内容命令格式:TYPE文件名功能:显示文本文件内容3)表文件的复制命令COPYTO文件名[范围][FOR条件][WHILE条件][FIELDS字段名表]|FIELDSLIKE通配字段名|FIELDSEXCEPT通配字段名][[TYPE][SDF|XLS|DELIMITED[WITH定界符|WITHBLANK|WITHTAB]]]功能:将当前表复制成一个由文件名指定的新表或其它类型的文件说明:1)范围VFP的范围有4种:ALL表示所有记录,NEXTN表示从当前记录算起N条记录,RECORDN表示第N条记录,REST从当前记录开始到表的最后一条记录。若无范围,系统默认范围为ALL。2)FOR条件、WHILE条件都为条件,但FOR与WHILE是有区别的,FOR是在指定范围内进行判断条件是否成立,而WHILE是当在指定范围中若遇到一个条件不满足的就停止操作。当FOR与WHILE同时存在,WHILE优先。3)FIELDS字段名表用字段名表中的字段形成新文件4)FIELDSLIKE通配符用符合通配符的字段形成新文件。通配符可为*与?,*代表任意多个任意字符,?代表一个任意字符。5)FIELDSEXCEPT通配符用除了符合通配符的字段形成新文件。6)TYPE子句,当形成新文件为文本文件时,子句取SDF,数据之间无定界符和分隔符。当取DELIMITEDWITHBLANK时空格作为分隔符,无定界符。取DELIMITEDWITHTAB时,制表符作为分隔符,双引号为定界符。当形成文件为Excel文件时,子句必须取XLS。例2.8将学生表中性别为男的复制为文本文件学生.txtuse学生copyto学生.txtfor性别=‘男’typesdftype学生.txt4)表结构的复制格式:COPYSTRUCTURETO文件名[FIELDS字段名表]功能:将当前表复制为文件名指定的表且只复制结构不复制数据例2.9将学生表的结构复制成学生2use学生copystructureto学生2use学生2liststructure2.2表的基本操作2.2.1记录的显示、追加、删除、修改、插入2.2.2记录指针的移动2.2.3内存变量与表之间的数据传递2.2.4记录的筛选与排序2.2.5索引文件的建立2.2.6统计与计数2.2.7工作区与多表使用2.2.1记录的显示、追加、删除、修改、插入1、记录的显示(1)用界面显示记录(2)用命令显示记录格式1:BROWSE[FIELDS字段名表]格式2:LIST|DISPLAY[[FIELDS]字段名表][范围][FOR条件][WHERE条件][OFF][TOPRINT[PROMPT]|TOFILE文件名]功能:按范围与条件要求显示记录内容。说明:1)LIST是滚动显示,即使满屏也不停止;DISPLAY是分屏显示。2)当省略范围子句时LIST默认范围为ALL,而DISPLAY默认范围是当前记录,即NEXT1。3)若使用OFF子句,记录号不显示。4)TOPRINT子句,结果输出到打印机,若再用PROMPT在打印前会出现打印机设置对话框,可对打印机进行相应的设置。5)TOFILE文件名子句,结果输出到由文件名指定的文件,文件的扩展名默认为.txt。例2.10显示学生表:显示全部内容,显示性别为男的学生,显示性别为女且输出到g1.txt文件中use学生browsebrowsefields学号,姓名,性别,出生listfor性别='男'listfor性别='女'tofileg1.txttypeg1.txt2、追加记录(1)用界面追加记录(2)用命令追加记录格式1:APPEND[BLANK]功能:向当前表中追加记录。若选BLANK是追加一条空白记录,此空白记录当时不可编辑,用REPLACE等命令可对其进行编辑。格式2:APPENDFROM文件名[FIELDS字段名表[FOR条件]]功能:从文件名指定的表文件中将符合条件的记录追加到当前表的尾部。例2.11在学生2表中追加一条空记录。将学生1表中性别为男的学生记录追加到表学生2中use学生2appendappendfrom学生1for性别=‘男’3、删除表中记录删除表中的记录:1、逻辑删除:只是将记录加了删除标记2、物理删除:将具有删除标记的记录真正从表中删除(1)逻辑删除与恢复1)用界面为记录加删除标记或去掉删除标记2)用命令为记录加删除标记与去掉删除标记逻辑删除命令格式:DELETE[范围][FOR条件]功能:对满足条件的记录加删除标记,若范围省略,默认范围为当前记录即NEXT1.记录恢复命令格式:RECALL[范围][FOR条件]功能:为符合条件的记录去掉删除标记,若范围省略,默认范围为当前记录即NEXT1.(2)物理删除记录:1)用界面进行物理删除2)用命令进行物理删除格式:PACK功能:将带有删除标记的记录,从表中真正删除3)物理删除表中所有记录格式:ZAP功能:将表中所有记录删除,只保留表的结构例2.12将学生2表中性别为女的记录逻辑删除,物理删除,将学生2表中的记录全部物理删除use学生2deleteallfor性别='女'listpacklistzaplistliststructure4、修改记录(1)用界面修改记录1)显示-》浏览2)在命令窗口上用命令EDIT或CHANGE(2)用命令修改记录格式:REPLACE[范围]字段1WITH表达式1[,字段2WITH表达式2…][FOR条件1][WHILE条件2]功能:在指定范围内将符合条件的记录中的相关字段用相关表达式来替换。若省略范围,默认范围为NEXT1例2.13将学生1表中入学成绩在400~500分之间的加10分replaceall入学成绩with入学成绩+10for入学成绩=400and入学成绩=5005、插入记录格式:INSERT[BEFORE][BLANK]功能:插入一条记录,若无BEFORE字符,则在当前记录后插入一条新纪录;当有BEFORE子句时在当前记录之前插入一条新纪录。当有BLANK子句时插入一条空白记录,当时不能编辑,可用REPLACE、EDIT、CHANGE等命令进行编辑2.2.2记录指针的移动1、用界面方式移动记录指针2、用命令方式移动记录指针1)绝对移动:格式:GOBOTTOM|TOP|记录号功能:实现记录指针的绝对移动。当用TOP子句时指针指向第一条记录;当用BOTTOM子句时指针指向最后一条记录。当用记录号子句时指针指向记录号确定的记录2)相对移动:格式:SKIP[[+|-]N]功能:N可为正、负整数,当N为正数时指针从当前记录向表尾方向移动N条记录。当N为负数时,指针从当前记录向表头方向移动N条记录,当省略N时,默认N为1.例2.14go与skip的应用clearuse学生gotopgobottomgo2skip1skip-12.2.3内存变量与表之间的数据传递1、单条记录与内存变量的数据传递(1)将当前记录字段数据传送给内存变量SCATTER[FIELDS字段名表|FIELDSLIKE通配字段名|FIELDSEXCEPT通配字段名][MEMO]TO数组名|MEMVAR例2.15表与变量数据的传送应用cleardimensiona(8)use学生2go3scattermemvar?m.学号,m.姓名,m.性别,m.出生,m.团否,m.入学成绩go5scattertoa?a(1),a(2),a(3),a(4),
本文标题:Visual FoxPro程序设计幻灯片.徐红波.第2章
链接地址:https://www.777doc.com/doc-6148852 .html