第 3 章 数据与数据运算

49
3 3 第 第第第第第第第 第 第第第第第第第 常常常常常 3.1 常常常常常常常 3.2 常常常常 3.3 常常常常 3.4

description

3.1. 3.2. 3.3. 3.4. 常量与变量. 运算符与表达式. 常用函数. 命令格式. 第 3 章 数据与数据运算. 3.1 常量与变量. 常量是在操作过程中其值固定不变的数据,通常是指一个具体的数据内容。 变量是一个命名的存储空间,变量的数据类型是由其所含数据的类型决定的。 变量可以用字母、汉字、数字或下划线及它们的组合为其命名。变量名必须以字母或汉字开头,最多不能超过 10 个字符,并且不能含有空格。 变量可分为字段变量和内存变量两大类。. 3.1.1 常量. 1 .字符型常量 - PowerPoint PPT Presentation

Transcript of 第 3 章 数据与数据运算

Page 1: 第 3 章 数据与数据运算

第第 33 章 数据与数据运算章 数据与数据运算常量与变量3.1

运算符与表达式3.2

常用函数3.3

命令格式 3.4

Page 2: 第 3 章 数据与数据运算

3.1 3.1 常量与变量常量与变量

常量是在操作过程中其值固定不变的数据,通常是指一个具体的数据内容。 变量是一个命名的存储空间,变量的数据类型是由其所含数据的类型决定的。 变量可以用字母、汉字、数字或下划线及它们的组合为其命名。变量名必须以字母或汉字开头,最多不能超过 10 个字符,并且不能含有空格。 变量可分为字段变量和内存变量两大类。

Page 3: 第 3 章 数据与数据运算

3.1.1 常量

1 .字符型常量 简称C型常量,是用半角的单引号、双引号或方括号等定界符括起来的一串字符,又称为字符串( String )。2 .数值型常量 简称N型常量,也即常数。N型常量可以是由阿拉伯数字、小数点和正负号构成的各种整数、小数或实数。

Page 4: 第 3 章 数据与数据运算

3 .货币型常量 简称 Y 型常量,是由符号“ $” 开头的一个表示货币量的数字。4 .日期型常量 简称D型常量,用来表示一个具体的日期。默认格式为: {^yyyy-mm-dd} 或 {^yyyy/mm/dd} 。

Page 5: 第 3 章 数据与数据运算

5 .日期时间型常量 简称 T 型常量,用来表示一个具体的日期与时间。默认格式为: {^yyyy-mm-dd,[hh[:mm[:ss]][a|p]]} 。6 .逻辑型常量 简称L型常量,常用来表示某个条件成立与否。L型常量只有逻辑真与逻辑假两个值,逻辑真值通用 .T. 表示,逻辑假值用 .F. 表示。

Page 6: 第 3 章 数据与数据运算

3.1.2 字段变量

在创建数据表时定义的一个字段对应一个字段变量,数据表中的字段名即其字段变量名。 字段变量除字符型、数值型、货币型、日期型、日期时间型和逻辑型之外,还有备注(M)型和通用( G )型等几种类型。

Page 7: 第 3 章 数据与数据运算

3.1.3 内存变量

内存变量是独立于数据表而存在的临时工作变量,用来存放数据处理过程中的一些中间结果和最终结果数据、并在程序中充当循环变量和其他工作变量等。

Page 8: 第 3 章 数据与数据运算

1 .内存变量的创建与赋值

格式 1 : STORE < 表达式 > TO < 内存变量表 >格式 2 : < 内存变量 >=< 表达式 >说明:以上两条命令的功能都是将指定表达式的计算结果值赋给指定的内存变量,所不同的是前者允许把同一个表达式的值赋给多个变量,而后者只能给单个变量赋值。

Page 9: 第 3 章 数据与数据运算

2 .内存变量的保存与恢复

( 1 )内存变量的保存格式: SAVE TO < 内存变量文件名 > [ALL LIKE|ALL EXCEPT < 通配符 >]

( 2 )内存变量的恢复格式: RESTORE FROM < 内存变量文件名 > [ADDITIVE]

Page 10: 第 3 章 数据与数据运算

