VFP-数据-表达式-函数_第1页
VFP-数据-表达式-函数_第2页
VFP-数据-表达式-函数_第3页
VFP-数据-表达式-函数_第4页
VFP-数据-表达式-函数_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、段云娜1、掌握六种常量的特点及书写规则。2、掌握变量的分类及如何向变量赋值。3、了解一维数组及二维数组的定义及赋值语句。4、熟记表达式的概念及分类,掌握运算符的优先级。5、掌握函数的组成、分类及意义、熟记常用函数的拼写。6、熟练掌握如何建立和修改数据表的表结构。7、熟练掌握表数据的输入方法。8、掌握数据表的维护方法。9、掌握VF命令的格式及书写规则数据是计算机程序处理的对象,也是运算的结果。数据的类型决定了其在计算机中的存储方式和使用方式。在Visual FoxPro中,将数据分为七种类型: 字符型数据是通常表示文本类型的信息。它由中/英文字符、数字、空格和各种专用符号组成,长度是0254个字

2、符。用定界符括起来的字符串为字符型常量。如:“123”、文化文化、%abc。数值型数据用来表示数量的大小,包括五种类型:数值型(Numeric):最大长度20位,包括数字、正负号和小 数点,可以使用科学记数法形式书写。浮点型 (Float) : 与数值型数据等价,以浮点格式存储双精度型(Double):高精度数值型数据,只用于表中类型表中类型。 浮点格式存储整型 (Interger) : 不包含小数部分的数值型数据,以二进 制形式存储货币型(Currency):用来表示货币值,格式与数值型类似 但数值前要加$ $符号。以4位小数存储 表示日期,默认格式 mm/dd/yy,存储长度固定8位。 例

3、如:09/05/06 存储长度固定为8位,默认格式mm/dd/yyyy hh:mm:ss例如例如: 09/05/2006 12:22:54 描述客观事物的真假,表示逻辑判断结果。逻辑数据只有真真(.t.)(.t.)和假假(.f.)(.f.)两个值,存储长度为1 1位 用于存放较长的字符型数据。 只用于表中字段,字段长度固定为4位,备注型数据没有长度限制,仅受限于现有的磁盘空间,它的数据内容存放在与数据表同名的备注文件中。表中只存放一个指向这个备注文件的指针。 存储OLE对象,可以是电子表格、文档、图片等,只能用于数据表中,数据存储方式同备注型数据相同。 OLE(Object Linking a

4、nd Embedding对象连接与嵌入)数据容器 :用户存放数据的地方,包括常量、变量、数组、记录、对象。(1 1)数值型常量:)数值型常量:由0-90-9、小数点小数点和正负号正负号构成。 例:112、3.14125、-7.34、5.123E12(2 2)货币型常量:)货币型常量:数值前加“$ $”符号。 如:$123.473(3 3)字符型常量:)字符型常量:即字符串。定界符不不能是全角;左右必须匹配匹配;同一种定界符不能嵌套同一种定界符不能嵌套。 例:“计算机”、 “123” 、 、(空串)(4)日期型常量:包括年、月、日三部分,用一对花括号花括号括起来,各部分之间用分隔符分隔符分隔,系

5、统默认分隔符为“/ /”,其它还有“- -”、“. .”和空格空格。日期型常量有传统和严格两种格式日期型常量有传统和严格两种格式:n 传统的日期格式传统的日期格式月、日各2位,年份2位或4位,命令set century on/offset century on/off控制;v 系统默认美国日期格式系统默认美国日期格式mm/dd/yy, mm/dd/yy, 由命令由命令set date toset date to控制控制例如:set date to ymdymd 06/02/27set date to dmydmy 27/02/06 例如:set century on 09/01/2006 se

6、t century off 09/01/062003/09/01set century offset century offset mark to set mark to “. .”set date to set date to mdymdy?2003-09-01?2003-09-01严格的日期格式格式:yyyy-mm-dd yyyy-mm-dd 说明:不受set date影响,必须有脱字符、年份必须4 位,年月日顺序不能改变; 在任何情况任何情况下使用,而传统格式只能在执行如下 命令后才能使用: set strictdate to 0set strictdate to 0 若只使用严格日期格

7、式,则执行如下命令: set strictdate to 1set strictdate to 1 可用命令set mark to set mark to 设定日期分隔符例:例: set century on set century on set mark to ( set mark to (默认分隔符默认分隔符) ) set date to set date to ymdymd ?2003-09-01 ?2003-09-0109.01.03(5) (5) 日期时间型常量日期时间型常量 格式:,。 说明:日期部分也有传统和严格两种格式 时间部分的格式为:hh:mm:ssa | p。 例:SET

8、 MARK TO ? 2003-09-01 11:10:10, 2003-09-01 15:10:10 (6) (6) 逻辑型常量逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值。 逻辑真的常量:.T. ,.t. ,.Y.和.y.。 逻辑假的常量:.F. ,.f. ,.N.和.n. 举例:?3445 ?3445 ?123=123 ?123=12309/01/03 11:10:10 AM 09/01/03 3:10:10 PM.F.T. 分为字段变量和内存变量两大类。可以存不同类型不同类型数据。 命名规则u以字母、汉字、下划线开头u后跟字母、汉字、下划线、数字,长度不超过128个字符u变量命名一般

