ch03.ppt_第1页
ch03.ppt_第2页
ch03.ppt_第3页
ch03.ppt_第4页
ch03.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第3章 数据与数据运算,2,本章要点,Visual FoxPro的数据类型 Visual FoxPro中的常量与变量 Visual FoxPro中的表达式 Visual FoxPro中的5类常用函数,3,3.1 Visual FoxPro的数据类型,4,1数据类型 字符型 数值型 货币型 日期型 日期时间型 逻辑型 备注型 通用型,5,3.2 常量与变量,6,3.2.1 常量,1定义: 常量是指在所有的操作过程中保持不变的数。 2分类: 数值型常量 数值型常量也就是常数,用来表示数量的大小。 数值型常量由数字09、小数点和正负号构成,在内存中占8个字节,取值范围是-0.999 999 99

2、9 9E+19-0.999 999 999 9E+20。 例如:65、8.45、43等。,7,货币型常量 货币型常量用来表示货币值,其书写格式与数值型常量类似,但在表示货币型常量时,需要在数字前加上货币符号。 货币数据在存储和计算时,采用4位小数,占据8字节存储空间。货币型数据用字母Y表示。 如果一个货币型常量多于4位小数,则系统会自动将多余的小数四舍五入。 例如:常量9.8756789存储为9.8757。,8,字符型常量 字符型常量也称字符串,其表示方法是用半角单引号、双引号或方括号 把字符括起来,这里的单引号、双引号或方括号 称为“定界符”,其作用是确定字符串的起始和终止界限,它本身不作为

3、字符串的一部分。 定界符虽然不作为常量本身的内容,但它规定了常量的类型以及常量的起始和终止界限。 例如:金苹果。,9,日期型常量 日期型常量是用一对花括号括起来包括日期的数据。花括号内包括年、月、日3部分内容,各部分内容之间用分隔符分隔。 常用的日期分隔符有斜杠(/)、连字号()、句点(.)和空格。 日期型常量格式 传统的日期格式 严格的日期格式,10,表3.1 常用日期格式,11,日期时间型常量 日期时间型常量包括日期和时间两部分:,。 部分与日期型常量相似,也有传统和严格的格式。 部分的格式为:hh:mm:ssa | p。其中hh、mm和ss分别代表时、分和秒。 系统默认的格式为AM。 日

4、期时间型数据用8个字节存储,第一个4字节保存日期,其余的4字节保存时间。,12,逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值。 逻辑真的常量形式有:.T.、.t.、.Y.和.y.,逻辑假的常量表示形式有:.F.、.f.、.N.和.n.。 前后两个黑点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。 逻辑型数据只占用1个字符。,13,3.2.2 变量,1字段变量 定义: 字段变量是数据库管理系统中的一个重要概念,字段变量就是指数据库表中已经定义的任意一个字段。 类型: 数值型、浮点型、货币型、整型、双精度型、字符型、逻辑型、日期型、日期时间型、备注型和通用型等。,14,2内存变量 定

5、义: 内存变量是独立于数据库以外,存储在内存中的临时变量。 如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M或(M),否则系统将访问同名的字段变量。 变量赋值的格式: = STORE TO,15,例如: 给内存变量赋值 nj=大学 &给变量nj赋字符值 STORE 1234567890 TO xh &给变量xh赋字符值 STORE SQRT(32+42) TO na1,na2,na3 &给变量na1,na2,na3赋相同的数值,16,3数组 数组的声明: 与内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令显式创建,并且规定数组是一维数组

6、还是二维数组,数组名和数组大小。 数组大小由下标值的上、下限决定,下限规定为1。 创建数组的格式: DIMENSION ( ,) , DECLARE ( ,) ,17,例如: 数组的定义及赋值 DIMENSION a (2), b (2,2) &定义两个数组 a=100 & a数组所有元素赋值为100 b (1,1) = a (1) &引用数a的元素给b数组元素赋值 STORE .T. TO b(1,1) &给b数组一个元素重复赋逻辑值 b (1,2)= 南京大学 &给b数组一个元素赋字符值”南京大学” b (2,1)= 2006/11/16 &给b数组一个元素赋日期值,18,创建数组的注意项