3 .内存变量的显示与释放

( 1 )内存变量的显示格式: LIST/ DISPLAY MEMORY [LIKE < 通配符 >]( 2 )内存变量的释放格式 1 : RELEASE < 内存变量名表 >格式 2 : RELEASE ALL [LIKE < 通配符> | EXCEPT < 通配符 > ]

Page 11: 第 3 章 数据与数据运算

3.2 3.2 运算符与表达式运算符与表达式

表达式是将常量、变量、函数等数据用运算符按一定规则连接起来的一个有意义的式子。作为特例,可以将单个的常量、变量或函数看成是一个表达式。 根据表达式运算后得到的结果值的数据类型来划分,可将表达式分为数值表达式、字符表达式、日期表达式和逻辑表达式。

Page 12: 第 3 章 数据与数据运算

3.2.1 数值表达式

数值表达式简称 expN ,是由算术运算符将各类数值型数据连接而成的式子。 各种算术运算符,按其运算的优先级别由高到低排列如下所示。( ) 括号内的运算最优先^ 或 ** 乘方运算* 、 / 、 % 乘、除、求余运算+ 、 - 加、减运算

Page 13: 第 3 章 数据与数据运算

3.2.2 字符表达式

字符表达式简称 expC ,是由字符运算符将各类C型数据连接而成的式子。字符运算符有以下两种:+ 两字符串相连。- 两字符串相连,并将前串的尾部空格移至结果字符串尾部。

Page 14: 第 3 章 数据与数据运算

3.2.3 日期表达式

日期表达式简称 expD ,是运算结果为某个具体日期的式子。属于日期表达式的一般有以下几种情况:① 某一个日期常量,如: {^2002/05/18}② 系统的日期函数: DATE()③ 类型转换函数: CTOD("mm/dd/yy")④ 一个日期型数据加上或减去一个N型数据。⑤ 当前打开数据表中的日期型字段变量。

Page 15: 第 3 章 数据与数据运算

3.2.4 逻辑表达式

逻辑表达式简称 expL ,是运算结果为逻辑真值或逻辑假值的式子,包括关系运算式和逻辑运算式。

Page 16: 第 3 章 数据与数据运算

1 .关系运算式

关系运算式是用关系运算符把两个相同类型的数据连接起来的式子。各种关系运算符如下所示。> 大于< 小于= 等于<> 、 != 、 # 不等于>= 大于等于<= 小于等于= = 字符串精确匹配$ 左侧字符串是否被包含在右侧字符串中

Page 17: 第 3 章 数据与数据运算

2 .逻辑运算式

逻辑运算式是用逻辑运算符将L型数据连接起来的式子,逻辑运算只能在L型数据间进行,其运算结果依然是L型数据。各种逻辑运算符按其运算优先级从高到低排列如下:( ) 括号NOT 或 ! 逻辑非AND 逻辑与OR 逻辑或

Page 18: 第 3 章 数据与数据运算

3.2.5 表达式书写规则 每个字符应占同样大小的一个字符位,所有字符都应并排地写在同一水平上;

数值表达式中有相乘关系的地方,一律采用“ *” 号表示,不能省略;

在需要括号的地方,一律采用圆括号“ ()” ,且左右括号必须配对;

Page 19: 第 3 章 数据与数据运算

不得使用罗马字符、希腊字符等非英文字符;变量名与函数名中的字母可以大写也可以小写,其效果是相同的;逻辑运算符 NOT 、 AND 、 OR 的前后应加圆点(小数点)或空格与其他内容分开;

Page 20: 第 3 章 数据与数据运算

3.2.6 表达式输出命令

格式 1 : ? [< 表达式表 >]

功能:计算 < 表达式表 > 中各表达式的值,并在下一行开始输出计算结果。格式 2 : ?? [< 表达式表 >]

功能:计算 < 表达式表 > 中各表达式的值,并在当前行当前列开始输出计算结果。

Page 21: 第 3 章 数据与数据运算

3.3 3.3 常用函数常用函数

函数( Function )不仅是 Visual FoxPro 的一种数据元素,而且是一种广为采用的数据处理手段,每一种函数都代表了一种特定的数据操作功能。