9、不与系统保留字同名u建议第一个字母采用小写并能表明该变量的类型 例:cNamecName、n n工资、工资、nValnVal、dtimedtime、c c姓名姓名 分类:简单简单内存变量内存变量和系统内存系统内存变量变量。 简单简单内存内存变量变量直接赋值,不必事先定义。 例:X=10 给变量X赋值为10 系统系统内存内存变量变量由VFP系统运行时自动建立、使用,名字都以下划线开头,例:_dos,_screen等。 说明:说明:内存变量可与字段变量重名,这时访问变量时,内存变量可与字段变量重名,这时访问变量时, 系统会优先认为是字段变量,因此若访问内存变系统会优先认为是字段变量,因此若访问内存

10、变 量时,必须在内存变量前加前缀量时,必须在内存变量前加前缀M.M.或或M-M-。 数组元素可通过数组名及相应的下标来访问。 例: a( (4) ) 每个数组元素相当于一个简单内存变量,可以给各个元素 分别赋值。在Visual FoxPro中,一个数组中各个元素的数据类型可以不同。 例:a(1)=34 a(2)=“数组的概念” 数组在使用前必须先定义先定义,说明是一维还是二维数组,以及数组名和数组大小(下标从1开始)。数组定义后,每个数据元素的初值自动为.F.F.。定义数组:定义数组: DIMENSION DIMENSION ( ,)2,) DECLARE DECLARE ( ,2,) 使用数

11、组元素应注意下列问题:v 一切使用简单内存变量的地方,均可使用数组元素;一切使用简单内存变量的地方,均可使用数组元素;v 数组元素的数据类型由所赋值的数据类型决定;数组元素的数据类型由所赋值的数据类型决定;v 一个数组中各元素的数据类型可以相同,也可以不同;一个数组中各元素的数据类型可以相同,也可以不同;v 可以使用一维数组方式访问二维数组;可以使用一维数组方式访问二维数组; 例:bb(1)bb(1,1)、bb(4)bb(2,1)例:例:DECLARE DECLARE aaaa(5),bb(2,3)(5),bb(2,3) 创建两个数组创建两个数组aaaa和和bbbb aaaa有有5 5个数组元

12、素:个数组元素:aaaa(1)(1)、aaaa(2)(2)、aaaa(3)(3)、aaaa(4)(4)、aaaa(5)(5) bb bb有有6 6个数组元素:个数组元素:bb(1,1)bb(1,1)、bb(1,2)bb(1,2)、bb(1,3)bb(1,3) bb(2,1) bb(2,1)、bb(2,2)bb(2,2)、bb(2,3)bb(2,3)格式1: STORE 表达式 TO 变量名表格式: 内存变量名 表达式功能:格式1计算表达式的值并赋给一个或多个内存变量 格式2只能给一个变量赋值说明:给变量赋值时,如变量不存在,则自动建立 可以通过对内存变量重新赋值来改变其内容和类型举例:举例:a

13、a=10 bb=word?aa,bb store 100 to cc,dd,bb ?aa,bb,cc,dddimension array(10)array=20?array(1)?array(2)array(1)=.f.?array(1)2020.F.10 word10 100 100 100格式1:LIST MEMORY LIKE TO PRINTER|TO FILE 格式2:DISPLAY MEMORYLIKETO PRINTER|TO FILE 功能:显示内存变量的当前信息,包括变量名、作用域、类 型、取值。说明:通配符*表示任意多个字符,?表示任意一个字符list命令滚动显示内存变量信

14、息;而display则分屏显示变量信息,超过一屏会停顿等待。 例:例:list memory like a* display memory格式1:CLEAR MEMORY 清除所有内存变量格式2:RELEASE 清除指定的内存变量格式3:RELEASE ALL EXTENDED 清除所有内存变量,包括程序中的公共变量格式4:RELEASE ALL LIKE EXCEPT 清除与LIKE匹配或与EXCEPT不匹配的内存变量例:例: RELEASE ALL LIKE a?b RELEASE ALL EXCEPT a*格式:SAVE TO ALL LIKE EXCEPT功能:将指定范围的内存变量保存

15、在内存变量文件中,内存变量文件的扩展名为.mem。 例: save to varname all like a*格式:格式:RESTORE FROM ADDITIVE功能:功能:把内存变量文件中的变量送回内存,不选ADDITIVE则送回之前先清除内存中已有的内存变量。例:例:restore from varname additive字段变量的类型:数值型、浮动型(浮点型)、整型、双精度型、字符型、逻辑型、日期型、日期时间型、货币型、备注型和通用型等当表打开时,字段变量就可以进行访问,字段变量的值就是表中某个记录中的属性值。字段变量的命名规则:字段变量的命名规则:以字母、汉字开头由字母、汉字、数

