第2章表的基本操作2.1表的建立与修改一、表结构的建立与数据输入二、表结构及表数据的修改2.2表达式一、常量、变量、运算符及函数二、VisualFoxPro常用命令子句2.3表的维护命令一、表与表结构的维护二、表记录操作章节安排2.1表的建立与修改表由结构和数据两部分组成数据表(简称表):它是组织和存放相关数据的基本对象。其组成:表的结构(字段的属性)记录(数据)分类:数据库表:附属于某个数据库文件的表自由表:不附属于任何数据库文件的表表文件扩展名为DBF,如设备清单表(SB.DBF)一、表结构的建立与数据输入表文件的三个要素数据表名、数据表的结构、数据表的记录(内容或数据)被称为是表的三个要素。①数据表的文件名它是数据表的主要标识。数据表文件的扩展名为.DBF(其备注文件的扩展名为.FPT)②数据表的结构字段名、字段类型和字段长度等组成。同一个表中不允许有同名的字段,最多可以有254个字段。③数据表中的记录指二维表中的内容。不包含记录的数据表称为空表。一条记录的长度等于各字段长度的和加1。记录的多少决定了数据表文件的大小。表结构的建立:•一是设计表的结构•二是建立表的结构1、设计表结构任务:定义字段属性,包括字段名、类型、宽度和小数位数等字段名:标识字段,以字母或汉字开头,长度不超过10字段类型:字符型、数值型等字段宽度:允许字段存储的最大字节数。大多数据需要自行设定合适的宽度。部分数据由VFP规定的宽度。小数位数:数值型、浮点型及双精度型字段需规定小数位数。小数点和正负号占一位思考:若一个表文件的数值型字段要求保留5位小数,那么它的宽度最少应当定义成多少?6类型代号说 明字段宽度字符型C存放汉字或字符最多254个字节数值型N存放由正负号、数字和小数点所组成,且能参与数值运算的数据最多20位货币型Y与数值型不同的是数值保留4位小数8个字节日期型D格式为mm/dd/yy8个字节日期时间型T存放日期与时间。04/29/068:30:15AM8个字节逻辑型L存放逻辑值T或F,Y或N1个字节浮动型F同数值型整型I存放不带小数的数值4个字节双精度型B存放精度要求较高的数值8个字节备注型M能接受一切字符型数据,数据保存在与表的主名相同的备注文件中,其扩展名为.FPT4个字节通用型G存放多媒体数据,数据也存储于扩展名为.FPT的备注文件中4个字节建立表前的准备在建立表结构以前,首先应该根据用户的需求,明确所要创建的表中应该包含哪些字段,每个字段的名称、类型和宽度。创建表前的准备字段名的命名与变量命名规则相同。而且自由表中的字段名≤10个字符,数据库表中的字段名≤128个字符。具有前导零的非计算数字信息一般应当设成字符型。例如:编号、学号、电话号码、邮编等。与日期有关的数据应当设成日期型。其宽度固定是8。能用是/否表示的信息应当设成逻辑型。其宽度固定是1。需要进行计算的信息应设计成数值型的。要定义其宽度和小数位数。超过254个字符的信息应设计成备注型的。其宽度固定是4。图片等多媒体信息应设计成通用型的。其宽度固定是4。一般姓名、性别等信息应设计成字符型的。表2-1创建表前的准备对表2-1学籍表进行设计后的字段属性编号名称启用日期价格部门主要设备备注商标016-1车床03/05/9062044.6121.T.Memogen016-2车床01/15/9227132.7321.T.memogen037-2磨床07/21/90241292.1222.T.memogen038-1钻床10/12/895275.0023.F.Memogen100-1微机08/12/978810.0012.T.memoGen101-1复印机06/01/9210305.0112.F.memogen210-1轿车05/08/95151000.0011.F.memoGen设备清单表SB设备清单(SB)结构可表示为:SB(编号C(5),名称C(6),启用日期D,价格N(9,2),部门C(2),主要设备L,备注M,商标G)产品名称单位规格不变价(元)现行价(元)最高储备额最低储备额备注灯泡只220V—15W0.801.0060000600灯泡只220V—150W1.802.0040000400灯泡只220V—300W2.803.0020000200节能灯只220V—4W6.008.00100001000节能灯只220V—16W12.0015.00100001000日光灯只220V—8W6.007.00100001000日光灯只220V—20W7.008.001000001000某厂产品品种规格、单价及定额储备情况思考:请设计该表的结构?2、建立表结构设置默认目录/路径命令方式:setdefaultto路径名对话框:工具菜单“选项”-“文件位置”选项卡-“默认目录”选项-选定“修改”按钮-“确定”按钮-选定“设置为默认”命令窗口的两个附加功能选定某些菜单命令或按钮后,命令窗口内会自动显示相应的命令;执行过的命令依次保留在命令窗口中,可供用户修改、重用或剪贴,有效地减少了命令的重复输入。两种方法:通过菜单方式打开对话框及表设计器来建立通过命令方式打开对话框及表设计器来建立,执行CREATE命令用命令方法创建表命令格式:CREATE[路径\]表名[.DBF]功能:在指定盘、文件夹中建立一个表文件。启动表设计器,等待用户创建表的结构。例1在D盘VFP文件夹中建立一个表xjb.dbf命令格式:setdefaultto路径功能:将指定的盘、文件夹设置为缺省的路径。例如:如果在创建XJB.DBF表文件之前,先执行了设置缺省路径的命令:setdefaulttoD:\VFP则在创建表命令中就可以省略路径:CREATEXJB例2在F:\DB文件夹建立设备清单表SB结构3、表数据的输入建立表结构后在记录编辑窗口立即输入数据重新打开编辑窗口输入数据1)数据输入要点a.表的数据可通过记录编辑窗口按记录逐个输入;b.逻辑字符只接受T、Y或F、N之一;c.日期型数据必须与日期格式相符。d.备注型或通用型字段可通过编辑窗口编辑;2)备注型字段数据的输入3)通用型字段数据的输入、编辑与删除a.可通过剪贴板粘贴,或通过编辑菜单的插入对象命令插入图形;b.若要修改已存入的图形,必须使用图形编辑工具;c.若要删除已存入的图形,必须先打开通用型字段窗口,然后选定编辑菜单的“清除”命令。4)编辑窗口的打开和关闭a.打开编辑窗口先打开表,选定显示菜单的浏览命令。b.关闭数据存盘:单击窗口的关闭按钮或按Ctrl+W键放弃存盘:按Esc或Ctrl+Q键5)表的打开和关闭a.用USE命令打开和关闭表命令格式:USE[文件名]&&注意路径功能:在当前工作区中打开或关闭表。表打开时,若该表有备注型或通用型字段,则会自动打开同名的.FTP文件。b.打开表的其它方法方法一:通过文件菜单的打开命令打开表方法二:通过窗口菜单的数据工作期打开表。c.关闭表的其它方法a)可用以下命令方式之一关闭表•CLEARALL:关闭所有的表,并选择工作区1;从内存释放所有内存变量及用户定义的菜单和窗口。但不释放系统变量。•CLOSEDATABASE[ALL]:关闭当前数据库及其中的表;若无打开的数据库,则关闭所有的自由表,并选择工作区1;有ALL则关闭所有打开的数据库及其中的表和所有打开的自由表。•CLOSEALL:关闭所有打开的数据库与表,并选择工作区1;关闭表单设计器、查询设计器、报表设计器、项目管理器。•CLOSETABLES[ALL]:关闭当前数据库中的所有的表,但不关闭数据库。若无打开的数据库,则关闭所有的自由表。有ALL则关闭所有数据库中所有的表和所有自由表,但不关闭数据库。b)通过窗口菜单的数据工作期命令关闭表。c)通过退出VFP来关闭。文件菜单的“退出”命令或QUIT命令。1、表结构的修改1)通过打开表设计器来修改表结构a.命令方式打开,MODIFYSTRUCTUREb.菜单方式打开,打开表后可通过“显示”菜单打开2)通过表向导来修改表结构a.“文件”菜单-新建对话框“表”选项按钮-“向导”按钮b.“工具”菜单-向导命令的表子命令2、表数据的修改二、表结构及表数据的修改1)记录显示方式:编辑和浏览。打开表后可通过“显示”菜单切换2)浏览窗口的操作:界面操作方式、命令方式(BROWSE)一窗两区(通过窗口分割器拖动实现)3)追加与删除记录•追加方式和追加新记录•记录的逻辑删除与物理删除菜单菜单命令等效命令功能显示追加方式在表末追加一个新记录,连续追加追加新记录APPEND在表末追加一个新记录追加记录APPENDFROM在表末追加一个批记录,来源为其他表、文本文件等之一删除记录DELETE删除当前记录恢复记录RECALL恢复当前记录彻底删除PACK将具有删除标记的记录从磁盘上删除表追加与删除记录的部分菜单命令显示表的结构格式1:LISTSTRUCTURE格式2:DISPLAYSTRUCTURE功能:将当前表的结构在主窗口中显示出来。例:显示表xjb.dbf的结构输入命令表的结构的修改命令格式:MODIFYSTRUCTURE功能:修改当前表的结构。说明:将字段宽度变小的修改操作要慎重!表的结构的修改举例例修改cjb.dbf表的结构,增加两个字段:ZF(总分):用于存储QZCJ和QMCJ的和pjf(平均分):用于存储QZCJ和QMCJ的平均值。二者都是:数值型,宽度为3,小数为0USEcjbMODISTRU2.2表达式表达式:由常量、变量、函数以及运算符组合在一起的具有计算、判断、数据类型转换等作用的式子。表达式变量须通过输入取得初值。例如,2*PI()*R一、常量、变量、运算符及函数(一)常量(二)变量1、内存变量2、字段变量3、系统变量4、内存变量的显示与清除(三)运算与运算符(四)函数2.2表达式(一)常量:固定不变的数据。类型包括:数值型(N)常量:由0-9、正负号和小数点组成,长度1-20位字符型(C)常量:由字符、数字和定界符(‘’、“”、[])组成。长度0-254位,每个字符占1个字节。例如:“微机”,‘3.1415926’等;货币型(Y)常量:类似数值型,占8字节。以$符号开始。小数位数超过4位时系统按四舍五入处理逻辑型(L)常量:只有真和假两种值,占1个字节日期型(D)常量:用于保存不带时间的日期值,占8字节。一、常量、变量、运算符及函数(一)常量:固定不变的数据。日期时间型(T)常量:用于保存日期和时间值,占8字节VFP默认使用严格的日期格式。严格日期模式:{^yyyy-mm-dd[,][hh[:mm[:ss]][a/p]]},写法如{^2003/08/30}。设置严格的日期格式:SETSTRICTDATETO1;设置通常的日期格式:SETSTRICTDATETO0。思考:在默认状态下输入2008年3月4日?在通常日期格式下输入2008年3月4日?在严格日期格式下输入2008年3月4日上午8:00?(二)变量:在程序运行过程中其值允许变化的量,包括内存变量、字段变量和系统内存变量等种3种1、内存变量用来存储数据,定义内存变量时需为它取名并赋初值。1)内存变量命令规则:以字母或下划线开始,由字母、数字、下划线组成,至多128字符。不可与系统保留字同名。2)内存变量赋值命令:两种命令格式:•内存变量名=表达式,如:S=‘VFP’•STORE表达式TO内存变量名表如:S=’VFP’STORE4TOn1,n2,n3注:STORE命令可一次给多个变量赋同值,变量名用逗号分开,但不能多值赋同一变量或多个变量。思考:指出正确的赋值方式STORE1TOX,Y,ZSTORE1TOXYZSTORE1,2,3TOXSTORE1,2,3TOX,Y,Z3)表达式值显示命令格式:?表达式表&&换行显示??表达式表&&紧接显示功能:计算表达式的值,并将其显示在屏幕上。说明1:?表示从屏幕下一行的第一列起显示结果(竖着写);说明2:??从当前行的当前列起显示