Page 22: 第 3 章 数据与数据运算

3.3.1 数学运算函数

1.绝对值函数格式: ABS(<expN>)

功能:求 <expN> 的绝对值。2.取整数函数格式: INT(<expN>)

功能:取 <expN> 的整数部分。

Page 23: 第 3 章 数据与数据运算

3.平方根函数格式: SQRT(<expN>)功能:求 <expN> 的平方根。 <expN> 的值须大

于等于零。4.四舍五入函数格式: ROUND(<expN1>,<expN2>)功能:对 <expN1>四舍五入到由 <expN2> 指定

的小数位数。

Page 24: 第 3 章 数据与数据运算

5. 求余数函数格式: MOD(<expN1>,<expN2>)

功能:求 <expN1> 除以 <expN2> 的余数。6. 求最大值函数格式: MAX(<expN1>,<expN2>|<expD1>,<expD2>)

功能:取两个数据中的较大者。

Page 25: 第 3 章 数据与数据运算

7. 求最小值函数格式: MIN(<expN1>,<expN2>|<expD1>,<expD2>)

功能:取两个数据中的较小者。

Page 26: 第 3 章 数据与数据运算

3.3.2 字符处理函数

1.宏代换函数格式: &< 字符型内存变量 >功能:代换字符型内存变量的内容。2. 子串搜索函数格式: AT(<expC1>,<expC2>)功能:返回 <expC1> 在 <expC2> 中存在

的起始位置值,不存在时则返回零值。

Page 27: 第 3 章 数据与数据运算

3. 求字符串长度函数格式: LEN(<expC>)功能:返回 <expC> 中包含字符的个数。4.取子串函数格式: SUBSTR(<expC>,<expN1>[,<expN2>])功能:截取 <expC> 中第 <expN1> 个字符开始的共 <expN2> 个字符;缺省 <expN2> 时,为第 <expN1> 个字符开始的所有字符。

Page 28: 第 3 章 数据与数据运算

5.取左子串函数格式: LEFT(<expC>,<expN>)

功能:截取 <expC> 左面的 <expN> 个字符。

Page 29: 第 3 章 数据与数据运算

6.取右子串函数格式: RIGHT(<expC>,<expN>)

功能:截取 <expC>右面的 <expN> 个字符。

Page 30: 第 3 章 数据与数据运算

7.删除尾部空格函数格式: TRIM(<expC>)

功能:删除 <expC> 的尾部空格。8.删除左端空格函数格式: LTRIM(<expC>)

功能:删除 <expC> 的左端空格。

Page 31: 第 3 章 数据与数据运算

9.删除两端空格函数格式: ALLTRIM(<expC>)

功能:删除 <expC> 前后端的空格。10.生成空格字符串函数格式: SPACE(<expN>)

功能:产生 <expN> 个空格字符。

Page 32: 第 3 章 数据与数据运算

11. 小写转换为大写函数格式: UPPER(<expC>)功能:将 <expC> 中的小写字母转换成大写字母。12. 大写转换为小写函数格式: LOWER(<expC>)功能:将 <expC> 中的大写字母转换成小写字母。

Page 33: 第 3 章 数据与数据运算

3.3.3 日期时间函数

1. 系统日期函数格式: DATE()

功能:返回当前系统日期。2. 系统时间函数格式: TIME()

功能:返回当前系统时间。

Page 34: 第 3 章 数据与数据运算

3.取年份函数格式: YEAR(<expD>)功能:返回 <expD> 中的年份数(用四位整数表示)。4.取月份函数格式: MONTH(<expD>)功能:返回 <expD> 中的月份数。

Page 35: 第 3 章 数据与数据运算

5.取日子函数格式: DAY(<expD>)

功能:返回 <expD> 中的日期号数。6.取星期函数格式: DOW(<expD>)

功能:返回 <expD> 是星期几。

Page 36: 第 3 章 数据与数据运算

3.3.4 转换函数

1. 字符串转换为 ASCII码函数格式: ASC(<expC>)

功能:返回 <expC> 中首字符的 ASCII 码值。2.ASCII码转换为字符串函数格式: CHR(<expN>)