16、字、下划线组成,长度不超10个字符不可与系统保留字同名说明:函数名是系统规定的,函数名与括号间不能不能有空格自变量表可以是一个或多个以逗号分隔的自变量自变量表也可以为空,但括号不能省略 函数调用后有一个运算结果,称为函数值或返回值n函数的概念函数的概念 函数就是针对一些常见问题预先编好的一系列子程序。当要解决此类问题时,就可以调用相应的函数即执行该子程序,得到结果。n函数调用的格式:函数调用的格式:函数名函数名()MAX(27.4 MAX(27.4 ,98.998.9,-7)-7)DATE( )DATE( )ABS(-78.6)ABS(-78.6)n求绝对值函数ABS格式:ABS( )举例:x

17、=abs(-5)y=-3.6 ?abs(45) ?x ?abs(y)n求整函数求整函数INT,不进行四舍五入,不进行四舍五入格式:格式:INT( )举例:举例:?int(12.9)m=int(-13.7)n四舍五入函数四舍五入函数ROUND格式:格式:ROUND( , )举例举例:?round(12345.6789, 2) ?round(12345.6789, 0) ?round(12345.6789, -1)说明:说明:保留小数位可以是负数负数,此时从小数点向前数位数指数函数EXP、自然对数函数LOG、平方根函数SQRT、格式:EXP| LOG | SQRT ( )举例:a=exp(0) x

18、=1 ?sqrt(2) ?a ?log(x) ?sqrt(4)n取模取模 (求余数求余数)函数函数MOD格式:格式:MOD( , )功能:功能:取 除以 的余数,符号与数值表达式2符号一致。举例:举例:?mod(20, 3) ?mod(20, -3) ?mod(-20, 3) ?mod(-20, -3) 2 -1 1 -2 n求最大值求最大值MAX、最小值、最小值MIN格式:格式:MAX| MIN ( , , , )举例:举例:a=34 b=65 ?max(a, b, 30) ?min(a,b)(1) 判断子字符串函数AT格式:AT( , )功能:求 在 的起始位置起始位置数值。说明:中不包含

19、,函数值为零若的值含有两个以上的的值,则函数给出第一个第一个值的位置。大小写字母在检索中视为不同。举例:举例:?at(“数据数据”, “计算机数据管理计算机数据管理”)?AT(“book”, “computer”) , at(“a”, “I am a teacher”)?at(“th”, “This is a table”)(2) 取子串函数SUBSTR格式:SUBSTR ( , , )功能:对从给定的开始截取指定 长度的字符,生成一个新的字符串;说明:若无或大于后面剩余的字符个数,则截 至末尾;若 大于字符串长度,则输出空串 (3) 取左子串函数取左子串函数LEFT格式:格式:LEFT (

20、, )功能:功能:LEFT 从 左边截取由 的 值指定的字符,生成一个新的字符串。 (4) 取右子串函数取右子串函数RIGHT格式:格式:RIGHT ( , )功能:功能:从右边截取由的值指定 的字符,生成一个新的字符串。(5) 宏代换函数 格式:字符型内存变量.功能:替换出的值。即将值的定界符去掉,使其可能代表一个变量名、文 件名、命令、表达式等。说明:在表达式中使用该函数时,如果函数中的字符型内存 变量名与其后面的字符无明显分界时,应使用圆点将 它们隔开。例如:A=北京 B=中国 ? &A.是&B.首都 (6)字符串长度函数字符串长度函数LEN格式:格式:LEN()功能:功

21、能:测试字符表达式的结果中包含多少个字符例如:例如:?LEN(“FOXPRO数据库管理系统!”) (7) 删除首部和尾部空格的函数格式:LTRIM|TRIM |RTRIM |ALLTRIM ( )功能:LTRIM是删除字符串首部的空格; TRIM 或RTRIM是删除字符串尾部的空格; ALLTRIM删除字符串首部和尾部的空格。 (8) 构造空格函数构造空格函数SPACE格式:格式:SPACE( ) 功能:功能:产生由 的值决定的空格数。(9)生成重复字符串函数生成重复字符串函数REPLICATE格式:格式:REPLICATE( , )功能:功能:把的值(字符串)重复由 的值指定的次数,生成新的

22、字符串。 (10) 大小写字母转换函数LOWER|UPPER格式:LOWER|UPPER ( )功能:LOWER把 中的大写字母转换为小写字母 UPPER把 中的小写字母转换为大写字母(11) (11) 字符串替换函数字符串替换函数STUFFSTUFF格式:格式:STUFF(STUFF(,)2)功能:功能:从指定位置开始,用指定的字符串替换 中指定的字符串。说明:说明:中的字符个数与中的字符个数可以不等;如果为0,则插入;如果为空字符串,则删除中指定字符。 举例:?stuff(热烈欢迎各位来我校参观指导!,9,4,各校领导)3日期和时间函数(1)系统日期和时间函数DATE| TIME|DATE

23、TIME格式:DATE () | TIME() | DATETIME( )功能:DATE()返回当前系统日期,函数值为日期型; TIME()以24小时制返回当前系统时间,值为字符型; DateTime( )返回当前系统日期时间,为日期时间型。(3)星期函数星期函数DOW|CDOW格式格式1:DOW ( )格式格式2:CDOW ( )功能:功能:格式1给出 指定的日期是一星期的第几 天。1表示星期日,2表示星期一,7表示星期六; 格式2给出星期几的英文名称,函数值为字符型。(2)年、月、日函数年、月、日函数YEAR|MONTH|DAY格式:格式:YEAR|MONTH|DAY( )功能:功能:从

