收藏 分享(赏)

第2章 数据与数据处理.ppt

上传人:dzzj200808 文档编号:2511599 上传时间:2018-09-20 格式:PPT 页数:59 大小:883.50KB
下载 相关 举报
第2章 数据与数据处理.ppt_第1页
第1页 / 共59页
第2章 数据与数据处理.ppt_第2页
第2页 / 共59页
第2章 数据与数据处理.ppt_第3页
第3页 / 共59页
第2章 数据与数据处理.ppt_第4页
第4页 / 共59页
第2章 数据与数据处理.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、第2章 数据与数据处理,2.1 数据,2.2 表达式,2.3 常用函数,2.1 数据,2.1.1 常量,2.1.2 变量,2.1.3 数组,2.1.4 系统变量,退出,(1)字符型常量(C):用定界符(单引号、双引号和方括号) 括起来的字符串。,2.1.1 常量,示例:“ade” 568 book “book的中文意思是书。”,(2)数值型常量(N),示例:5 38,-10.5,示例: -1.05E+20,(3)日期型常量(D):表示一个确切的日期,用大括号作为定界符,默认显示格式为mm/dd/yy。严格的日期格式:YYYY-MM-DD,示例:05/23/99,2001-08-16,(4)日期

2、时间型常量(T),示例: 05/16/99 12:00:00),(5)逻辑型常量(L)(示例:.t. .T. .f. .F. .Y. .N. .y. .n.),(6)货币型常量(Y)(示例:123.5) 货币型数据在内存中占用8个字节,4位小数 !货币型常量不能采用科学记数法形式.,注意:在书写时,小圆点必须成对出现或都省略。,2.1.2 变量,变量:在使用过程中其值可以改变的量。包括字段变量、内存变量、数组变量和系统内存变量。,在Visual FoxPro系统中,将表示、存储数据的常量、变量、数组、字段、记录、对象、表、数据库,都称之为数据容器。所有数据容器均需命名以相互区别,为规范各类对象

3、的命名,Visual FoxPro系统推荐了若干“命名约定”供用户参考,以提高操作命令与程序的可读性和规范性。,1 命名约定, 使用字母,下划线和数字命名。一般建议不采用汉字命名; 命名以字母或下划线开头;除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1128个字符; 避免使用 Visual FoxPro的保留字; 文件名的命名应遵循操作系统的约定。,1 命名约定,表由若干记录构成,每个记录都包含若干个数量相同的字段,同一字段在不同记录中分别对应不同的字段值,因此,字段也是变量。与其他变量不同的是,字段变量是定义在表中的变量,随表的存取而存取,因而是永久性变量。字段

4、名就是变量名;变量的数据类型为Visual FoxPro中任意数据类型,字段值就是变量值。,USE 学生花名册 GO 1 DISPLAY 学号,姓名,电话,记录号 学号 姓名 电话 1 98110301 刘雨中 110,特点:一名多值,随记录指针而改变,2 字段变量,(1)内存变量:存在于内存中的变量,常被用来存储所需要的常数、中间结果或最终结果。变量名由汉字、字母、数字和下划线组成,必须由字母或汉字开头。 (2)当内存变量名与字段变量名相同时,字段名优先于内存变量名,使用时可以在内存变量名前加上“M-”以示区别,但赋值时不能使用该前缀。,3 内存变量,内存变量的赋值操作和其它高级语言一样,必

5、须先定义后使用,3.1、对内存变量的赋值操作,STORE TO ,格式一,命令动词,去向子句,包含值的表达式,接收值的变量名表,STORE DATE()TO A 将DATE()的值赋给变量A STORE “李磊“ TO NAME将字符串“李磊”赋给NAME,例,格式二,=,接收值的变量名,赋值操作符,包含值的表达式,例,NAME = “李磊“,注意: “=”称为赋值运算符,不同于等号,具有方向性,即只能将右边表达式的结果送给左边的内存变量,且一次只能给一个内存变量赋值。 STORE命令可以同时给多个变量赋相同的值。 内存变量的值与类型在赋值时确定。 重新赋值可以改变内存变量的内容和类型。,例:

6、A=10 (而不能是10=A,此时变量是N型变量)STORE “大家好!” TO A,B (此时变量是C型变量),字段变量和内存变量的比较:,字段变量是当前表中的字段名,不能独立存在,表关闭时就找不到字段变量;内存变量可以独立于表文件存在。 除非修改表结构,否则不能改变字段变量的数据类型;内存变量可以通过赋值命令改变它的值或数据类型。 字段变量是多值变量,其当前值随记录指针的移动而改变;内存变量是单值变量,只要不重新赋值其当前值保持不变。,4、内存变量的清除命令,CLEAR MEMORY,格式一,例,格式四,RELEASE ALL LIKE | EXCEPT | ,例,格式二,格式三,RELE

7、ASE ,RELEASE ALL,清除所有内存变量,清除指定内存变量,清除所有内存变量,RELEASE ALL LIKE A*,RELEASE ALL EXCEPT A?,清除指定变量名以A开头的所有变量,5 数组与下标变量,SS(2,3)等价于SS(6),6 定义数组,在使用数组时一定要先定义 ,有两条命令可以定义数组。,DIMENSION /DECLARE(,), (,),功能:定义一个或多个一维或二维的内存变量数组。 参数描述: DIMENSION和DECLARE为定义数组的命令动词。 :指定数组的名称,其规定与内存变量名相同。(,):定义数组的维数和大小 。 说明:1、数组的下标的起始

8、值为 。2、同一数组中的数组元素可以有不同的数据类型 。3、二维数组中各元素按行的顺序依次排列 。4、数组被定义后,每个数组元素的初值为逻辑假值.F.,示例:DIMENSION AB(3),C2,3,C1,1 C1,2 C1,3 C2,1 C2,2 C2,3,7. 数组的赋值,数组元素的赋值与普通内存变量一样,可以通过STORE命令或“=”来实现。,示例: 给二维数组X和一维数组Y进行赋值。DIMENSION X(3,4),Y(3)STORE 5 TO XY(1)=325Y(2)=“ABC”Y(3)=.T.,一个数组可以统一赋以同一个值,也可以对每一个变量分开赋值,数组的复制,命令格式:=AC

9、OPY( 数组1 , 数组2),Dimension name(3) Name(1) = “p“ Name(2) =“i“ Store “g” to name(3) =ACOPY( NAME , A) ?A(1) ?A(2) ?A(3),P i g,2.2 运算符及表达式,2.2.2 数值运算符及数值表达式,2.2.3 字符串运算符及字符表达式,2.2.4 日期运算符及日期表达式,2.2.5 关系运算符及关系表达式,2.2.6 逻辑运算符及逻辑表达式,2.2.1 表达式的概念,2.2.1 表达式的概念,表达式: 由运算符和括号将常量、变量和函数连接起来的有意义的式子。,表达式按照运算结果的类型可

10、以分为 四类 字符型表达式(C) 数值型表达式(N) 逻辑型表达式(L) 日期型表达式(D),运算符:对相同类型数据进行运算操作的符号。,单个的常量、变量和函数都可以看作是最简单的表达式。,表达式显示命令,功能:计算表达式的值,并将其显示到屏幕上。区别:?换行显示,?不换行显示 。,(1)数值运算符:圆括号()、乘方(*或)、乘(*)、 除(/)、模运算或取余(%)、加(+)、减(-) (2)数值表达式:由数值运算符将数值型常量、变量、函 数等连接起来的式子,其结果为数值型。 (3)运算符的优先顺序:,2.2.2数值运算符及数值表达式,一元运算符 “+”和“-”(正负号),*或(乘方),*、/

11、、和%(乘、除和余数),+和-(加和减),“()”括号,7*8*2,90/(-5+2),7%5,字符串运算符:完全连接运算符(+) :两个字符串的简单连接;不完全连接运算符(-) :当第一个字符串的尾部有空格时,将第一个字符串尾部的空格移到第二个字符串的尾部,然后,再将两个字符串连接起来。精确比较运算符(= =) :只有当两边的字符串完全相等时,才返回逻辑真值(.T.)。,2.2.3字符串运算符及字符表达式,“abc ”+ “bcd”,abc bcd,“abc ”- “bcd”,abcbcd,”that ”= =”than”,.F.,(1)日期型运算符:加法(+)、减法(-) (2)日期表达式