功能:返回 ASCII 码值为 <expN> 的对应字符或控制码。

Page 37: 第 3 章 数据与数据运算

3. 数值转换为字符串函数格式: STR(<expN1>[,<expN2>[,<expN3>]])

功能:将 <expN1> 转换成字符串。4. 字符串转换为数值函数格式: VAL(<expC>)

功能:将数码、正负号、小数点构成的数值形式的C型数据转换成N型数据。

Page 38: 第 3 章 数据与数据运算

5. 字符串转换为日期函数格式: CTOD(<expC>)功能:将日期形式的C型数据转换成D型数据。6. 日期转换为字符串函数格式: DTOC(<expD>)功能:将D型数据转换成C型数据。

Page 39: 第 3 章 数据与数据运算

3.3.5 测试函数

1. 数据类型测试函数格式: TYPE('<expr>')功能:返回表达式 <expr> 的数据类型。2. 表首测试函数格式: BOF()功能:测试当前记录指针是否指向数据表首记录前的开始标志。

Page 40: 第 3 章 数据与数据运算

3. 表尾测试函数格式: EOF()功能:测试当前记录指针是否指向数据表末记录后的结束标志。4. 当前记录号测试函数格式: RECNO()功能:返回当前记录的记录号。

Page 41: 第 3 章 数据与数据运算

5.记录删除测试函数格式: DELETED()

功能:测试当前记录是否有删除标志。6.查询测试函数格式: FOUND()

功能:测试当前查询是否成功。

Page 42: 第 3 章 数据与数据运算

7. 字段个数测试函数格式: FCOUNT()

功能:返回当前数据表的字段个数。8.记录个数测试函数格式: RECCOUNT()

功能:返回当前数据表的记录个数。

Page 43: 第 3 章 数据与数据运算

9. 条件测试函数格式: IIF(<expL>,<expr1>,<expr2>)

功能: <expL> 为真时取 <expr1> 之值,否则取 <expr2> 之值。 <expr1> 与 <expr2> 的数据类型可以不同。

Page 44: 第 3 章 数据与数据运算

3.4 3.4 命令格式命令格式

3.4.1 命令结构 Visual FoxPro 的许多命令与数据表操作有关,这些命令大多具有以下命令结构:< 命令动词 > [<范围 >] [FOR < 条件 >] [WHILE < 条件 >] [FIELDS < 字段表 >]

Page 45: 第 3 章 数据与数据运算

1 .命令动词2 .范围短语 用来限定该命令处理的数据表记录范围,允许有以下四种选择:ALL 对当前数据表中的所有记录。NEXT <expN> 对自当前记录开始的 <expN>条记录。RECORD <expN> 仅对第 <expN> 条记录。REST 对自当前记录开始的所有记录。

Page 46: 第 3 章 数据与数据运算

3 .条件短语 用来限制仅对符合指定条件的记录进行操作。可由合法的逻辑表达式充当 < 条件 > 。FOR < 条件 > 与 WHILE < 条件 > 的区别在于:前者表示对指定范围内所有符合条件的记录进行处理;后者则由当前记录开始顺序对记录按条件进行比较,一旦遇到不符合的记录就结束本命令的执行。

Page 47: 第 3 章 数据与数据运算

4 . FIELDS短语 用来限制仅对指定的若干个字段进行操作。缺省时默认为对当前数据表中的所有字段进行操作,但不包括备注型字段和通用型字段。

Page 48: 第 3 章 数据与数据运算

3.4.2 命令书写规则

各种命令均应以命令动词开头,其后各短语的顺序可以任意。

用一个或多个空格来分隔命令中的各单词短语;在 < 字段表 > 的各个字段名之间、在 < 表达式表 > 的各表达式之间则需要用逗号分开。

命令中的字母可以大写、小写或大小写混合使用。

Page 49: 第 3 章 数据与数据运算

命令动词和各种保留字中的英文单词均可仅用其前四个字母表示。命令中的所有符号,包括运算符号和标点符号,均应是半角字符。一个命令的最大长度为 8192 个字符,一行写不下时可在行尾加分号作为续行符,然后换行后继续书写。