7、: 在一切可以使用简单内存变量的地方,均可以使用数组元素。 在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。 在同一个运行环境下,数组名不能与简单变量名重复。 在赋值语句中的表达式位置不能出现数组名,可以出现具体的数组元素名。 可以用一维数组的形式访问二维数组。,19,3.2.3 内存变量常用命令,1显示内存变量 格式1 : LIST MEMORY LIKE TO PRINTER | TO FILE 格式2: DISPLAY MEMORY LIKE TO PRINTER | TO FILE,20,2清除内存变量 格式1 : CLEAR MEMORY 格式2: REL

8、EASE 格式3 : RELEASE ALL EXTENDED 格式4: RELEASE ALL LIKE| EXCEPT,21,3表中数据与数组数据之间的交换 将表的当前记录复制到数组 格式1 : SCATTER FIELDS MEMO TO BLANK 格式2: SCATTER FIELDS LIKE | FIELDS EXCEPT MEMO TO BLANK ,22,3表中数据与数组数据之间的交换 将数组数据复制到表的当前记录 格式1 : GATHER FROM FIELDS MEMO 格式2: GATHER FROM FIELDSLIKE | FIELDS EXCEPT MEMO ,2

9、3,3.3表达式,24,VFP的命名规则,只能使用字母、下划线和数字。 只能以字母或下划线开头。 表达式名字长度是1-128个字符,但自由表的字段名和索引名最多只能是10个字符。 避免使用VFP中的保留字。,25,1数值表达式 定义: 数值表达式又叫做算术表达式,是最容易理解的一种表达式。数值型数据可以是数值型常量或者变量。 算术运算优先级:,3.3.1 数值、字符与日期时间表达式,26,2字符表达式 定义: 由字符串连接运算符将字符型常量、变量或者函数连接起来形成,其运算结果仍然是一个字符型数据。 运算符: :前后两个字符串首尾连接形成一个新的字符串。 :连接前后两个字符串,并将前字符串的尾

10、部空格移到合并后的新字符串尾部。它们的优先级相同。,27,3日期时间表达式 运算符: 日期时间表达式中可以使用的运算符也有和。,表3.3 日期时间表达式的格式,28,1关系表达式 定义: 通常称为简单逻辑表达式,它由关系运算符将两个运算对象连接起来形成。,表3.4 日期时间表达式的格式,3.3.2 关系表达式,29,2设置字符的排序次序 人机对话方式 方法: 选择“工具”菜单栏下的“选项”,打开“选项”对话框,单击“数据”选项卡。 从右上方的“排序序列”下拉框中选择“Machine(机器)”、“PinYin(拼音)”或者“Stroke(笔画)”。 命令方式设置 SET COLLATE TO ”