24、中求出年份、月份、日份的数值。4类型转换函数(1) 字符转换为数值函数VAL格式:VAL()功能:将字符型数据转换为数值型数据。说明:若由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余小数四舍五入。若由非数字字符打头,则转换为0.00。若由数字字符打头,且混有非数字字符时 则转换到第一个非数字字符为止。例:例:?VAL(1234.567) ,VAL(Fox) , VAL(1234FOX.5678)主屏幕显示:主屏幕显示:1234.57 0.00 1234.00(2) 数值转换为字符函数STR格式:STR( , , )功能:把 的运算结果转换为指定长度的字符串。 STR(345

25、.678,5,2) 345.7说明:应包括小数点在内,不指定长度时,系统默认整数位10位。 STR(123456789.56) 123456790若指定小于整数位数,则用一串“*”号表示数据溢出,“*”的个数为长度值;若为0,则返回空字符串。 STR(123.456,2) * STR(123.567,0) 转换时要四舍五入(3) 字符转换为日期函数CTOD格式:CTOD( CTOD( ) )功能:将符合yy/mm/dd 、mm/dd/yy日期格式的字符串转换 为相应日期,不符时为“ / / ”。 (4) 日期转换为字符函数DTOC格式:DTOC( DTOC( , ,1 1) )功能:将转换为相

26、应的字符串。说明:不选用1时,按mm/dd/yy格式转换;选用1时,按 yyyymmdd格式转换。 (5) ASCII码值转换为字符函数码值转换为字符函数CHR格式:格式:CHR( CHR( ) )功能:功能:将表示的ASCII码值转换为相应的字符。 (6) 字符转换成字符转换成ASCII码值函数码值函数ASC格式:格式:ASC( ASC( ) )功能:功能:返回最左边的一个字符的ASCII码值。 5测试函数(1) 值域测试函数BETWEEN格式:BETWEEN(,)功能:判断一个表达式的值是否介于另外两个表达式的 值之间。当值大于等于且 小于等于时,函数值为逻辑真(.T.), 否则函数只为逻

27、辑假(.F.)。举例:?between(34,78,96) .F.(2) 空值(NULL值)测试函数ISNULL格式:ISNULL()功能:判断一个表达式的运算结果是否为NULL值,是则 返回逻辑值.T.,否则返回逻辑值.F.。举例:store .NULL. to x /store NULL to x?x , ISNULL(x)(3) “空空”值测试函数值测试函数EMPTY格式:格式:EMPTYEMPTY( 1)功能:功能:测试表达式的运算结果是否为空,返回逻辑真.T. 或逻辑假.F.说明:说明:空值对C型指空串、空格、制表符、回车、换行, D和T型是指空值,如ctod(),其它型是指0值。(

28、4) 数据类型测试函数VARTYPE格式:VARTYPE()功能:测试的类型,返回一个大写字母,函数值为 字符型。若是一个数组,则根据第一个数组 元素的类型返回字符串。举例:?vartype(AAA), vartype(234) , vartype($200)(5) 条件测试函数条件测试函数IIF格式:格式:IIFIIF( ,2)功能:功能:测试的值,若为逻辑真.T.,函数返回 的值,若为逻辑假.F.,函数返回 的值。和的类型不要求相同举例:举例:x=15 ?iif(x10, x+10, x+5), iif(x10, x+10, x+5)表达式是由常量、变量和函数等通过特定的运算符连接起来的式

29、子。表达式包括两种形式: 单一的对象(例如:123, X , date()) 由运算符将运算对象连接起来形成的式子(例如:x+5)表达式按运算规则能计算出一个结果,称表达式的值表达式的值可以赋给变量,屏幕显示,或参加运算。按表达式运算结果的不同,表达式可分为以下几类数值表达式字符表达式日期时间表达式关系表达式和逻辑表达式1数值表达式由算术运算符和数值型的常量、变量、数组元素、字 段、函数组成。运算结果是数值型数据。算术运算符及运算优先级如下:函数的优先级仅次于括号2字符表达式字符表达式由字符串运算符将字符型数据连接起来形成,其运算结果仍然是字符型数据。字符串运算符有以下两个:前后两个字符串首尾

30、连接形成一个新的字符串:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。 字符串运算符的优先级相同举例:举例:a=“长春 ” b=“信息经济学院 ”?a+b, “aa” ?a-b, “aa”3日期时间表达式日期时间表达式日期时间表达式中可以使用的运算符也有和两个。日期时间表达式中可以使用的运算符也有和两个。 关系表达式由关系运算符和字符表达式、算术表达式、时间日期表达式组成,其运算结果为逻辑型常量。关系成立时,表达式的结果为.T. ,反之,表达式结果为.F. 。 关系表达式格式: 关系运算符的优先级相同n举例:举例:?2+3=6,10-11 , $10$15 ?2003-0

