VisualFoxPro程序设计第2章.ppt
《VisualFoxPro程序设计第2章.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro程序设计第2章.ppt(99页珍藏版)》请在三一办公上搜索。
1、Visual FoxPro程序设计教程,第2章 表的操作,表是Visual FoxPro的基本内容数据库的管理是对表的管理表能够实现对数据的管理和加工表中的数据可以供多个程序共享VFP中的表分为自由表和数据库表,2.1 表的建立,在VFP中表的建立方式有多种,本节只介绍用可视化的界面建立表和用命令建立表两种方式。建表过程一般可分为三步:确定表的结构用界面或命令建表输入表的内容,表2.1 学生自然情况表,2.1.1 确定表的结构,一个二维表格是由列行组成,表的列称为字段,表的行称为记录。字段是一种变量。字段变量类型可为表1.1数据类型中的所有数据类型。由表2.1确定学生自然情况表的结构:学号C(
2、9)、姓名C(6)、性别C(2)、出生D、团否L、入学成绩N(3)、近照G、备注M。,2.1.2 表的建立、修改、显示,一个表的建立应确定表建立在磁盘中的位置,这样,在建立表后,需要打开表时,按表在磁盘中的位置找到表将表打开。用VFP可以建立默认路径,一旦默认路径建好,当打开VFP时它自动在默认路径上。,建立默认路径的方法:,通过界面建立通过命令建立SET DEFAULT TO f:table,1、建表,(1)用界面建表 1)用菜单打开表设计器 2)用命令打开表设计器格式:CREATE 功能:打开表设计器创建表 3)用向导创建表,(2)用命令创建表,格式:CREATE TABLE|DBF(),
3、()功能:创建表说明:宽度对于数值型可以包括小数的位数。如学生成绩字段的宽度为5位,其中小数占2位,写成N(5,2),例2.1 用命令方式创建学生自然情况表,create table 学生(学号 C(9),姓名 C(6),性别 C(2),出生 D,团否 L,入学成绩 N(3),近照 G,备注 M),2、显示表的结构,1)用界面显示表的结构2)用命令显示表的结构格式:LIST|DISPLAY STRUCTURE功能:显示当前表的结构,例2.2 显示学生表的结构use 学生list structure,3、修改表的结构,一个表在建立以后,由于实际需要发生变化,或在建表时表的结构就不对,需要对已存在
4、的表结构进行修改,VFP提供了界面与命令两种方式。(1)用界面修改表的结构1)用菜单打开表设计器修改表结构2)用命令打开表设计器修改表结构 格式:MODIFY STRUCTURE 功能:打开表设计器。,例2.3 修改学生表的结构,将入学成绩字段改为N(6,2),在备注字段前插入个人简历字段,类型为M。,例2.4 将表的结构回复为表2.1所示的结构,(2)用命令修改,格式:ALTER TABLE ADD(,)|ALTER(,)|RENAME TO|DROP 功能:修改表的结构说明:1、ADD子句增加新字2、ALTER子句修改原有字段3、DROP子句删除字段4、RENAME子句将字段2改名为字段2
5、,例2.5,对学生表增加爱好字段C(20)将爱好字段的类型改为C(30)将爱好字段改名为特长删除特长字段alter table 学生 add column 爱好 c(20)alter table 学生 alter column 爱好 c(30)alter table 学生 rename 爱好 to 特长alter table 学生 drop 特长,2.1.3 表的打开、关闭及相关操作,1、表的打开(1)用界面打开表(2)用命令打开表格式:USE 功能:打开表,例2.6 用命令开打学生表,USE 学生,2、关闭表,(1)用界面关闭表(2)用命令关闭表格式:USE功能:关闭当前表,3、表的复制,1
6、)文件的复制命令格式:COPY FILES TO 功能:将文件1复制为文件2 在使用命令前文件1必须关闭例2.7 将学生表复制成学生1表copy files 学生.*to 学生1.*2)显示文本文件内容命令格式:TYPE 功能:显示文本文件内容,3)表文件的复制命令,COPY TO FOR WHILE FIELDS|FIELDS LIKE|FIELDS EXCEPT TYPE SDF|XLS|DELIMITED WITH|WITH BLANK|WITH TAB功能:将当前表复制成一个由文件名指定的新表或其它类型的文件说明:1)VFP的范围有4种:ALL表示所有记录,NEXT N表示从当前记录算
7、起N条记录,RECORD 表示第N条记录,REST从当前记录开始到表的最后一条记录。若无,系统默认范围为ALL。2)FOR、WHILE 都为条件,但FOR与WHILE是有区别的,FOR是在指定范围内进行判断条件是否成立,而WHILE是当在指定范围中若遇到一个条件不满足的就停止操作。当FOR与WHILE同时存在,WHILE优先。,3)FIELDS 用字段名表中的字段形成新文件4)FIELDS LIKE 用符合通配符的字段形成新文件。通配符可为*与?,*代表任意多个任意字符,?代表一个任意字符。5)FIELDS EXCEPT 用除了符合通配符的字段形成新文件。6)TYPE子句,当形成新文件为文本文
8、件时,子句取SDF,数据之间无定界符和分隔符。当取DELIMITED WITH BLANK时空格作为分隔符,无定界符。取DELIMITED WITH TAB时,制表符作为分隔符,双引号为定界符。当形成文件为Excel文件时,子句必须取XLS。,例2.8 将学生表中性别为男的复制为文本文件学生.txt,use 学生copy to 学生.txt for 性别=男 type sdftype 学生.txt,4)表结构的复制,格式:COPY STRUCTURE TO FIELDS 功能:将当前表复制为文件名指定的表且只复制结构不复制数据,例2.9 将学生表的结构复制成学生2,use 学生copy str
9、ucture to 学生2use 学生2list structure,2.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|DISPLAYFIELDS FOR WHERE OFFTO PRINT PROMPT|TO FILE 功能:按范围与条件要求显示记录内容
10、。说明:1)LIST是滚动显示,即使满屏也不停止;DISPLAY是分屏显示。2)当省略范围子句时LIST默认范围为ALL,而DISPLAY默认范围是当前记录,即NEXT 1。3)若使用OFF子句,记录号不显示。4)TO PRINT子句,结果输出到打印机,若再用PROMPT在打印前会出现打印机设置对话框,可对打印机进行相应的设置。5)TO FILE 子句,结果输出到由文件名指定的文件,文件的扩展名默认为.txt。,例2.10 显示学生表:显示全部内容,显示性别为男的学生,显示性别为女且输出到g1.txt文件中,use 学生browsebrowse fields 学号,姓名,性别,出生list f
11、or 性别=男list for 性别=女 to file g1.txttype g1.txt,2、追加记录,(1)用界面追加记录(2)用命令追加记录格式1:APPEND BLANK功能:向当前表中追加记录。若选BLANK是追加一条空白记录,此空白记录当时不可编辑,用REPLACE等命令可对其进行编辑。,格式2:APPEND FROM FIELDS FOR 功能:从文件名指定的表文件中将符合条件的记录追加到当前表的尾部。,例2.11 在学生2表中追加一条空记录。将学生1表中性别为男的学生记录追加到表学生2中,use 学生2appendappend from 学生1 for 性别=男,3、删除表中
12、记录,删除表中的记录:1、逻辑删除:只是将记录加了删除标记2、物理删除:将具有删除标记的记录真正从表中删除(1)逻辑删除与恢复1)用界面为记录加删除标记或去掉删除标记2)用命令为记录加删除标记与去掉删除标记,逻辑删除命令格式:DELETE 范围 FOR 功能:对满足条件的记录加删除标记,若范围省略,默认范围为当前记录即NEXT 1.记录恢复命令格式:RECALL 范围 FOR 功能:为符合条件的记录去掉删除标记,若范围省略,默认范围为当前记录即NEXT 1.,(2)物理删除记录:1)用界面进行物理删除2)用命令进行物理删除格式:PACK功能:将带有删除标记的记录,从表中真正删除3)物理删除表中
13、所有记录格式:ZAP功能:将表中所有记录删除,只保留表的结构,例2.12 将学生2表中性别为女的记录逻辑删除,物理删除,将学生2表中的记录全部物理删除,use 学生2delete all for 性别=女listpacklistzaplistlist structure,4、修改记录,(1)用界面修改记录1)显示-浏览2)在命令窗口上用命令EDIT或CHANGE,(2)用命令修改记录,格式:REPLACE WITH,WITH FOR WHILE 功能:在指定范围内将符合条件的记录中的相关字段用相关表达式来替换。若省略范围,默认范围为NEXT 1,例2.13 将学生1表中入学成绩在400500分
14、之间的加10分,replace all 入学成绩 with 入学成绩+10 for 入学成绩=400 and 入学成绩=500,5、插入记录,格式:INSERT BEFORE BLANK功能:插入一条记录,若无BEFORE字符,则在当前记录后插入一条新纪录;当有BEFORE子句时在当前记录之前插入一条新纪录。当有BLANK子句时插入一条空白记录,当时不能编辑,可用REPLACE、EDIT、CHANGE等命令进行编辑,2.2.2 记录指针的移动,1、用界面方式移动记录指针2、用命令方式移动记录指针1)绝对移动:格式:GO|功能:实现记录指针的绝对移动。当用TOP子句时指针指向第一条记录;当用BO
15、TTOM子句时指针指向最后一条记录。当用记录号子句时指针指向记录号确定的记录,2)相对移动:格式:SKIP+|-N功能:N可为正、负整数,当N为正数时指针从当前记录向表尾方向移动N条记录。当N为负数时,指针从当前记录向表头方向移动N条记录,当省略N时,默认N为1.,例2.14 go与skip的应用,clearuse 学生go topgo bottomgo 2skip 1skip-1,2.2.3 内存变量与表之间的数据传递,1、单条记录与内存变量的数据传递(1)将当前记录字段数据传送给内存变量SCATTERFIELDS|FIELDS LIKE|FIELDS EXCEPT MEMO TO|MEMV
16、AR,例2.15 表与变量数据的传送应用,cleardimension a(8)use 学生2go 3scatter memvar?m.学号,m.姓名,m.性别,m.出生,m.团否,m.入学成绩go 5scatter to a?a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),(2)将内存变量数据传给当前记录GATHER FROM|MEMVAR FIELDS|FIELDS LIKE|FIELDS EXCEPT MEMO,例2.16 内存变量与表之间数据传送的应用,use 学生2append from 学生1append blankdimenson a(8)a(1)
17、=105010106a(2)=王小丽a(3)=女a(4)=1980-10-2a(5)=.t.a(6)=100gather from alistappend blank学号=105010107姓名=刘丽华性别=女出生=1981-10-3gather memvarlist,2、将多条记录与数组传送(1)将多条记录数据传送给数组COPY TO ARRAY FIELDS FOR WHILE,例2.17 多条记录数据传送给数组,use 学生2dimension b(2,8)copy to array b?b(1,1),b(1,2),b(1,3),b(1,4),b(1,5),b(1,6),b(1,7),b
18、(1,8)?b(2,1),b(2,2),b(2,3),b(2,4),b(2,5),b(2,6),b(2,7),b(2,8),(2)将数组数据追加到表中APPEND FROM ARRAY FOR FIELDS,例2.18 数组数据追加给表,use 学生2append from array blist,2.2.4 记录的筛选与排序,1、记录的筛选(1)设置筛选记录条件命令1)用界面方式2)用命令方式格式:SET FILTER TO 功能:设置访问当前表中记录的条件。当省略时,取消所有条件。,例2.19 过滤器命令应用,use 学生1set filter to 性别=女listset filter
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro 程序设计

链接地址:https://www.31ppt.com/p-6523135.html