您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第4章表的基本操作与维护-
第4章表的基本操作和维护内容提要:4.1表的建立与修改4.2表的显示与维护4.3表中数据的过滤4.1表的建立与修改在VFP中,数据库(Database)和数据表(Table)是两个不同的概念。数据库不仅可以管理表、视图等实体,还可以提供数据字典、存储过程等数据管理功能。表(Table)可内含于数据库中,也可独立于数据库之外成为自由表。无论是数据库表还是自由表,保存的都是具体要处理的数据。一个数据表即是一个关系二维表;数据表是数据处理和建立数据库应用的基本单元;一个数据表的存在形式是一个磁盘文件,其后缀名缺省为.DBF数据表可能是存储于某一个数据库中的数据库表,也可能是游离的、不属于任何数据库的自由表。这两种表基本操作没有太大的区别,并且在必要的时候可以转换表的类型。以下是数据表的一些基本认识:4.1.1表结构的建立与修改基本步骤:需求分析建立表结构录入数据(一)需求分析数据表用来存储需要使用和管理的具体数据,因此数据表的建立不是盲目的,应有针对性。一般来说应根据具体的需要进行前期的数据采集和规划。需求分析的目的是设计出数据表的基本结构,即包含的字段和字段的属性等等。避免产生如:存储的数据太杂乱;产生无意义和多余的字段;表中数据大量冗余等现象。(二)建立表结构定义表结构就是定义各个字段的属性,包括字段名、字段类型、字段宽度和小数位数等。(1)表名、字段名(自由表):以字母或汉字开头,长度不超过10的字母、汉字、数字、下化线序列。一个表中的字段名不能重复;数字和下划线不能是字段名的首字符,表名可以。表名和字段名应直观,而且好读好记;避免使用保留字(2)字段类型和宽度数据类型数据范围字段宽度说明字符型C=254byte=254byte字母、数字型文本货币型Y15.48byte货币单位数值型N(+-)20位=20位整数或小数浮点型F(+-)20位同“数值型”日期型D01/01/001--12/31/99998byte年,月,日日期时间型T01/01/00100:00:00AM12/31/999911:59:59PM8byte月,日,年时,分,秒双精度型B8byte双精度数值整型I(+-)10位4byte不带小数点的数值逻辑型L.T..F.1byte真或假备注型M仅限于存储空间4byte不定长的字母数字文本通用型G仅限于存储空间4byteOLE(对象链接与嵌入)字符型(二进制)=254同前述“字符型”相同,但是当代码页更改时字符值不变备注型(二进制)仅限于存储空间同前述“备注型”相同,但是当代码页更改时备注不变(2)字段类型和宽度1个的表中最多可以有255个字段。如果一个或更多的字段允许null值,该限制为254个字段字段类型代表了VFP的数据类型;字段类型决定了字段存储的数据类型,直接影响所有操作命令及程序编制;字段宽度用以表明允许字段存储的最大字节数。对于字符型、数值型和浮点型3类字段,应根据需要设定适当的宽度,其它类型的字段宽度由VFP确定,备注型和通用性字段的宽度一律为4个字节,用以表示数据在.FPT(表备注)文件中的存储地址。备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为10位,而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。存放于与数据表文件同名,扩展名为.FPT的备注文件中备注型通用型通用型数据(General)是用于存储OLE(对象连接与嵌入)对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。通用型数据长度固定为4位,实际数据长度仅受限于现有的磁盘空间。(二)建立表结构相关准备工作:设置默认目录。设置默认目录目的:为了使新建的文件有组织的存放,应设置新建文件的存放路径和访问路径。方法1:选择“工具”---“选项”---“文件位置”---“默认目录”,然后输入默认目录,如:D:\Mytable方法2:使用SET命令设置默认目录。如:SETDEFAULTTOD:\Mytable此时,新建文件将自动保存在默认目录中。建立表结构的几种方式:1、交互式(1)命令窗口中输入命令:CREAT表文件名即可打开“表设计器”(2)“文件”---“新建”---“表”---“新建文件”即可打开“表设计器”选定NULL表示可以接受不确定的值,便于和其它数据库通用。2、命令模式(CREATTABLE)命令格式:CREATTABLE表名(字段名1字段类型[(字段宽度[,小数位数])][,字段名2…])例:用命令模式建立一个含三个字段的新表。CREATTABLETEST(编号C(8),品名C(8),价格N(6,1))命令执行后便在默认当前目录下建立了一个数据表test.dbf包含了“编号”、“品名”和价格三个字段,但无记录。(三)表结构的修改表结构的修改(添加或删除字段、修改字段属性等)使用“表设计器”或MODIFYSTRUCTURE命令(交互式)注:若改动了字段宽度或子段类型,VF会自动进行相应字段值的转换,但有时会丢失数据,因此最好在改动前将数据表备份。(四)表结构的显示命令格式:list|displaystructure4.1.2表数据的输入与修改录入数据(记录)实指向表中“添加”数据,一般来说也有两种方式。一种是在记录编辑窗口中添加,另一种是使用命令语句方式添加。(一)记录的输入方法1:利用“表设计器”定义好表结构后,存盘弹出录入数据对话框,选择“Y”打开记录编辑窗口进行数据录入。方法2:打开表后,使用“显示”---“浏览表”---“追加方式”在浏览窗口中添加数据。(二)记录的修改通过窗口显示、修改数据,vf提供了edit/change和browse等命令。其中edit和change的命令参数和功能相同。打开一个表后,browse命令的功能是浏览窗口显示数据。edit/change命令的功能是在编辑窗口显示数据。命令:browse[范围][fields字段名表][for条件表达式][last]记录在窗口中的两种显示方式:浏览方式编辑方式两种显示方式可以通过“显示”菜单的“浏览”和“编辑”命令来切换。一个窗口也可以分成两个显示区域。数据录入的几点说明:(1)在字符型字段内输入的数字系统当作字符处理;(2)逻辑型字段只能接受T,Y,F,N这4个字符,只显示T和F;(3)D型数据默认为美国格式,即mm/dd/yy,使用SETDATAANSI命令可将其设置为yy.mm.dd格式;(4)输入M型和G型字段值,需双击鼠标或按组合键:CTRL+PgDn或CTRL+PgUp,一旦M型和G型字段非空,则字段标志首字母将以大写表示,即:Memo或Gen(5)存盘:CTRL+W4.1.3数据表的打开与关闭(一)USE[表文件名][EXCLUSIVE][shared]说明:1、命令功能:在当前工作区打开或关闭表(含数据库表和自由表);2、缺省文件名选项,表示关闭当前工作区中的表;3、打开表时,自动关闭先前已打开的表;4、USE?命令等效于“文件”菜单的“打开”命令。此时若要进行修改操作,则需选定“独占”复选框。此时相当于执行命令:USE表文件名EXCLUSIVE(二)关闭表的一些方法命令功能CLEARALL关闭表,选择工作区1,释放内存,但保留系统变量CLOSEALL关闭数据库和表,选择工作区1,关闭设计器CLOSEDATA关闭数据库。无库打开则关闭自由表,选择工作区1CLOSEDATAALL关闭数据库和自由表CLOSETABL关闭数据库表,不关数据库。无库打开时关自由表CLOSETABLALL关闭数据表和自由表,不关数据库QUIT退出VF环境4.2.1记录指针与表的显示表刚打开时,记录指针总是指向第一条记录。在数据库的操作过程中,可利用指针定位命令调整指针的指向,使其指向需要的记录。当前指针所指的记录称为当前记录。1、指针绝对定位(GO|GOTO)命令格式:GO数字表达式/TOP/BOTTOM命令功能:将记录指针移到一个指定的记录上,而不管记录指针原来所处的位置。如:.use学生.go3.disp4.2表的显示与维护2、指针相对定位(SKIP)命令格式:skip[±数字表达式]命令功能:以当前记录为基准点,将指针向上(-)或向下(+)移动n条记录,如无具体数值,则默认为1。如:use学生skipgobottomskip?eof()&&.t.3、显示表记录list/disp[范围][fields字段表][for/while条件][off][toprinter]说明:(1)使用off选项表示显示时不显示记录号。(2)list和display的区别为:①在缺省所有选项情况下,list显示全部记录,而display只显示当前记录。②list显示不停顿,而display分屏显示。4.2.2表记录的添加根据记录的位置分为插入和追加命令1、插入新记录(INSERT)INSERT[BEFORE][BLANK]命令功能:在指定(当前)记录的后面或前面插入一条或多条记录,也可插入空记录。如:use学生go4insertbeforeblank•不带[BLANK]子句将打开表编辑窗口;•[BLANK]子句直接插入一条空记录,不出现编辑窗口。2、追加新记录(append)append[blank]命令功能:在指定(当前)记录的后面或前面插入一条或多条记录,也可插入空记录。如:use学生appendblank•不带[blank]子句将打开表编辑窗口;•[blank]子句直接插入一条空记录,不出现编辑窗口。4.2.3记录的删除与恢复在vfp中,记录的删除分为“逻辑删除”和“物理删除”两种。逻辑删除:为记录打删除标记,可恢复。在浏览窗口中,将记录的“删除标记区域”选中(CTRL+T),属于交互式;命令方式可使用DELETE命令。取消删除标记可使用RECALL命令。物理删除:将记录从磁盘上删除,不可恢复。选择“表”菜单的“彻底删除”命令,属于交互式;命令方式可使用PACK命令。1.逻辑删除命令格式:delete[范围][for/while条件]该命令对满足条件的记录作上删除标记,此时记录仍存在。如果命令不使用任何子句,则只对当前记录作标记。(已打删除标记的记录不能再进行逻辑删除)打上删除标记的记录仍可以参与数据操作,如果不希望这样,可使用命令setdeleon命令将其屏蔽。setdeleon|off命令指定visualfoxpro是否处理标有删除标记的记录,以及其他命令是否可以操作它们。2.逻辑删除的记录是可以用命令恢复的命令格式:RECALL[范围][FOR/WHILE条件]常见用法:RECALL-----恢复当前一条记录RECALLALL-----恢复库中所有记录RECALLFOR条件----条件恢复3.删除带有删除标记的记录(物理删除)PACK删除表记录时:此命令应在DELETE命令之后使用。4.无条件完全删除记录命令格式:ZAP:使用该命令后,当前表中所有记录被无条件删除,只保留表结构。相关命令:SETSAFEON/OFF4.2.4表数据的替换命令格式:replace[范围]字段1with表达式1[additive][字段2with表达式2[additive]],….][for条件]命令功能:用with之后表达式的值替换with之前字段的值。[additive]选项只对替换备注字段有用,把对备注字段的替代内容追加到备注字段的后面。REPLACE命令示例:假设表student.dbf的表结构为:xm(C,8);xh(n,8);nl(n,2);xb(L);bz(4)并有20条记录。usestudentgo4fe1=“张三”fe2=stuff(xh,7,2,”21”)fe3=18fe4=.t.fe5=“新同学”appendblankreplxmwi
本文标题:第4章表的基本操作与维护-
链接地址:https://www.777doc.com/doc-2110001 .html