12、:由日期运算符将日期型常量、变量、函数等数据连接起来的式子,其返回结果为日期型或者数值型数据。 (3)日期表达式的几种形式:+ 若干天以后的日期- 若干天以前的日期- 两个日期相差的天数,2.2.4 日期运算符及日期表达式,01/01/1996+20,10/28/1995-20,01/21/1996,10/08/1995,05/30/1998-05/20/1998,10,(1)关系运算符:小于()、等于(=)、不等于(、#或!=)、小于等于(=)、子字符串比较($)。 (2)关系表达式:由关系运算符、数值表达式、字符表 达式或日期表达式组合而成的式子,返回结果为逻辑值。,2.2.5 关系运算符

13、及关系表达式,关系运算符的两边,可以是字符表达式、数值表达式或者日期表达式,但两边的数据类型必须一致才能进行比较。逻辑型数据不能比较。,100 99,“ABC” “ABB”,“ 八戒”= 250,“教授”$ “副教授”,(1)逻辑运算符:逻辑非(.NOT.)、逻辑与(.AND.)、逻辑或(.OR.) (2)运算规则: 逻辑与运算:当参加运算的双方都为真值时,运算结果为真值,否则为假值; 逻辑或运算:当参加运算的双方都为假值时,运算结果为假值,否则为真值; 逻辑非运算:运算结果为原来的相反值。示例: 83 .AND. 8“C” .OR. “A”“C”.NOT. 5 6,2.2.6 逻辑运算符及逻

14、辑表达式,思考题:,?”教授”$”副教授” ?”教授”$” 教师” ?”FOX” $ ”FoxBASE” ?”王老师”李老师”,字符型数据按照其机内代码顺序比较,对西文字符是ASCII码的值,对于汉字是汉字国标码的值。常用的一级汉字是按找拼音顺序排序的。,先考虑5和6的关系:56 以上三个式子只可能有一个是正确的!,“李东明”和“李东”到底什么关系?!,思考题:,拓展开来,对于变量A和B(A,B可为数值型、字符型、日期型),当给A和B分别赋予某个类型相同的值后,以下三个比较运算只有一个是表达式的值为T。AB A=B AB,再来看“李东明”和“李东”的关系:,“李东明”“李东”,“李东明”“李东

15、”,“李东明”=“李东”,同样,左边这三个逻辑表达式在某一时刻也只有一个的值为T。当set exact off即非精确比较时,式3为T,故其他两个均为F。当set exact on即精确比较时,式2为T,其他两个均为F。,总结: 在set exact off(系统默认状态)下,系统对字符串进行比较时,比较到运算符右边的字符串结束即终止. 也就是说只要右面的字 符串是左边的前缀即认为这两个字符串相等。 在set exact on 状态下,系统对字符串进行比较时,比较到较长字符串结束才终止。,? “李东明” “李东” ?“李东” “李东” ?”李东” “李东明”,F T T T,2.2.3 运算符

16、的优先级,算术运算符 字符串运算符,最高级,一元运算符 “+”和“-”(正负号),*或(乘方),*、/、和%(乘、除和余数),+和-(加和减),+和-(精确连接和非精确连接),+和-(加和减),日期运算符,关系运算符,、=、=、#、!=、$、= =,各运算符优先级相同,次高级,逻辑运算符,.NOT.或!(逻辑非),.AND.(逻辑与),.OR.(逻辑或),最低级,练一练:,1、某数据表中包含如下的两个字段:性别(C,2)、奖金(N,6,2),如果需要查询奖金在100元以下或400元以上的男职工和奖金在200元以上的女职工,应该使用的条件是:A)性别=“男”.AND.奖金=400.AND.性别=

17、“女”.AND.奖金=200B)性别=“男”.AND.奖金=400.OR.性别=“女”.AND.奖金=200C)性别=“男”.AND.(奖金=400).AND.性别=“女”.AND.奖金=200D)性别=“男”.AND.(奖金=400).OR.性别=“女”.AND.奖金=200,2、假设X=10,Y=8,下列表达式中结果为逻辑真值的是:A)(XY).AND.”BOOKSTORE”$”BOOK”B)(XY).OR. ”BOOK”$”BOOKSTORE”,2.3 函数,2.3.1 字符处理函数,2.3.2 数值处理函数,2.3.3 日期和时间处理函数,2.3.4 数据转换函数,2.3.5 测试函数

