第2章数据类型与数据运算剖析.ppt
第2章 Visual FoxPro的数据与数据运算,2.1 Visual FoxPro的数据类型 2.2 Visual FoxPro数据存储 2.3 常用函数 2.4 Visual FoxPro的表达式 2.5 Visual FoxPro命令的一般格式 2.6 例题解析,本章要点 Visual FoxPro系统中各种数据类型 数据的存储、表示方式和操作运算方法 常用函数的功能与用法,本章难点 数据类型与取值范围、数据的4种表示形式(常量、变量、函数和表达式)内存变量的操作方法 表达式的使用方法,2.1 Visual FoxPro的数据类型,2.1.1 字符型(Character) 字符型数据是不具计算能力的文字数据类型,用于保存诸如姓名、地址和无需计算的数字等文本信息,用字母C表示。字符型数据包括中文字符、英文字符和其他ASCII字符,其长度(即字符个数)范围是0到254个字符,2.1.2 数值型numeric 数值型数据是表示数量、可以进行数值运算的数据类型。数值型数据由数字、小数点、正负号和表示乘幂的字母组成,数值精度达位。在Visual FoxPro系统中,按存储、表达形式与取值范围不同,数值型数据又分为种不同类型,1. 普通型numeric 普通型数据由数字、小数点、正负号和字母组成,用字母表示。数值的数据的取值范围是0.9999999999E190.9999999999E20,包括正负号、小数点和字母E在内,其长度(数据位数)最大20位。通常用于表示实数,如86.0、-0.75、7E-6(即7*10-6)等,2. 浮点型(float) 浮点型数据是数值型数据的一种,用字母F表示。它的精度与普通型数据完全等价,3. 双精度型double 双精度型数据是具有更高精度的数值型数据,用字母B表示。它采用固定长度的浮点格式存储,占用8个字节,其取值范围是4.94065645841247E-3241.79769313486232E308,4. 整型integer 整型数据是不包含小数部分的数值型 数据,用字母I表示.整型数据只用来表示整数,以二进制形式存储,占用4个字节.其取值范围是-21474836472147483646,2.1.3 日期型date 日期型数据是表示日期的数据,用字母D表示.日期的默认格式是mm/dd/yyyy其中mm表示月份,dd表示日期,yyyy表示年度,固定长度8位,如03/16/2005表示2005年3月16日这一日期数据,2.1.4 日期时间型(Data Times) 日期时间型数据是表示日期和时间的数据,用字母T表示。日期时间的默认格式是mm/dd/yyyy hhmmss,其中mm 、dd 、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。日期时间值存储在含有两个四字节整数的8个字节中,第一个四字节用于保存日期,剩下的四字节整数保存时间,2.1.5 逻辑型(Logic) 逻辑型数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字母L表示。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,固定长度1位。为区别其他数据类型,一般需在表示逻辑值的字母t 、y 、f 、n的前后加圆点符“.,2.1.6 备注型 (Memo) 备注型数据用于存储数据块。可以把它看成是字符型数据的特殊形式,用字母M表示。 备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据内容而定,2.1.7 通用型 (General) 通用型数据是存储OLE(Object Linking and Embedding)对象的数据类型,用字母G表示。通用型数据中的OLE对象可以是电子表格、字处理文档、 图形图片等。它只用于表中字段类型的定义。通用型数据字段长度固定为4个字节,实际数据长度仅受限于磁盘空间,2.1.8 货币型 (Currency) 货币型数据是存储美元金额而使用的一种称为货币(Currency)的数据类型,其取值范围是-922337203685477.5808922337203685477.5807,默认保留4位小数,占据8字节存储空间。货币型数据用字母Y表示,2.2 Visual FoxPro数据存储,2.2.1 常量 1、常量的概念 在Visual FoxPro系统中,常量是指在程序运行过程中始终保持不变的数据;变量是指其值在程序运行的不同时刻会发生改变的量,2、常量分类 常量是在命令或程序中可以直接引用、具有具体值的命名数据项,其特征是在整个操作过程中它的值和表现形式保持不变。 创建常量和释放常量可以采用以下命令语句 define undef Visual FoxPro按照常量取值的数据类型将常量分为6种类型,1. 数值型常量 由数字、点和正负号组成,表示整数或实数值,如365、-785、155.98、1092.5041等分别是数值型常量中的整数和实数,2. 字符型常量 由任意ASC字符、汉字和汉字字符组成的字符型数据,字符常量又称为字符串。为与其他类型相区别,Visual FoxPro要求将字符串中的所有字符用对双引号 “ ” ” 或单引号 “ ”或方括号“ ”作为定界符括起来,3. 逻辑型常量 逻辑型常量就是表示逻辑判断结果“真”或“假”的逻辑值。逻辑常量只有真和假两个值,并分别用(.t.和y.)或(.f.和n.)表示,4. 日期型常量 日期型常量就是用来表示日期的数值,其默认格式是mm/dd/yyyy,如05/01/05,05/01/2005均用来表示2005年5月1日这一日期常量值,5. 日期时间型常量 用于表示日期和时间的常量,其默认格式mm/dd/yyyy,hhmmssa|p,其中a和p分别表示AM(上午)PM(下午,1)日期格式中用2位数表示年份,但涉及到世纪问题就不便区分Visual FoxPro提供设置命令对此进行相应设置 命令格式 SET CENTURY ON |OFF 命令功能 ON日期数据显示10位,其中年份4位,即日期值输出时显示年份值。 OFF默认值.日期数据显示8位,年份2位,即日期值输出是不显示年份值,2)设置日期显示格式 命令格式 SET DATA TO AMERICAN|ANSI|BRITISH|FREN|GERMAN|ITLIAN|JAPAN|USE|MDU|DMU|YMD|SHORT|LONG 命令功能设置日期型和日期时间型数据的显示格式.系统默认为AMERICAN美国格式,单击Visual FoxPro主窗口中的【工具】、【选项】菜单项,打开“选项”对话框后选中“区域”选项卡,单击展开“日期和时间”栏中的“日期格式”下拉列表框,选择其中的某个日期格式,然后单击“确定”按钮确定此格式设置,6、货币型常量 数字前加“”表示货币型数据,如121.76,表示美元。货币型数据最多4位小数,超过4位时自动调整为4位,2.2.2 内存变量 Visual FoxPro系统中,变量分为字段变量、内存变量、数组变量和系统变量4类,各种变量都具有名称和类型属性,1. 命名约定 (1)Visual FoxPro的一般命名约定 只使用字母、下划线和数字命名。虽然中文版Visual FoxPro允许使用汉字为各类数据容器命名,但一般建议尽量不采用汉字命名,必要时用汉字的拼音字母代替,以提高操作效率,除自由表中字段名、索引的TAG标志名最多只能有10个字符外,其他的命名可使用1128个字符。 避免命名时以数字开头;不可用Visual FoxPro系统中的保留字(如命令名、函数名等各种系统预定义项的名称)进行命名,以免造成系统的混乱,文件名的命名要严格遵循操作系统的约定,2字段名命名约定 表中字段的命名,推荐按如下格式 TypeName 其中Type为字段的数据类型,Name为字段的命名。 数据类型用一个小写字母表示。 如c Xingming定义了姓名字段(字符型) d BirthDay定义了出生日期字段(日期型)的字段名,3)变量命名约定 变量的命名,推荐如下格式 Type Name Type为变量数据类型,Name为变量的命名。如 d Months表示一个数组变量 c LastName表示一个字符型变量,2. 内存变量 内存变量是内存中的临时单元,可以用来在程序的执行过程中保留中间结果和最后结果,或用来保留对数据库进行的某种分析处理后得到的结果,1)内存变量的数据类型 内存变量的数据类型包括数值型、字符型、逻辑型、日期型和日期时间型。 内存变量的数据类型是在变量建立时确定的,由赋值的数据类型决定。相同变量名重复赋值时,其类型可能被改变。所以,相同变量名的类型是可变的、不固定的,2)内存变量的建立 命令格式 Store to 命令功能将的值计算出来并赋值给指定内存变量表中的各个内存变量。内存变量表中如有多个内存变量则个两两之间以逗号分隔,命令格式 命令功能将的值计算出来并赋值给指定的内存变量。每次只能为一个内存变量赋值,3)内存变量的显示输出可以用以下命令在屏幕上显示输出内存变量的值。 命令格式 /At 命令功能计算表达式表中各表达式的值,并在屏幕上指定位置显示输出各式的值。 代表分行显示 代表连续显示,4 内存变量的清除 内存变量的清除 可用RELEASE命令清除内存变量数据,语法格式如下 格式 RELEASEALL LIKE|EXCEPT 功能如果语句中包含,则仅清除清单中指定的内存变量;如果语句中包含ALL LIKE|EXCEPT,则按如下条件清除内存变量 ALL LIKE表示把符合结构中所指定条件的所有内存变量清除。 ALL EXCEPT表示把符合结构中所指定条件以外的所有内存变量清除,变量清除示例 Release a ”在行末进行分行,并在下行连续书写,2.5.2 命令的书写规则,4)命令中的英文字母大小写可以混合使用。 (5)命令动词和子句中的短语可以用其前四个字母缩写表示。 (6)Microsoft Visual FoxPro 中的保留字包括函数,系统内存变量,属性,事件,方法,命令,菜单常数和子句。 用户在选择变量名、字段名和文件名时,应尽可能不使用系统中的命令动词和命令字,以免程序在运行中产生语法错误。不能用操作系统所规定的输出设备名作为文件名,也不能用A到J之间的单个字母作表名,以免与工作区名称冲突,Visual FoxPro数据库管理系统是进行数据处理的强有力工具。它不仅用户界面友好,而且工作方式多样化,用户可以根据自己对系统知识的掌握程度,选择合适的工作方式。Visual FoxPro数据库管理系统还提供了多种数据的类型,并可以将其存放在各种类型的数据容器中。本章将主要介绍Visual FoxPro系统的工作方式,数据类型、数据的存储方式及各种类型的表达式,2.5.3 命令的运行方式,Visual FoxPro不但拥有大量的交互式数据库管理工具,而且还有一整套功能完善的程序语言系统及面向对象可视化程序编写工具。为此,Visual FoxPro系统给用户提供了三种工作方式 命令方式、菜单方式及程序文件方式。 1. 命令方式 命令方式是通过用户在命令窗口输入操作命令,立即执行操作的交互式工作方式。 在命令窗口中,可以输入单个的操作命令和系统命令,从而完成对数据库的操作管理,系统程序的设计,各种对象的创建和维护,以及系统环境的设置等。命令窗口不仅是Visual FoxPro命令的执行窗口,也是Visual FoxPro命令文件的编辑窗口,如果用户比较熟悉Visual FoxPro系统命令及数据库操作命令,用命令方式要比菜单方式来得更方便快捷。但是,由于Visual FoxPro系统命令格式较为复杂,命令种类繁多,初学者难于掌握,可考虑采用菜单方式。 2. 菜单方式 菜单方式是用户通过对系统菜单提供的菜单选项选择,完成对数据库的操作管理,系统程序的设计,各种对象的创建和维护,以及系统环境设置的操作。 菜单方式也是一种交互式工作方式,只要选择一个菜单选项,系统便完成一个对应的操作。这种直观、简捷的界面操作,不要求熟悉操作命令,只要能够把握操作流程,选择合适的菜单选项,就能够完成操作任务,菜单方式比命令方式容易掌握,即学即会,但其操作步骤过多,执行任务的时间长。建议对于一些经常性的操作,还是使用命令方式进行更妥。 3. 程序文件方式 程序文件简称程序是为解决某一特定问题命令序列的集合。因此,程序文件又称为命令文件,程序文件方式也称为命令文件方式。 程序文件方式先通过程序文件编辑工具,将对数据库进行各种操作管理的命令或对系统环境进行设置的命令,集中在一个以.PRG为扩展名的程序文件中;然后,通过菜单方式,或命令方式,或程序文件方式运行这一程序文件;最后,系统将根据程序文件中的每一个命令完成操作任务,用程序文件方式进行数据库管理,是把许多操作命令集中使用,不仅运行效率高,还可重复操作。但是,若想编写一个解决实际问题的应用程序,不是一日之功,需要对Visual FoxPro命令和语句进行系统地学习,同时还要掌握一定的程序设计方法,2. 程序方式 程序方式先要通过命令MODIFY COMMAND 建立特定的命令文件。建立时逐行键入命令行,然后存人磁盘,由用户指定命令文件名,系统默认的扩展名是PRG,然后由DO命令执行。 格式 DO 功能这种方式调用程序文件,系统将自动执行这一文件,将用户繁琐的介入减到最少。程序执行方式运行效率高,可以重复执行。 如何进行程序设计,使本课程学习重点,将随后讲述,1 赋值命令STORE 在程序中如果要使用变量,则必须在使用之前为变量设定一个初始值或改变它的现行值。赋值语句可以将指定的值赋给内存变量或对象的某个属性。 格式STORE TO/ 功能 赋值命令STORE的主要是给内存变量赋值,多个变量名之间通过逗号隔开。具体功能如下,2.5.4 常用命令,a“你好” Store 5*6 to b,c a b,建立内存变量,并给内存变量/数组赋初值。 为已建立的内存变量/数组重新赋值。STORE会用新值替换旧值。 给一个变量或数组赋值时,可以用“”可以代替STORE命令,简写为 / 对日期型内存变量赋值时,如果是日期型常量,则必须用花括号“”括起来并在前面加上一个符号,如果是字符串,则必须用转换函数将其换为日期型。 示例 today2005/12/06 todayCTOD“12/06/2005”,格式 FUNCTION 参数FONT字体名,字体大小 功能在屏幕上显示表达式的内容。 参数说明 表达式用于对表达式进行计算,然后新起一行显示计算结果,计算结果显示在 Visual FoxPro 主窗口或者活动的用户自定义窗口的下一行,2、 显示命令, 表达式结果显示在 Visual FoxPro 主窗口、活动的用户定义窗口或者打印机当前行的当前位置上。不换行而接着当前行直接输出。计算并显示变量、表达式和常量的值 当命令后面没有任何表达式时,输出一个空行; 该命令后可以跟多行参数,有PICTURE参数、V参数、AT参数、FONT参数、 STYLE参数等。这些参数的含义与使用可参阅有关文献并逐步熟练。 其它命令以后逐步讲述,2.6例题解析,1. 下列 符号不能作为Visual FoxPro中的变量名。 A) ABCDEFG B) K123 C) 12SADF D) XYZ,2. 日期型数据长度固定为 个字符。 A) 10 B) 12 C) 8 D) 6,3. 以下4个符号中, 是Visual FoxPro中的一个常量。 A) P B) BOTTOM C) .T. D) DO,4. Visual FoxPro中,表达式2*32SQRT(2*8/4)3*2的值为 。 A) 64B) 31 C) 29D) 22,5. 下列4个式子中, 不是Visual FoxPro中的表达式。 A) 06/03/05B) “计算机” C) XYZ D)X”5” AND A.T,6. 将逻辑值赋给内存变量A的正确方法是 。 A) A“T” B) STORE “T” TO A C) ATRUE D) STORE .T. TO A,7. 设M”36”,44M的结果是 。 A) 44 B) 36 C) 80D) 56,8. 设A”123”,B456,P”AB”,则表达式1P的值是 。 A) 1123456B) 580 C) 1ABD) 579,9. 设某数据库中有10条记录。用函数EOF()测试结果为.T.,此时,当前记录号为 。 A) 10B) 11 C) 9D) 1,10. 在下列表达式中,结果为日期类型的正确表达式是 。 A) DATE()25 B) DATE()DTOC(DATE() C) DATE()-CTOD(“06/04/2005”) D) TIME()-DATE(,11. 执行下列命令 M”计算机等级考试” SUBSTR(M,INT(LEN(M)/2),2) 输出结果是 。 A) 计B) 机 C) 等D) 考试,12. 执行如下命令,最后输出的结果是 。 XSTR(666.6,4) YSTR(999.9,4) Z”Y” XZ A) 666999B) 1333 C) 666.6999.9D) 6671000,1、什么是内存变量、数组变量、字段变量、系统变量各有哪些类型 2、什么是局部变量、私有变量、全局变量三者有何区别 3、什么是函数函数主要有哪几大类 4、函数与命令有何区别 5、什么是表达式表达式有哪些类型,思考题,本 章 小 节,Visual FoxPro提供的命令、菜单和程序工作方式中,命令方式属于最原始、最基本、同时也是最完善的一种。通过命令方式可以完成Visual FoxPro所能提供的全部操作。 Visual FoxPro中所提供的表达式是由常量、变量,函数及其他数据容器单独与运算符组成的有意的运算式。深入学习表达式对初学者了解Visual FoxPro很有帮助,Visual FoxPro提供了丰富的函数。这些函数可以在程序中使用,也可以在交互方式下运行。本章重点介绍了字符、日期、数值及测试等基本函数。在Visual FoxPro系统中进行数据、处理,大都要涉及到有关函数或表达式的运用,因此,对于函数和表达式的运用得当与否,在一定程度上反映了用户的应用水平,学习时需引起重视