11、,30,3字符串精确比较与EXACT设置,表3.5 SET EXACT对字符串比较的影响,31,3.3.3 逻辑表达式,1逻辑表达式 定义: 由逻辑运算符将逻辑型数据连接而形成的,其运算符结果仍然是逻辑型数据。 运算符: .NOT.或!(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。 其优先级顺序依次为.NOT.、.AND.、.OR.。,32,表3.6 逻辑运算规则,33,3.4 常用函数,34,3.4.1 数值函数,1ABS()函数 格式: ABS() 功能: ABS()函数返回指定的数值表达式的绝对值。 2SIGN()函数 格式: SIGN() 功能: SIGN()函数返回指定数值表

12、达式的符号。 当表达式的结果为正、负和0时,函数值分别为1、-1和0。,35,3SQRT()函数 格式: SQRT() 功能: SQRT()函数返回数值表达式的平方根。 4PI()函数 格式: PI() 功能: PI()函数返回数值常量的近似值。,36,5INT()函数 格式: INT() 功能: INT()函数返回数值表达式的整数部分。 6CELING()函数 格式: CELING() 功能: CELING()函数返回大于或等于数值表达式的最小整数。,37,7FLOOR()函数 格式: FLOOR() 功能: FLOOR()函数返回小于或等于数值表达式的最大整数。 8ROUND()函数 格式

13、: ROUND(,) 功能: ROUND()函数返回数据表达式在指定位置四舍五入后的结果。,38,9MOD()函数 格式: MOD(, ) 功能: MOD()函数返回除以两个数相除后的余数。余数的正负号与除数相同。 如果被除数与除数同号,那么函数值就为两数相除的余数。 如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。,39,10MAX()函数 格式: MAX( ,) 功能: MAX()函数返回数值表达式中的最大值表达式。 11MIN()函数 格式: MIN( ,) 功能: MIN()函数返回数值表达式中的最小值表达式。,40,3.4.2 字符函数,1LEN()函数 格式: LEN

14、() 功能: LEN()函数返回字符表达式值的长度,函数值为数值型。 2LOWER()函数 格式: LOWER() 功能: LOWER()函数将表达式中的大写字母转换成小写字母,其他字符不变。,41,3UPPER()函数 格式: UPPER() 功能: UPPER()函数将表达式中的小写字母转换成大写字母,其他字符不变。 4SPACE()函数 格式: SPACE() 功能: SPACE()函数生成指定空格数的空字符串。,42,5LTRIM()函数 格式: LTRIM() 功能: LTRIM()函数删除串尾空格字符。 6ALLTRIM()函数 格式: ALLTRIM() 功能: ALLTRIM

15、()函数删除首尾空格字符。,43,7LEFT()函数 格式: LEFT(,) 功能: LEFT()函数从字符表达式值的左端取一个指定长度的子串作为函数值。 8RIGHT()函数 格式: RIGHT (,) 功能: RIGHT()函数从字符表达式值的右端取一个指定长度的子串作为函数值。,44,9SUBSTR()函数 格式: SUBSTR(,) 功能: SUBSTR()函数从表达式值的起始位置取一个指定长度的子串作为函数值。 10OCCURS()函数 格式: OCCURS(,) 功能: OCCURS()函数返回第一个字符串在第二个字符串中出现的次数。,45,11AT()函数 格式: AT(, ,

16、) 功能: AT()函数返回值的首字符在值中的位置。 12STUFF()函数 格式: STUFF(,) 功能: STUFF()函数用串替换串中由和指明的一个子串。,46,3.4.3 日期时间函数,1DATE()函数 格式: DATE() 功能: DATE()函数返回当前系统日期,函数值为日期型。 2TIME()函数 格式: TIME () 功能: TIME()函数以24小时制,hh:mm:ss格式返回当前系统时间,函数值为字符型。,47,3DATETIME()函数 格式: DATETIME() 功能: DATETIME()函数返回当前系统日期时间,函数值为日期时间型。 4YEAR()函数 格式

17、: YEAR () 功能: YEAR ()从指定的日期表达式或日期时间表达式中返回年份。,48,5MONTH()函数 格式: MONTH (|) 功能: MONTH ()从指定的日期表达式或日期时间表达式中返回月份。 6DAY()函数 格式: DAY (|) 功能: DAY ()从指定的日期或日期时间表达式中返回月份中的天数。,49,7HOUR()函数 格式: HOUR () 功能: HOUR()函数从日期时间表达式中返回小时部分(24小时制)。 8MINUTE()函数 格式: MINUTE () 功能: MINUTE()函数从日期时间表达式中返回分钟部分。,50,9SEC()函数 格式: S

18、EC () 功能: SEC()函数从日期时间表达式中返回秒数部分。 10DOW()函数 格式: DOW () 功能: DOW()函数返回日期表达式或日期时间表达式返回该日期是一周的第几天, 17表示星期日星期六。,51,3.4.4 数据类型转换函数,1STR()函数 格式: STR( , , ) 功能: STR()函数将按设定的和转换成字符型数据,函数返回值为字符型。 2VAL()函数 格式: VAL () 功能: VAL()将数值字符串转换为数值。,52,3CTOD()函数 格式: CTOD () 功能: CTOD()函数将“mm/dd/yy”格式的串转换成对应的日期值,返回的函数值为日期型

19、。 4DTOC()函数 格式: DTOC (|,1) 功能: DTOC()函数将转换成字符串,函数返回值类型为字符型。,53,5宏替换函数 格式: &. 功能: 替换出字符型变量的内容,即&的值是变量中的字符串。 如果该函数与后面的字符无明确分界,则要用“.”作函数结束标识,宏替换可以嵌套使用。,54,3.4.5 测试函数,1BETWEEN()函数 格式: BETWEEN(,) 功能: BETWEEN()函数判断一个表达式的值是否在另外两个表达式的值之间。 当值大于等于且小于等于时,函数值为逻辑真(.T.),否则函数值为逻辑假(.F.)。 如果或有一个是NULL值,则函数值也是NULL值。,55,2ISNULL()函数 格式: ISNULL () 功能: ISNULL()函数判断一个表达式的运算结果是否为.NULL.值,如果是.NULL.值,则返回逻辑真(.T.),否则逻辑值假(.F.)。 3EMPTY

温馨提示

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

评论

0/150

提交评论