18、,退出,1.计算字符串长度函数LEN():LEN(),示例:?LEN(“ABCDF”),2.生成空格函数SPACE():SPACE(),示例:?“北京”+SPACE(3)+“首都”,3.取子字符串函数:SUBSTR(,, ,示例:?SUBSTR(“城市经济”,5,4),2.3.1 字符处理函数,5,8,12,?LEN(“AB C D F”),X=“首都经贸大学” ?LEN(X),北京 首都,经济,4.大写字母转换成小写字母函数:LOWER(字符表达式),示例:?LOWER(“ABcDF”),5. 小写字母转换成大写字母函数:UPPER(字符表达式),示例:?UPPER(“abde”),6. 删

19、除字符串尾部空格函数:TRIM(字符表达式),? TRIM(“I am a ”+SPACE(10)+ “ teacher”,abcdf,ABDE,I am a teacher,7.删除字符串左边空格函数:LTRIM(),示例:A=“I” B=“ m a teacher. ” ? A+LTRIM(B),8.取字符串左边部分字符函数:LEFT(,),示例:? LEFT(“there,3”),9.取字符串右边部分字符函数RIGHT(,),示例:? RIGHT(“what”,2),Im a teacher.,the,at,10、字符串替换函数,STUFF(,),?STUFF(”毛阿敏”,3,4,“主席

20、”),毛主席,11、字符替换函数,CHRTRAN(,),? CHRTRAN (”ABCABDEFC”,”ACE”,”123”) ? CHRTRAN (”FoxBase”,”Base”,”Pro”),1B21BD3F2 FoxPro,功能: 中的一个或者多个字符与中的某个字符相匹配,就用中的对应字符(相同位置)替换这些字符. 若中字符的个数少于中字符的个数则将中相匹配的各个字符删除.若中字符的个数多于中字符的个数,多余字符被忽视.,12、字符串匹配函数,LIKE(,),?LIKE(”a*”,“abc”),LIKE(“a?”,”abc”), LIKE(“?b?”,”abc”),LIKE(“abb”

21、,”abc”),.T. .F. .T. .F.,13、计算字符串出现次数函数,OCCURS(,),STORE abracababra TO s ?OCCURS(a,s), OCCURS(b,s), OCCURS(c,s), OCCURS(e,s),5 3 1 0,14、 重复字符串生成函数REPLICATE,REPLICATE(,),?REPLICATE(ab,3),ababab,15、 子字符串检索函数AT,AT(,),Y=“Visual Foxpro 6.0 Visual Foxpro 6.0” ?AT(“Fox”,y), AT(“Fox”,y,2), AT(“Foxbase”,y),8

22、26 0,2.3.2 数值处理函数,1.取整函数INT(),格式:INT () 示例:?INT(5.96)?INT(-8.66)?INT(10.98-2.43),2.3.2 数值处理函数,2. 四舍五入函数ROUND(),格式:ROUND(,) 示例:?ROUND(345.6799,3)?ROUND(345.6799,0)?ROUND(345.6799,-2),3.取绝对值函数ABS()和符号函数SIGN,格式:ABS() 示例:?ABS(-20),SIGN(-20), SIGN(20),4. 最大值函数MAX(),格式:MAX(,,) 示例:?MAX(10,20)?MAX(-10,-20),

23、5. 最小值函数MIN(),格式:MIN(,,) 示例:?MIN(10,20)?MIN(-10,-20),6.求平方根函数SQRT(),格式:SQRT() 示例:?SQRT(16),7.求自然对数函数LOG(),格式:LOG() 示例:?LOG(15.36),8.幂函数EXP(),格式:EXP() 示例:?EXP(3),E= 2.718,9.求余数函数MOD(),格式:MOD(,),说明:函数返回值的符号与的符号相同。,示例:?MOD(10,3) ?MOD(10,-3)?MOD(15,-4)?MOD(-15,-4),2.3.3 日期和时间处理函数,1.系统当前日期函数DATE(),格式:DAT

24、E(),2.系统当前时间函数TIME(),格式:TIME(),4.返回日期表达式中的天数函数:DAY(),格式:DAY(/),3.系统当前日期时间函数DATETIME(),格式:DATETIME(),5.返回日期表达式中的月份函数:MONTH(),格式:MONTH(/),6.年份函数YEAR(),格式:YEAR(/),7.求星期几函数:DOW(),格式:DOW(/),8.求月份函数:CMONTH(),格式:CMONTH(/),9.求系统时、分、秒函数HOUR()、MINUTE()、SEC(),格式:HOUR(),10.求星期几函数:CDOW(),格式:DOW(/),格式:MINUTE(),格式

25、:SEC(),2.3.4 数据转换函数,1.字符转换成ASCII码函数ASC(),格式:ASC() 功能:给出中最左边字符的ASCII码的十进制数。 示例:?ASC(“ABCD”),2. ASCII码值转换成字符函数CHR(),格式:CHR() 功能:将的值作为ASCII码的十进制数,给出对应的字符。这个表达式只能是0-255的十进制整数。 示例:?CHR(65),3.数值型转换为字符型函数STR(),格式:STR(,) 说明: 1)给出转换后的字符串长度,该长度包括小数点、负号。如果缺省和,其输出结果将取固定长度为10位,且只取其整数部分; 2)给出小数位数,决定转换后小数点右面的小数位数,

