VisualFoxPro数据与数据运算.ppt_第1页
VisualFoxPro数据与数据运算.ppt_第2页
VisualFoxPro数据与数据运算.ppt_第3页
VisualFoxPro数据与数据运算.ppt_第4页
VisualFoxPro数据与数据运算.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1,第2章,Visual FoxPro数据与数据运算,2,本章概要:,Visual Foxpro的语言有哪些要素 VFP支持的数据类型 VFP常量定义 VFP变量定义 VFP表达式定义,表达式运算符及其优先级 VFP函数类型与功能,3,2.1 Visual FoxPro数据,2.1.1Visual FoxPro数据类型 为了满足存储和处理数据的需要,Visual FoxPro提供了13种类型,它们是字符型、数值型、整型、浮点型、双精度型、货币型、逻辑性、日期型、日期时间型、备注型、通用型、字符型(二进制)和备注型(二进制)。,4,2.1.2 常量,常量(Constant)是指在程序运行期间,其值不变的量。 常量的写法和其类型有关。 Visual Foxpro 6.0常见的数据类型的常量有:数值型、货币型 、字符型、日期型、日期时间型、逻辑型。,5,1.数值型常量 数值型常量也就是常数,用来表示数量的大小。 数值型常量由数字09、小数点和正负号构成,在内存中占8个字节,取值范围是-0.999 999 999 9E+19-0.999 999 999 9E+20。 例如:65、8.45、43等。,6,2.字符型常量 字符型常量也称字符串,其表示方法是用半角单引号、双引号或方括号 把字符括起来,这里的单引号、双引号或方括号 称为“定界符”,其作用是确定字符串的起始和终止界限,它本身不作为字符串的一部分。 定界符虽然不作为常量本身的内容,但它规定了常量的类型以及常量的起始和终止界限。 例如:“金苹果“。,7,3.逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值。 逻辑真的常量形式有:.T.、.t.、.Y.和.y.,逻辑假的常量表示形式有:.F.、.f.、.N.和.n.。 前后两个黑点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。 逻辑型数据只占用1个字符。,8,4.日期型常量 日期型常量是用一对花括号括起来包括日期的数据。花括号内包括年、月、日3部分内容,各部分内容之间用分隔符分隔。 常用的日期分隔符有斜杠(/)、连字号()、句点(.)和空格。 日期型常量格式 传统的日期格式 严格的日期格式,9,常用日期格式,10,5.日期时间型常量 日期时间型常量包括日期和时间两部分:,。 部分与日期型常量相似,也有传统和严格的格式。 部分的格式为:hh:mm:ssa | p。其中hh、mm和ss分别代表时、分和秒。 系统默认的格式为AM。 日期时间型数据用8个字节存储,第一个4字节保存日期,其余的4字节保存时间。,11,6.货币型常量 货币型常量用来表示货币值,其书写格式与数值型常量类似,但在表示货币型常量时,需要在数字前加上货币符号。 货币数据在存储和计算时,采用4位小数,占据8字节存储空间。货币型数据用字母Y表示。 如果一个货币型常量多于4位小数,则系统会自动将多余的小数四舍五入。 例如:常量$9.8756789存储为$9.8757。,12,2.1.3 变量,变量(Variable)是指在程序运行期间其数值会变化的量。 变量的两个特性: 变量的名,在程序运行期间是不变的。 变量的值,在程序运行期间是可变的。 通过变量名引用变量值。,13,Visual FoxPro创建变量名时, 必须遵循以下命名规则: 只使用字母、汉字、下划线和数字。 以字母、汉字、下划线开头。 使用1到128个字符,字段名,自由表名和索引标识最多只能10字符长。 避免使用Visual FoxPro保留字。 VFP定义的,有特定含义。 必须是见名知意,即看见变量名知道变量名的含义。例如要对年龄取变量名,使用age就比使用x好。,14,1.内存变量 根据变量的存在方式,分为内存变量和字段变量。 字段变量:字段变量是数据库管理系统中的一个重要概念,字段变量就是指数据库表中已经定义的任意一个字段,伴随数据表打开而存在的变量,字段变量随数据表的关闭而消失。 内存变量:不是字段变量就一定是内存变量。是一系列机算机内存单元,用于保存对数据库存进行某种分析处理或程序执行过程中的中间结果和最终结果。 内存变量的类型在Visual FoxPro中可以为数值型、字符型、逻辑型和日期型。,15,内存变量常用命令 (1)内存变量的赋值 内存变量赋值语句格式一如下: | = 表达式 例:age = 20 ? age 20(输出结果) 内存变量赋值语句格式二如下: STORE TO| 例:store 22 to age1,age2 ?age1,age2 22 22 (输出结果),16,(2)表达式值的显示 格式:?|? ? 每次另起一新行输出结果,而 ? 是在当前行输出结果。 例:? 他说:“太好了!“ 输出的结果是:他说:“太好了!“。 例:? “好”,“太好了!” 输出结果是:好 太好了!,17,(3)内存变量显示 格式1 : LIST MEMORY LIKE TO PRINTER | TO FILE 格式2: DISPLAY MEMORY LIKE TO PRINTER | TO FILE,18,(4)清除内存变量 格式1 :CLEAR MEMORY 格式2:RELEASE 格式3 :RELEASE ALL EXTENDED 格式4:RELEASE ALL LIKE| EXCEPT,19,(5)内存变量的保存与恢复 格式1:SAVE TO 内存变量文件名 ALL LIKE | EXCEPT 格式2: RESTORE FROM 内存变量文件名 ADDITIVE,20,2.系统变量 系统变量是特有的变量,是系统内部提供的,为方便程序设计人员和用户。系统变量由Visual FoxPro自动定义和维护,往往以“_”(下划线)开头,因此在给普通的内存变量命名时最好不要以“_”字符开头,以避免混淆。一般情况下,不要修改系统变量。,21,3字段变量 由于表中的各条记录对同一个字段名可能取值不同,该字段变量的取值会随着当前记录的变化而变化,因此称为字段变量。它是数据库中一个非常重要的概念 。 但值得注意的是,若内存变量名与当前所打开的数据表的字段变量同名,引用时,系统优先字段变量,若要特指内存变量,应在内存变量名前加上前缀“M.”或“M-”。,22,2.1.4 数组变量 创建数组的格式: DIMENSION ( ,) , DECLARE ( ,) ,23,例如: 数组的定义及赋值 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数组一个元素赋日期值,24,创建数组的注意项: 在一切可以使用简单内存变量的地方,均可以使用数组元素。 在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。 在同一个运行环境下,数组名不能与简单变量名重复。 在赋值语句中的表达式位置不能出现数组名,可以出现具体的数组元素名。 可以用一维数组的形式访问二维数组。,25,2.2 表达式及其运算,26,1数值表达式 定义: 数值表达式又叫做算术表达式,是最容易理解的 一种表达式。数值型数据可以是数值型常量或者变量。 算术运算优先级,2.2.1 表达式,27,2字符表达式 定义: 由字符串连接运算符将字符型常量、变量或者函数连接起来形成,其运算结果仍然是一个字符型数据。 运算符: :前后两个字符串首尾连接形成一个新的字符串。 :连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。它们的优先级相同。,28,3日期时间表达式 运算符: 日期时间表达式中可以使用的运算符也有和。,日期时间表达式的格式,29,4关系表达式 (1)定义: 通常称为简单逻辑表达式,它由关系运算符将两个运算对象连接起来形成。,关系运算符,30,(2)设置字符的排序次序 人机对话方式 方法: 选择“工具”菜单栏下的“选项”,打开“选项”对话框,单击“数据”选项卡。 从右上方的“排序序列”下拉框中选择“Machine(机器)”、“PinYin(拼音)”或者“Stroke(笔画)”。 命令方式设置: SET COLLATE TO “”,31,(3)字符串精确比较与EXACT设置,SET EXACT对字符串比较的影响,32,5逻辑表达式 定义: 由逻辑运算符将逻辑型数据连接而形成的,其运算符结果仍然是逻辑型数据。 运算符: .NOT.或!(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。 其优先级顺序依次为.NOT.、.AND.、.OR.。,33,逻辑运算规则,34,运算符小结:,35,2.3 函 数,函数的一般形式为: 函数名(参数1,参数2),36,2.3.1 数值函数,1.绝对值和符号函数 格式:ABS() SIGN() 功能: ABS()函数返回指定的数值表达式的绝对值。 SIGN()函数返回指定数值表达式的符号。当表达式的结果为正、负和0时,函数值分别为1、-1和0。,37,2求平方根函数 格式: SQRT() 功能: SQRT()函数返回数值表达式的平方根。 3圆周率函数 格式: PI() 功能: PI()函数返回数值常量的近似值。,38,4.取整数函数 格式:INT() CELING() FLOOR() 功能: INT()函数返回数值表达式的整数部分。 CELING()函数返回大于或等于数值表达式的最小整数。 FLOOR()函数返回小于或等于数值表达式的最大整数。,39,5.四舍五入函数 格式:ROUND(,) 功能:ROUND()函数返回数据表达式在指定位置四舍五入后的结果。 6.求余函数 格式:MOD(, ) 功能:MOD()函数返回除以两个数相除后的余数。余数的正负号与除数相同。 如果被除数与除数同号,那么函数值就为两数 相除的余数。 如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。,40,7.求最大值和最小值函数 格式: MAX( ,) MIN( ,) 功能: MAX()函数返回数值表达式中的最大值表达式。 MIN()函数返回数值表达式中的最小值表达式。,41,2.3.2字符函数,1LEN()函数 格式:LEN() 功能:LEN()函数返回字符表达式值的长度, 函数值为数值型。 2大小写转换函数 格式:LOWER() UPPER() 功能:LOWER()函数将表达式中的大写字 母转换成小写字母,其他字符不变。 UPPER()函数将表达式中的小写字母转换 成大写字母,其他字符不变。,42,3空格字符生成函数 格式:SPACE() 功能:SPACE()函数生成指定空格数的空字符串。,4删除前后空格函数 格式:TRIM() LTRIM() ALLTRIM() 功能:TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串。 LTRIM()函数删除串首空格字符。 ALLTRIM ()函数删除首尾空格字符。,43,5.取子串函数 格式:LEFT(,) RIGHT (,) SUBSTR(,) 功能: LEFT()函数从字符表达式值的左端取一个 指定长度的子串作为函数值。 RIGHT()函数从字符表达式值的右端取一个指定长度的子串作为函数值。 SUBSTR()函数从表达式值的起始位置取一个指定长度的子串作为函数值。,44,6.计算子串出现次数函数 格式:OCCURS(,) 功能:OCCURS()函数返回第一个字符串在第二个字符串中出现的次数。 7.求子串位置函数 格式: AT(, , ) ATC(, , ) 功能: AT()函数返回值的首字符在值中的位置。ATC()与AT()功能相似,但在子串比较时不区分字母大小写。,45,8.子串替换函数 格式:STUFF(,) 功能:STUFF()函数用串替换串中由和指明的一个子串。 9.字符替换函数 格式:CHRTRAN(, ,) 功能:CHRTRAN()是当第一个字符串中的第一个或多个相同字符与第二个字符中的某个字符相匹配时,就用第三个字符串中的对应字符替换这些字符。,46,10.字符串匹配函数 格式:LIKE(, ) 功能:比较两个字符串对应位置上的字符,若所有对应 字符都相匹配,函数返回逻辑真,否则返回逻辑假。,47,11宏替换函数 格式:&. 功能:替换出的内容,即去掉的定界符作为函数的返回值。 说明:函数返回值可以是各种类型,即为去掉定界符的类型;若宏替换函数与其后的字符没有空格分界,则要用“.”作为函数结束标记。,48,2.3.3 日期和时间函数,1.获取系统日期和时间函数 格式:DATE() TIME () DATETIME() 功能:DATE()函数返回当前系统日期,函数值为日期型。 TIME()函数以24小时制,hh:mm:ss格式返回当前系统时间,函数值为字符型。 DATETIME()函数返回当前系统日期时间,函数值为日期时间型。,49,2.获取年份、月份和天数函数 格式:YEAR () MONTH (|) DAY (|) 功能: YEAR ()从指定的日期表达式或日期时间表达式中返回年份。 MONTH ()从指定的日期表达式或日期时间表达式中返回月份。 DAY ()从指定的日期或日期时间表达式中返回月份中的天数,50,3.获取时、分和秒函数 格式:HOUR () MINUTE () SEC () 功能:HOUR()函数从日期时间表达式中返回小时部分(24小时制)。 MINUTE()函数从日期时间表达式中返回分钟部分。 SEC()函数从日期时间表达式中返回秒数部分。,51,2.3.4 数据类型转换函数,1.数值转换成字符串 格式: STR( , , ) 功能: STR()函数将按设定的和转换成字符型数据,函数返回值为字符型。 2.字符串转换成数值 格式: VAL () 功能: VAL()将数值字符串转换为数值。,52,3.字符串转换成日期或日期时间 格式:CTOD () CTOT () 功能:CTOD()函数将“mm/dd/yy”格式的串转换成对应的日期值,返回的函数值为日期型。CTOT()将 转换成日期时间型数据。 4.日期或日期时间转换成字符串 格式:DTOC (|,1) TTOC (日期时间表达式,1) 功能:DTOC()函数将转换成字符串,函数返回值类型为字符型。 TTOC ()将日期时间型数据转换成字符串。,53,5.字符转换为对应的ASCII码函数 格式:ASC() 功能:返回指定字符值中第一个字符ASCII码值。 ? ASC(“ADCEF”) &结果为65 6.ASCII码转换为对应的字符函数 格式:CHR() 功能:返回所对应的ASCII码值的字符。

温馨提示

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

评论

0/150

提交评论