31、1-012002-12-28 ?.T.1.7 and 体重体重110 ?身高身高1.7 and 体重体重200 ?not 身高身高1.7 and 体重体重200 ?not (身高身高1.7 and 体重体重200) ?身高身高1.7 or 体重体重200 ?not 身高身高1.7 or 体重体重2006. 运算符优先级在每一类运算符中,各个运算符有一定的运算优先级。而不同类型的运算也可能出现在同一个表达式中,这时它们的运算优先级顺序从高到低为: 括号 函数 算术运算、字符串运算和日期时间运算 关系运算 逻辑运算一、赋值语句、显示语句、表达式 a=3.14 ?a=4.68 姓名=“王大力” ?姓

32、名 str1=“this is a table” ?“Word” 生日=1898-08-23 ?Substr(str1, 4,2)二、赋值号与比较运算符(=) x=23 ?x=3 y=46 ?y=46 z=x=y &先进行x、y的比较,将结果赋给z ?x=y=z &比较x,y,再将比较的结果与z比较 e1= not 34 .and. y=46 ?e1=not 34 .and. Y=46 &将e1与not 34比较,再将结果与y=46的比较结果进行求逻辑与。1、指出以下左边各变量的值及类型 A=10*2*3+100 B=(10*2)*3+100 C=A=B D=AB E1

33、=A=B.AND.AB E2=A=B.OR.AB E3=.NOT.A=B.AND.AB E4=.NOT.(A=B.AND.AB) E5=.NOT.(A=B.OR.AB) E6=“ABC”$BDABCD”.AND.A=B.OR.(10+5)10*5 E7=E6.AND. “C” + ”A” $ “A”2、在命令窗口中输入如下命令:A=“This is a computer”B=“Its mine”写出满足下列要求的命令:取A的第8个字符赋给C取A的左边7个字符赋给D取A的右边4个字符赋给E求出字符A、B的长度判断A中是否包含D及E(两种方法)3、上机执行下列命令,熟悉函数的功能(1)B=DTOC