26、默认位数为0位; 3)如果的值大于给出值的数字位数时,在返回的字符串左边添加空格; 4)如果的值小于小数点左边的数字位数,将返回一串星号,表示数值溢出。?str(95643.5136) ?str(95643.5136,8,2)?str(95643.5136,8) ?str(95643.5136,3),4.字符型转换成数值型函数VAL(),格式:VAL() 说明: 1)的值必须是数字形式的字符串,它只能含有数字、正负号和小数点; 2)转换时,如果遇到非上述字符则停止。如果字符型表达式的第一个字符即非上述字符,则返回零。 3)转换后的小数位数,隐含为2位,可用SET DECIMAL TO N去改变

27、。 示 例:?VAL(“8769.3421”)?VAL(“8769AB21”)?VAL(“AB8769.3421”)?VAL(“1.3421E+2“),5.字符型转换成日期型函数CTOD(),格式:CTOD() 说明:必须是一个有效的日期格式。 示例:?CTOD(“09/23/01”),6.日期型转换成字符型函数DTOC(),格式:DTOC(/,1) 说明:如果有,1选项,则按照年月日的格式输出。 示例:X=CTOD(“09/10/99”)?DTOC(X)?DTOC(X,1),2.3.5 测试函数,1. 值域测试函数BETWEEN,功能:判断(的值是否介于和之间。是则函数值为真,否则为假。当和

28、任何一个的值为NULL则函数的值也为NULL。 示例:STORE .NULL. TO XSTORE 100 TO Y?BETWEEN(150,Y,Y+100), ETWEEN(90,X,Y),BETWEEN(,),.T. .NULL.,2.测试表达式类型函数TYPE(),格式:TYPE(“”) 说明:函数返回值为字符型,各字符含义如下:字符值 数据类型 字符值 数据类型C 字符型 M 备注型N 数值型 O 对象型D 日期型 G 通用型T 日期时间型 Y 货币型L 逻辑型 U 未定义型,示例:A=567? TYPE(“A”),N,3.测试文件存在函数,格式:FILE() 功能:测试指定的文件是否存在,如果存在,返回逻辑真值,否则返回逻辑假值。 说明:文件名应包括扩展名,文件名两端要用引号括起来 示例: ?FILE(“学生成绩.DBF”),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报