第2章 Visual FoxPro数据及数据运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章Visual FoxPro 数据及数据运算
2.1 数据类型
数据类型是数据的基本属性,不同的数据类型有不同的存储方式和运算规则。下表列出了VFP中的主要数据类型。
VFP的主要数据类型
2.2 常量和变量
2.2.1 常量
常量指在命令操作或程序运行过程中其值始终保持不变的量。VFP中经常用到的常量类型是字符型、数值型、货币型、日期型、日期时间型、逻辑型和浮动型。
1. 字符型常量
字符型常量也叫字符串,它由数字、字母、空格等可打印的字符和汉字组成。使用时必须用定界符括起来,定界符有:单引号(‘’)、双引号(“”)或方括号([ ])。
2. 数值型常量
数值型常量即数学中的常数,包括整数和小数。
3. 货币型常量
货币型常量用来表示货币值,其表示方法是在字符前面加一个前置符“$”。货币数据在存取和计算时采用4位小数,多于4位的,系统将自动将多余的小数四舍五入。
4. 日期型常量
日期型常量用来表示一个确定的日期。其表示方式是用花括号({ })将日期括起来,默认格式为{ mm/dd/yy}例如“{10/15/03}”,表示2003年10月15日。“/”是系统默认的年、月、日之间分隔符,还可用连字符(-)或句点(.)作为分隔符。
可以通过设置来选用其他的日期格式,比如{ mm/dd/yyyy}和严格的日期格式{ ^yyyy /mm/dd}等。例如“{10/15/2003}”和“{^2003/10/15}”均表示2003年10月15日。
日期型常量用8个字节存储,其取值范围是{^0001/01/01}~{^9999/12/31}。
5. 日期时间型常量
日期时间型常量包括日期和时间两部分内容,使用一对花括号来作为定界符。其格式为:{<日期> <时间>}。<日期>部分常量的格式与日期型常量相似,<时间>部分的格式为[hh[:mm[ss]]][a|p]。其中,hh表示小时(默认为12),mm表示分钟(默认为0),ss表示秒(默认为0),a代表上午,p代表下午,如果不加a或p,默认为a。
6. 逻辑型常量
逻辑型常量的取值只有两个:逻辑真(.T.、.t.、.Y.、.y.)和逻辑假(.F.、.f.、.N.、.n.)。前后两个句点是定界符,它们不能省略。
7. 浮动型常量
浮动型常量,也称为浮点型常量。是数值型常量的浮点格式,例如:23E+8、-4.51E-2等。
2.2.2 变量
变量指在命令操作和程序执行过程中其值可以改变的量。VFP中的变量分为字段变量和内存变量两大类。
1. 字段变量
数据表中的每个字段都是一个字段变量,字段名就是字段变量名。它依附于表,随着表的打开和关闭而在内存中存储和释放。
字段变量的类型有字符型、数值型、货币型、浮点型、双精度型、整型、日期型、日期时间型、逻辑型、备注型、通用型等。字段变量是一种多值变量,其值随记录指针的变化而不同。一个数据表文件有多少条记录,字段变量就有多少个值。
2. 内存变量
内存变量是一种独立于数据表而存在的变量,它是内存中一个临时的工作单元。常用来保存所需要的常数、中间结果或对数据表和数据库进行某种处理后的结果等。
内存变量的类型取决于变量值的类型,主要有:字符型、数值型、货币型、日期型、日期时间型、逻辑型和屏幕型。其中,屏幕型内存变量不能进行运算,只能用于保存屏幕画面。当内存变量中存放的数据类型改变时,内存变量的类型也随之改变。
当内存变量名和字段变量名相同时,系统优先引用字段变量。若要引用内存变量,需在内存变量名前加前缀M.或M->。
2.3 运算符和表达式
运算符是表示数据之间运算方式的符号,不同类型的数据要用不同的运算符。表达式是由常量、变量、函数通过运算符连接起来的式子,单个的常量、变量、函数通常也被称为表达式。
表达式通常计算均能得到一个结果,称为表达式的值,按表达式值的类型划分,表达式可分为算术表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式。
2.3.1 算术运算符和算术表达式
算术运算符用于对运算对象进行算术运算,算术表达式由数值型常量、变量、函数和算术运算符组成,其运算结果仍是数值型数据。算术运算符有如下几种,按优先级由高到低依次是:
•( ):括号。优先级最高。
•-:负号。优先级次于括号。
•**或^:乘方。优先级次于负号。
•*、/、%:分别是乘号、除号和取余号,优先级次于乘方。当表达式中出现同时出现乘、除、取余运算时,它们的优先级相同。同时出现时,按从左到右顺序运算。
•+、-:加号和减号。优先级最低。同时出现时,按从左到右顺序运算。
2.3.2 字符运算符和字符表达式
字符运算符用于对两个字符型数据进行连接运算。字符表达式由字符型常量、变量、函数和字符运算符组成,其运算结果仍为字符型数据,字符运算符主要有两个,其中:+:原样连接两个字符型数据。
-:在进行字符串的连接时,首先将前一个字符串尾部的空格移动到连接后的字符串的尾部。
2.3.3 日期运算符和日期时间型表达式
日期运算符用于对日期型、日期时间型或数值型数据进行运算。日期时间型表达式由日期型或日期时间型常量和日期运算符组成。有两个符号:用于一个日期和一个整数相加的符号“+”以及用于一个日期减去另一个日期或整数的符号“-”。其运算结果是日期型、日期时间型或数值型数据。
日期时间表达式的格式有一定限制,不能任意组合,比如,不可以用“+”运算符将两个日期连接起来。下表列出了正确的日期时间表达式的格式。
正确的日期时间表达式格式
2.3.4 关系运算符和关系表达式
关系运算符用于完成比较运算,关系表达式由关系运算符、数值表达式、字符表达式、