34、(DATE( ) , 1)? “今天是:”+left(B,4)+“年”; +iif(subs(B,5,1)=“0”,subs(B,6,1),subs(b,5,2); +“月”+right(B,2)+“日” /*日子也可按月份处理方法处理(2)X=STR(12.4, 4, 1) (3) X=“奔腾586” Y=RIGHT(X, 3) Y=“个人计算机” Z=“&x+&y” ?LEN(X), RIGHT(X,3)+Y ?Z,&Z ?”&X.&Y”, X+Y(4)?AT(“人民”,“中华人民共和国”)?VAL(SUBSTR(668899,5,2)+1?SUBS

35、TR(668899”, 3)-1(5)DD=DATE()?str(year(dd),4)+”年”+str(month(dd,2)+”月“+str(day(dd),2)+”日”数据表的概念在Visual FoxPro中,一张二维表对应一个数据表,称为表文件,它是扩展名为.dbf的文件n数据表的分类数据表的分类 数据库表:包含在数据库中的表数据库表:包含在数据库中的表 自自 由由 表:不包含在任何数据库中而独立存在的表表:不包含在任何数据库中而独立存在的表 自由表可以添加在数据库中而成为数据库表,数据库表自由表可以添加在数据库中而成为数据库表,数据库表也可以从数据库中移出而成为自由表。也可以从数据

36、库中移出而成为自由表。 1) 数据库的概念把有关系的表存放在同一数据库中,确定它们的关联关系,数据库中的数据才能被更充分的利用。数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据表及其相关的数据库对象进行统一组织和管理。数据库实际是一个扩展名为dbc的文件,与之相关的还会自动建立一个扩展名为dct的数据库备注(memo)文件和一个扩展名为dcx的数据库索引文件。 1. 创建数据库创建数据库 2) 建立数据库 的三种方法:在项目管理器中建立数据库通过“新建”对话框建立数据库使用命令建立数据库 CREATE DATABASE 数据库文件名|?建立数据库需注意的几点:建立数据库需注意的

37、几点:n如果指定的数据库已经存在,可能覆盖已经存在的数据库。 set safety on(默认值),出现警告对话框请用户确认; set safety off则直接覆盖同名数据库。n 命令方式建立的数据库不显示数据库设计器,而另两种方式建立的数据库会立即打开数据库设计器。数据表的构成表名(文件名)表名(文件名)数据表的结构(字段名、字段类型、字段宽度、索引)数据表的结构(字段名、字段类型、字段宽度、索引)数据表的记录数据表的记录n字段类型和宽度字段类型和宽度 C、Y、N、F、B、I、D、T、L、 M、Gn字段名字段名:字段名就是关系的属性名或表的列名。字段名就是关系的属性名或表的列名。 数据表中

38、字段名的命名规则如下:数据表中字段名的命名规则如下:自由表字段名最长自由表字段名最长1010个字符个字符数据库表的字段名最长为数据库表的字段名最长为128128个字符个字符必须以字母或汉字开头、后跟字母、汉字、数字和下划线必须以字母或汉字开头、后跟字母、汉字、数字和下划线字段名中不能包含空格字段名中不能包含空格2. 创建数据表创建数据表 1)1)设计表结构设计表结构编号编号名称名称启用日期启用日期价格价格部门部门主要主要设备设备备注备注商标商标016-1车床车床03/05/9062044.6121.T.memogen016-2车床车床01/15/9227132.7321.T.memogen03

39、7-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设备清单表(P33)字段名字段名类型类型宽度宽度小数位数小数位数编号编号字符型字符型5名称名称字符型字符型6启用日期启用日期日期型日期型8价格价格数值型数值型92部门部门字符型字符型2主要设备主要设备逻辑型逻辑型1备注备注备注型备

40、注型4商标商标通用型通用型4设备表的结构(SB.DBF)创建方法: (启动表设计器后创建) (1) 使用命令的方法使用命令的方法 格式:格式:CREATE CREATE | |.dbf.dbf 例例: : 建立数据表建立数据表SB.DBFSB.DBF时可使用命令:时可使用命令: CREATE CREATE 盘符盘符 路径路径SBSB(2) 在项目管理器中创建在项目管理器中创建 在项目管理器中选择自由表或数据库表在项目管理器中选择自由表或数据库表, ,单击单击“新建新建”按钮,打开自由表或数据库表的表设计器按钮,打开自由表或数据库表的表设计器. .表设计器的使用说明(1)数值型数据总最大长度20

41、位,包括小数位(2)有些数据类型的宽度是固定的,不需指定:双精度数固定8个字节,整数固定4个字节货币型数固定8个字节,逻辑型固定 1 个字节日期型和日期时间型固定8个字节通用型和备注型固定4个字节(3)NULL值的确定.NULL.表示是否充许字段值为空值,它与空串和0具有不同的意义,空值就是缺值或该值还没确定,而不是任何意义的数据。关键字段不允许设为空值。空值不是一种数据类空值不是一种数据类型,只是一个值型,只是一个值,输入空值时Ctrl+0(4)设计表结构时,不能随便按回车键,否则会退出表结构的设计状态,而应使用光标移动键。索引前: 索引文件索引后:(按身高建立升序索引)索引值索引值 记录号

42、记录号 1.624 1.639 1.655 1.6710 1.73 2 1.757 1.788 1.801 1.803 1.826 u一个记录号与关键字索引值的列表,不改变表中所存储记录的顺序,只改变VFP系统读取记录的顺序。u建立在索引文件中,一个表可建立多个索引,每一索引代表一种处理记录的顺序。u分为复合索引和单索引,其对应的索引文件的扩展名分别是.CDX和.IDX;复合索引又分为结构复合索引和非结构复合索引,结构复合索引的索引文件名与表同名,而非结构复合索引需另外起名。索引索引u主 索 引:指定字段或表达式中不允许出现重复值的索引, 确保字段中输入值的唯一性。一个表只能建立一个主索引(自

43、由表没有主索引)u候选索引:与主索引类似,索引值的记录唯一的。一个表允许建立多个候选索引。u普通索引:允许表中有重复索引值的记录。在一个表中可以加入多个普通索引。u唯一索引:允许表中索引值的记录不唯一,但索引文件中不能有相同的索引值,即对于索引值相同的记录,只有记录号最小的记录号才能存于索引文件中。这是为兼容旧版本而保留的一种形式。u建立结构复合索引: l 表设计器中建立表设计器中建立 将生成将生成与表同名与表同名的索引文件,扩展名为的索引文件,扩展名为CDXCDX格式:格式:INDEX ONINDEX ON 索引表达式索引表达式 TAG TAG 索引名索引名 FOR FOR 条件表达式条件表

44、达式 ASCENDINGDESCENDING ASCENDINGDESCENDING UNIQUECANDIDATEUNIQUECANDIDATE功能:功能:建立一个结构复合索引,该索引保存在建立一个结构复合索引,该索引保存在CDXCDX文件中。文件中。l 使用命令建立使用命令建立说明:说明: 索引表达式可以是字段名或包含字段名的表达式,但只能是N、C、D、L四种类型。涉及多个字段时,索引排序是按表达式中字段从左到右进行的。一个命令只建立一个索引;ASCENDING:升序;DESCENDING:降序。默认升序。UNIQUE:唯一索引;CANDIDATE:候选索引。默认普通索引。新建立的索引成为

45、逻辑排序的依据,称为当前索引(主控索引),每个表都可以指定一个当前索引,而且只能是一个。结构复合索引文件在打开表时自动打开,只有表关闭时才会关闭;文件中可包括多个索引;当索引文件打开时,在添加、更改或删除记录时自动维护索引.如修改表中内容时索引文件没有打开,则需用reindex重新索引或重新建立索引。例:例:use sbuse sb index on index on 价格价格 tag jg descendingtag jg descending index on index on 部门部门+str(+str(价格价格,9,2) tag bmjg,9,2) tag bmjg index on

46、- index on -价格价格/1000000 tag jg1 candidate/1000000 tag jg1 candidate生成生成shebei.cdxshebei.cdx文件,其中包含文件,其中包含3 3个索引。个索引。设置字段属性 (1) 格式 用于键入格式表达式,从整体格式角度约束,确定字段值在浏览窗口或输入时采用的格式。格式设置对已有记录不做检查。举例: 1、对“编号”字段设置格式属性为:AT 2、对“名称”字段设置格式属性为:M 钻床,磨床,机床,微机 3、对“价格”字段设置格式属性为:格式代码格式代码含义说明含义说明只允许是字母符号,禁止汉字、空格或标点只允许是字母符号

47、,禁止汉字、空格或标点以英国日期格式编辑日期型数据以英国日期格式编辑日期型数据将数值型数据前面的空格位用零添充将数值型数据前面的空格位用零添充以列表的方式为字符型字段预置多个可选项,以列表的方式为字符型字段预置多个可选项,当输入或修改时用空格进行选择当输入或修改时用空格进行选择删除字段中的的前导空格和尾部空格删除字段中的的前导空格和尾部空格!将字段中的小写字母转换为大写字母将字段中的小写字母转换为大写字母使用科学记数法显示数值型字段的值使用科学记数法显示数值型字段的值格式代码列表格式代码列表(2) 输入掩码 用于“按位”指定字段的输入格式,限制输入数据的范围,控制输入的正确性,不符合规则的数据

48、不能输入,对已有记录不验证该规则。 掩码掩码含义说明含义说明可输入任何字符可输入任何字符可输入数字和正负号可输入数字和正负号可输入数字、空格、正负号可输入数字、空格、正负号在指定位置显示当前的货币符号在指定位置显示当前的货币符号用来指定小数点的位置用来指定小数点的位置,用来分隔小数点左边的整数部分,通常作为千分位隔点用来分隔小数点左边的整数部分,通常作为千分位隔点例:例:1、在、在“编号编号”字段的输入掩码文本框中输入字段的输入掩码文本框中输入“999-9”; 2、将、将$显示在显示在“价格价格”字段的前面。字段的前面。(3) 标题 显示区的标题文本框用于为浏览窗口、表单或报表中的字段标签键入

49、表达式。 例:将例:将“价格价格”字段的标题文本框中输入设备价格;字段的标题文本框中输入设备价格;(4) 字段有效性规则文本框用于输入对指定字段数据有效性进行检查的规则,它实际上是一个条件。用条件验证该字段数据合法性。 信息文本框用于指定出错提示信息,当该字段输入的数据违反条件时,出错信息将照此显示。信息内容要定界。默认值文本框用于指定字段的默认值。值类型与字段一致例例:(设置:(设置“启用日期启用日期”字段)字段)1、在有效性规则输入启用日期10”,表示只有记录号 大于10的记录才可以被逻辑删除。(3)长表名和表注释长表名最多128个字符,它出现在浏览窗口中表注释出现在项目管理器的底部。表数

50、据的输入时机: 表数据就是表记录,可以在创建表结构时直接输入表的数据;也可以建立完成后追加记录,追加记录前必须用use命令先打开表,然后使用下面方法追加记录。n输入记录的两种方法输入记录的两种方法(1) 使用使用APPEND命令命令 格式:格式:APPEND APPEND | | APPEND BLANKAPPEND BLANK 执行一次执行一次APPEND BLANKAPPEND BLANK命令后在表尾添加一条空记录命令后在表尾添加一条空记录 (2)使用菜单方法 打开表【显示】【浏览】菜单,出现 “浏览”窗口(或用brow命令)【显示】【追加方式】可一次追加多条记录或【表】【追加新记录】增加

51、一条空白记录。n记录数据输入说明记录数据输入说明(1)对于日期型字段,只需输入月份、日期、两位年份,不需输入“/” . 如set century on,则输入两位或四位年份都可以。两位时56以下认为是20- -年,以后认为是19- -年。(2)逻辑型字段输入内容时,只需输入T或F,且不分大小写(3)在输入记录的字段值时,只能输入对字段类型有效的值。如果输入了无效数据,则在屏幕的右上角弹出一个信息框显示出错信息,在更正错误之前,无法将光标移动到其它字段上去。(4)记录输入完毕后,关闭当前窗口(也可按组合键Ctrl+W),保存添加的记录信息到表文件中。若欲放弃对当前记录的编辑修改,可按Esc键。(

52、5)备注型字段和通用型字段有特殊的输入方法。两字段的实际内容保存在一个扩展名为.FPT的文件中,在定义通用型和备注型字段时,字段宽度都只有4个字节,这4个字节只存放一个指针,指向存储实际内容的.FPT的文件中,因此要确保.dbf和.fpt文件永远在一起。备注型数据显示为“Memo”或“memo”,其中“Memo”表示对应的记录的备注字段已经输入了数据,而“memo”表示该字段中没有备注内容。要为某记录的备注字段输入数据或修改其中的内容,可双击该记录的备注字段,进入备注字段的编辑窗口,编辑完后按+或单击窗口的“关闭”按钮结束并保存输入的新内容;按结束并不保存输入的新内容。 通用型字段数据显示为G

53、en或gen,Gen表示该字段有内容,gen表示没有内容。双击字段进入编辑窗口,可通过剪贴板或执行“编辑”“插入对象”菜单命令来插入图形或其他对象,也可通过Ctrl+X删除内容。保存或放弃方法与备注型数据相同。 表结构的修改范围 表结构修改包括:增加、删除字段,修改字段名、字段类型、字段宽度,建立、修改删除索引。数据库表还可以建立、修改、删除有效性规则等。n 利用表设计器修改表结构的两种方法利用表设计器修改表结构的两种方法 首先用首先用use命令打开表,然后命令打开表,然后命令:命令:MODIFY STRUCTUREMODIFY STRUCTURE2.3.1 VISUAL FOXPRO命令结构

54、及常用子句命令的构成:命令动词、语句体(若干个子句)、注释VFP命令格式: . &注释部分例:显示命令LIST的格式: LIST FOR WHILE OFF TO & 注释1命令动词命令动词 表示要执行的操作,是一个命令中必不可少的部分。表示要执行的操作,是一个命令中必不可少的部分。2语句体语句体 语句体由一系列短语语句体由一系列短语( (子句子句) )构成,可使用的常用子句如下所构成,可使用的常用子句如下所示:示: (1) FIELDS 用于选定操作的用于选定操作的“字段字段”, 中有多个字段时,字中有多个字段时,字段名之间用逗号分隔。段名之间用逗号分隔。 例:例: use

55、sb list fields 名称名称,部门部门 & 显示表中显示表中“名称名称”“”“部门部门”两列数据两列数据(2) FOR 只对表中满足“条件”的所有记录进行操作。 例:use sblist for 价格100000 &显示表中价格大于10万元的 &所有设备记录(3) WHILE 对满足条件的记录进行操作。从表中对满足条件的记录进行操作。从表中当前当前正在使用的记正在使用的记录开始向下顺序判断,当遇到第一个不满足条件的记录时,录开始向下顺序判断,当遇到第一个不满足条件的记录时,停止命令执行,而不管其后是否还有满足条件的记录。停止命令执行,而不管其后是否还有满足条件

56、的记录。例例: list fields 名称名称,部门部门 for 价格价格100000 while 主要设备主要设备=.t. 当命令中同时有当命令中同时有for和和while子句时子句时,要优先满足要优先满足while条件条件(4) 表示记录的执行范围。 VFP系统对表中的记录是逐条进行处理的。VFP为每一个打开的表设置了一个内部使用的记录指针,指向正在被操作的记录,该记录称为当前记录。记录指针的作用是标识表的当前记录。范围可以是以下四种参数之一:ALLALL:表示全部记录; NEXT NEXT :表示从当前记录开始的以下n条记录; RECORD RECORD :表示第n号记录; RESTR

57、EST:表示从当前记录到最后一条记录。 (5) TO 表示操作结果的输出去向。表示操作结果的输出去向。3命令书写格式说明 在书写命令格式时,还用到一些符号,这些符号只是在书写时使用,实际操作时并不输入。这些符号以及它们所表示的意义如下: :表示其中内容为必选项表示其中内容为必选项, , 实际命令中不包括它;实际命令中不包括它; :表示其中内容为可选项表示其中内容为可选项, , 即可以省略该子句;即可以省略该子句; | | :表示其两侧项目只能任选一项表示其两侧项目只能任选一项; :表示同类项的多次重复。表示同类项的多次重复。 4命令的书写与使用规则v每条命令以命令动词开始,以回车键结束,命令中

58、各短语的顺序是任意的。v命令动词、短语中的英文单词及函数名均可缩写为前四个字符,大小写可混用。v命令动词、语句体及其各短语之间均以空格相隔。v一行只能写一个命令,不能将两个命令写在同一行。v命令一行写不下时,可以由系统自然换行或在行尾加分号(;),回车强制换行。命令行的长度小于或等于2048个字符。 1、 表的打开打开: 将表从外存调入内存, 以便显示或对其操作菜单:【文件】【打开】(或工具栏上的“打开”按钮)命令: Use .dbf &打开默认路径下的表说明:USE命令打开一个新表的同时会自动关闭先打开的表2、表的关闭、表的关闭use use & & 关闭当前使用的表

59、关闭当前使用的表close tables close tables & & 关闭当前数据库中所有打开的表关闭当前数据库中所有打开的表close tables all close tables all & & 关闭所有打开的表关闭所有打开的表close all close all & & 关闭所有打开的表、程序文件及表单等关闭所有打开的表、程序文件及表单等clear allclear all & & 关闭所有的表、程序文件及表单等,清关闭所有的表、程序文件及表单等,清 & & 除内存变量除内存变量1同时进行数据浏览和

60、修改的操作 使用浏览器来浏览和修改数据表,打开浏览器的常用方法有以下几种: 首先打开要操作的表【显示】【浏览】。 在项目管理器中选择要操作的表,然后单击“浏览”按钮。 在命令方式下,首先用USE命令打开要操作的表,然后键入BROWSE命令。BROWSE命令的格式如下:BROWSE Fields For n交互式地对当前表记录进行编辑的命令:交互式地对当前表记录进行编辑的命令: CHANGE | EDIT CHANGE | EDIT Fields Fields For For while while 2. 数据的选择显示数据的显示也可使用LIST 和DISPLAY命令,命令格式如下: List|Display ; Fields ; For WHILE ; To Printer To File off 说明:说明:(1)Display(1)Display命令分屏显示数据,面命令分屏显示数据,面L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论