中国高校课件下载中心 》 教学资源 》 大学文库

铜陵学院数学与计算机学院:《数据库原理及应用》课程教学资源(教案讲义)第2章 数据与数据运算

文档信息
资源类别:文库
文档格式:DOC
文档页数:16
文件大小:167.5KB
团购合买:点击进入团购
内容简介
铜陵学院数学与计算机学院:《数据库原理及应用》课程教学资源(教案讲义)第2章 数据与数据运算
刷新页面文档预览

第2章数据与数据运算2.1数据类型数据是反映客观事物属性的记录,通常分为数值型和学符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。其中,存储方式决定了数据的取值范围和占用存储空间的大小:使用方式决定了数据能进行哪些操作。VisualFoxPro6.0中的数据类型主要有:1、字符型(C型)字符型(Character)数据是描述不具有计算能力的文字数据类型,是最常用的数据类型之一。字符型数据由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,其宽度为1254个字节。【例2-1】字符型数据的表示。X="数据库原理及应用VisualFoxPro6.0程序设计"其中“X”为字符型变量,是字符型数据的存储单元。2、数值型数值型数据是描述数量的数据类型,是最常用的数据类型之一。数值型数据又可被细化为以下3种类型:(1)数值型(N型)数值型(Numeric)数据是由数字(0~9)、小数点和正负号组成,用来描述数值大小。其宽度为1~20位,占用8个字节的存储空间。【例2-2】数值型数据的表示。X=-19.5Y=19.5其中“X”、“Y”为数值型变量,是数值型数据的存储单元。(2)浮点型浮点型(Float)数据是数值型数据的一种,与数值型数据完全等价,只是在存储形式上采取浮点格式且数据的精度要比数值型数据高,其宽度为1~20位,占用8个字节的存储空间。如:1.23456e+5,表示数字:123456。(3)双精度型双精度型(Double)数据是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储,可精确到小数点后15位,并占用8个字节的存储空间。3、货币型(Y型)货币型(Currency)数据是数值型数据的一种特殊形式,在数据的第一个数字前加一个货币符号(S)。货币型数据小数位的最大长度是4,小数位超过4个数符时,系统将会自动截取。该类型占用存储空间8个字节。4、逻辑型(L型)逻辑型(Logic)数据是描述客观事物真假的数据,通常用于表示逻辑判断的结果。逻辑型数据只有逻辑真和逻辑假两个值,其宽度为1个字节。5、日期型(D型)日期型(Date)数据是用于表示日期的数据,其宽度为8个字节。日期型数据包括年、月、日三个部分,各占2个学节,每个部分用规定的分隔符分开,分隔符各占1个字节。6、日期时间型(T型)

第 2 章 数据与数据运算 2.1 数据类型 数据是反映客观事物属性的记录,通常分为数值型和字符型两种基本类型。数据类型一 旦被定义,就确定了其存储方式和使用方式。其中,存储方式决定了数据的取值范围和占用 存储空间的大小;使用方式决定了数据能进行哪些操作。 Visual FoxPro 6.0 中的数据类型主要有: 1、字符型(C 型) 字符型(Character)数据是描述不具有计算能力的文字数据类型,是最常用的数据类 型之一。 字符型数据由汉字和 ASCII 字符集中可打印字符(英文字符、数字字符、空格及其他专 用字符)组成,其宽度为 1~254 个字节。 【例 2-1】字符型数据的表示。 X=”数据库原理及应用 _Visual FoxPro 6.0 程序设计” 其中“X”为字符型变量,是字符型数据的存储单元。 2、数值型 数值型数据是描述数量的数据类型,是最常用的数据类型之一。数值型数据又可被细化 为以下 3 种类型: (1) 数值型(N 型) 数值型(Numeric)数据是由数字(0~9)、小数点和正负号组成,用来描述数值大小。 其宽度为 1~20 位,占用 8 个字节的存储空间。 【例 2-2】数值型数据的表示。 X=-19.5 Y=19.5 其中“X”、“Y”为数值型变量,是数值型数据的存储单元。 (2) 浮点型 浮点型(Float)数据是数值型数据的一种,与数值型数据完全等价,只是在存储形式 上采取浮点格式且数据的精度要比数值型数据高,其宽度为 1~20 位,占用 8 个字节的存储 空间。如:1.23456e+5,表示数字:123456。 (3) 双精度型 双精度型(Double)数据是更高精度的数值型数据。它只用于数据表中的字段类型的定 义,并采用固定长度浮点格式存储,可精确到小数点后 15 位,并占用 8 个字节的存储空间。 3、货币型(Y 型) 货币型(Currency)数据是数值型数据的一种特殊形式,在数据的第一个数字前加一个 货币符号($)。 货币型数据小数位的最大长度是 4,小数位超过 4 个数符时,系统将会自动截取。该类 型占用存储空间 8 个字节。 4、逻辑型(L 型) 逻辑型(Logic)数据是描述客观事物真假的数据,通常用于表示逻辑判断的结果。逻 辑型数据只有逻辑真和逻辑假两个值,其宽度为 1 个字节。 5、日期型(D 型) 日期型(Date)数据是用于表示日期的数据,其宽度为 8 个字节。日期型数据包括年、 月、日三个部分,各占 2 个字节,每个部分用规定的分隔符分开,分隔符各占 1 个字节。 6、日期时间型(T 型)

日期时间型(DateTime)数据是描述日期和时间的数据,其宽度为8个学字节。日期时间型数据除包括年、月、日以外,还要包括时、分、秒以及上午、下午等信息,中间用空格分隔。7、备注型(M型)备注型(Memo)数据是用于存放长文本块的数据类型,可以看成是字符型数据的特殊形式,但没有数据长度的限制,仅受限于现有的磁盘空间,只用于数据表中字段类型的定义,字段宽度为4个字节,数据实际存放在与数据表同名的“.fpt”文件中。8、通用型(G型)通用型(General)数据用于存放OLE对象(对象链接与嵌入)的数据类型,可以是表格、图片、声音文档等数据,与备注型数据一样只用于数据表中字段类型的定义,字段宽度为4个字节,数据实际存放在与数据表同名的“.fpt”文件中。2.2常量与变量2.2.1 常量常量是指一个具体的、不变的值。VisualFoxPro6.0中常用的常量类型有以下5种:1、数值型常量数值型常量(N型常量):可以进行算术运算的常数,由数字(O-9)、小数点和正负号组成。例如:80,-52.06,3.1415e-82、字符型常量字符型常量(C型常量):是用定界符括起来的由英文、汉字、空格或数字所组成的字符串。定界符可以是英文单引号、双引号或方括号,且必须成对使用。当某一种定界符本身是字符型常量的组成部分时,就应选用另一种定界符。例如:[abcd],"铜陵学院",","Hesay[Iamastudent]."注意:不包含任何字符的字符串("")叫空串。空串与包含空格的字符串(”")不同。3、逻辑型常量逻辑型常量(L型常量):只有两个值,即“真”与“假”,用.T.、.t.、.Y.、·y.表示“真”,用.F.、.f.、.N.、.n.表示“假”。注意:两边的小圆点不能省掉。4、日期型常量日期型常量(D型常量):默认格式(yyyy/mm/dd),必须用一对大括号括起来。大括号内包含年、月、日三部分,各部分之间用分隔符分隔,系统默认的分隔符为斜杠(/)。常用的分隔符还有连字符()、句点(.)等。注意:脱字符()不能省略。例如:(1999/05/10),(1999/05/10),(~2003.05.10)。注意:日期型常量的输入格式为(yyyy/mm/dd),但系统默认日期格式是月/日/年。5、日期时间型常量日期时间型常量(T型常量):默认格式(yyyy/mm/ddhh:mmss[a|p])(年/月/日小时:分:秒)。注意:日期和时间数据间必须有空格。例如:(1999/05/1009:15:22am),(~2002/05/1009:15:22pm)。6、货币型常量(Y型常量)货币型常量用来表示货币值,其书写格式为在数字前加上一个前置符号$。例如:$60.25。货币型常量在存储和运算时采用保留4位小数,多于4位小数时采用四舍五入

日期时间型(Date Time)数据是描述日期和时间的数据,其宽度为 8 个字节。 日期时 间型数据除包括年、月、日以外,还要包括时、分、秒以及上午、下午等信息,中间用空格 分隔。 7、备注型(M 型) 备注型(Memo)数据是用于存放长文本块的数据类型,可以看成是字符型数据的特殊形 式,但没有数据长度的限制,仅受限于现有的磁盘空间,只用于数据表中字段类型的定义, 字段宽度为 4 个字节,数据实际存放在与数据表同名的“.fpt”文件中。 8、通用型(G 型) 通用型(General)数据用于存放 OLE 对象(对象链接与嵌入)的数据类型,可以是表 格、图片、声音文档等数据,与备注型数据一样只用于数据表中字段类型的定义,字段宽度 为 4 个字节,数据实际存放在与数据表同名的“.fpt”文件中。 2.2 常量与变量 2.2.1 常量 常量是指一个具体的、不变的值。Visual FoxPro 6.0 中常用的常量类型有以下 5 种: 1、数值型常量 数值型常量(N 型常量):可以进行算术运算的常数,由数字(0-9)、小数点和正负号 组成。例如:80,-52.06,3.1415e-8 2、字符型常量 字符型常量(C 型常量):是用定界符括起来的由英文、汉字、空格或数字所组成的字 符串。定界符可以是英文单引号、双引号或方括号,且必须成对使用。当某一种定界符本身 是字符型常量的组成部分时,就应选用另一种定界符。 例如:[abcd],”铜陵学院”,’ ’,”He say[I am a student].” 注意:不包含任何字符的字符串(”)叫空串。空串与包含空格的字符串(” ”)不同。 3、逻辑型常量 逻辑型常量(L 型常量):只有两个值,即“真”与“假”,用 .T.、.t.、.Y.、.y. 表 示“真”,用 .F.、.f.、.N.、.n. 表示“假”。 注意:两边的小圆点不能省掉。 4、日期型常量 日期型常量(D 型常量):默认格式{^yyyy/mm/dd},必须用一对大括号括起来。大括 号内包含年、月、日三部分,各部分之间用分隔符分隔,系统默认的分隔符为斜杠(/)。常 用的分隔符还有连字符()、句点(.)等。 注意:脱字符(^)不能省略。 例如:{^1999/05/10},{^1999/05/10},{^2003.05.10}。 注意: 日期型常量的输入格式为{^yyyy/mm/dd},但系统默认日期格式是月/日/年。 5、日期时间型常量 日期时间型常量(T 型常量):默认格式{^yyyy/mm/dd hh:mm:ss [a|p]}(年/月/日 小 时:分:秒)。 注意:日期和时间数据间必须有空格。 例如:{^1999/05/10 09:15:22 am},{^2002/05/10 09:15:22 pm}。 6、货币型常量(Y 型常量) 货币型常量用来表示货币值,其书写格式为在数字前加上一个前置符号$。例如: $60.25。货币型常量在存储和运算时采用保留 4 位小数,多于 4 位小数时采用四舍五入

2.2.2变量变量是指在命令操作或程序运行期间,其值可以被改变的量。VisualFoxPro6.0中的变量分为字段变量、用户内存变量和系统内存变量三类。用户内存变量简称为内存变量,前两种变量的名称不超过128个字符,但必须以字母、汉字或下划线开头,后跟字母、汉字、下划线和数字,而系统内存变量名称由系统规定。1、字段变量字段变量随着数据表的打开和关闭而在内存中存储和释放,表中的字段名就是变量的标识。它的当前值是记录指针所指记录(当前记录)的相应字段值,因此字段变量的值随看表记录指针所指的位置变化而变化。2、内存变量内存变量是一种独立于表文件而存在于内存中的临时变量,或者说是一种临时存放数据的单元。它一般用来在程序的执行过程中保留中间结果与最后结果,或用来保留对某种分析处理后得到的结果。注意:当内存变量名与当前表文件的字段名变量同名时,系统优先引用字段名变量。如果要引用同名的内存变量,则必须在变量前加上M->或M.作为前缀。例M->姓名,指内存变量姓名。内存变量在赋值之前不必事先定义。在赋值时若该变量并不存在,系统会自动建立。2.2.3内存变量常用命令VisualFoxPro提供了多种命令,用于变量的定义、赋值及保存。1、内存变量的赋值格式1:=功能:计算表达式的值,并赋值给赋值号(=)左边的内存变量。格式2:STORE][TOPRINTERTOFILE]格式2:DISPLAYMEMORY[LIKE][TOPRINTERTOFILE]功能说明:①格式1、格式2的功能是显示内存变量的当前信息,包括变量名、作用域、类型和取值。②选用LIKE短语只显示与通配符相匹配的那些内存变量。通配符包括“*”和“?”,其中

2.2.2 变量 变量是指在命令操作或程序运行期间,其值可以被改变的量。Visual FoxPro 6.0 中的 变量分为字段变量、用户内存变量和系统内存变量三类。用户内存变量简称为内存变量,前 两种变量的名称不超过 128 个字符,但必须以字母、汉字或下划线开头,后跟字母、汉字、 下划线和数字,而系统内存变量名称由系统规定。 1、字段变量 字段变量随着数据表的打开和关闭而在内存中存储和释放,表中的字段名就是变量的标 识。它的当前值是记录指针所指记录(当前记录)的相应字段值,因此字段变量的值随着表 记录指针所指的位置变化而变化。 2、内存变量 内存变量是一种独立于表文件而存在于内存中的临时变量,或者说是一种临时存放数据 的单元。它一般用来在程序的执行过程中保留中间结果与最后结果,或用来保留对某种分析 处理后得到的结果。 注意:当内存变量名与当前表文件的字段名变量同名时,系统优先引用字段名变量。如 果要引用同名的内存变量,则必须在变量前加上 M->或 M.作为前缀。例 M->姓名,指内存变 量姓名。内存变量在赋值之前不必事先定义。在赋值时若该变量并不存在,系统会自动建立。 2.2.3 内存变量常用命令 Visual FoxPro 提供了多种命令,用于变量的定义、赋值及保存。 1、内存变量的赋值 格式 1:= 功能:计算表达式的值,并赋值给赋值号(=)左边的内存变量。 格式 2:STORE TO 功能: 计算表达式的值,一次对多个变量赋相同的值,各内存变量名间要用逗号分开。 【例 2-3】在命令窗口键入如下命令: USE XSDA &&打开数据库表 XSDA BROWSE &&打开浏览窗口浏览数据后,关闭浏览窗口 ?姓名 &&显示当前记录的姓名字段值 姓名=”王芳” &&定义内存变量姓名,字符型,其值为”王芳” ?姓名 &&显示当前记录的姓名字段值 ?M.姓名 &&显示内存变量姓名的值 2、输出表达式的值 格式 1:?[] 格式 2:?? 功能:计算并输出各表达式的值,各表达式间用逗号分隔。 格式 1 不管有没有表达式,都会先输出一个回车换行符,若有表达式则在下一行的起始处输 出表达式的值。 格式 2 则不会输出一个回车换行符,表达式的值在当前行的光标处输出。 3、显示内存变量 格式 1:LIST MEMORY [LIKE] [TO PRINTER|TO FILE] 格式 2:DISPLAY MEMORY [LIKE] [TO PRINTER|TO FILE] 功能说明: ①格式 1、格式 2 的功能是显示内存变量的当前信息,包括变量名、作用域、类型和取值。 ②选用 LIKE 短语只显示与通配符相匹配的那些内存变量。通配符包括“*”和“?”,其中

“*”表示任意多位、每位可以是任意一个字符,“?”表示任意一个字符。③选用TOPRINTER或TOFILE用于在显示的同时送往打印机打印或者存入指定文件名的文本文件中,文件的扩展名为.txt。②LISTMEMORY与DISPLAYMEMORY的区别:前者一次性显示与通配符相匹配的所有内存变量如果内存变量多,一屏显示不下,自动向上滚动而不停顿:后者是分屏显示,即显示一屏后暂停,按任意键再显示下一屏。【例2-4】定义常用类型的内存变量并赋值。在命令窗口中键入如下命令:STORE28.21TOA&定义内存变量A,数值型,其值为28.21STORE"铜陵学院”TOB&&定义内存变量B,字符型,其值为”铜陵学院”STORE.T.TO C&定义内存变量C,逻辑型,其值为.T.(真)STORE $100 TO D&定义内存变量D,货币型,其值为S100E=(2010/04/10)&定义内存变量E,日期型,其值为2010年4月10日F=(2010/3/209:30:10am)&&定义内存变量F,日期时间型,其值为2010年3月20日上午9点30分10秒STORE 20O TO X,Y,Z&&定义内存变量x,y,z,数值型,其值都为20LISTMEMORYLIKE?&显示以一个字符为变量名的所有内存变量的属性。运行结果:APubN28.21(28.21000000)BPubc"铜陵学院"cL.T.PubDYPub100.0000EPubD04/10/10FPubT03/20/1009:30:10AMXPubN(2020.00000000)Y(PubN2020.00000000)ZPub(N2020.00000000)4、内存变量的保存与恢复(1)内存变量的保存格式:SAVETO]功能:将内存中的部分或全部内存变量以文件的形式存入磁盘,文件名由]:将符合的那些变量存入指定的文件。ALLEXCEPTI:将不符合的那些变量存入指定的文件。【例2-5】保存指定的内存变量SAVETOABCALLLIKE?&保存以一个字符为变量名的所有内存变量(2)内存变量的恢复格式:RESTOREFROM指定的内存变量文件中所保存的内存变量从磁盘读回内存重新使用。参数说明:FROM<内存变量文件名》:指定恢复内存变量的来源。[ADDITIVE]:保留当前内存中的内存变量,将指定文件中的内存变量添加到当前内存变量之后。:若省略ADDITIVE选择项,则内存中已有的内存变量全部释放,将指定文件中的内

“*” 表示任意多位、每位可以是任意一个字符,“?”表示任意一个字符。 ③选用 TO PRINTER 或 TO FILE用于在显示的同时送往打印机打印或者存入指定文 件名的文本文件中,文件的扩展名为.txt。 ②LIST MEMORY 与 DISPLAY MEMORY 的区别:前者一次性显示与通配符相匹配的所有内存变量, 如果内存变量多,一屏显示不下,自动向上滚动而不停顿;后者是分屏显示,即显示一屏后 暂停,按任意键再显示下一屏。 【例 2-4】定义常用类型的内存变量并赋值。在命令窗口中键入如下命令: STORE 28.21 TO A &&定义内存变量 A,数值型,其值为 28.21 STORE ”铜陵学院” TO B &&定义内存变量 B,字符型,其值为”铜陵学院” STORE .T.TO C &&定义内存变量 C,逻辑型,其值为.T.(真) STORE $100 TO D &&定义内存变量 D,货币型,其值为$100 E={^2010/04/10} &&定义内存变量 E,日期型,其值为 2010 年 4 月 10 日 F={^2010/3/20 9:30:10am} &&定义内存变量 F,日期时间型,其值为 2010 年 3 月 20 日 上午 9 点 30 分 10 秒 STORE 20 TO X,Y,Z &&定义内存变量 x,y,z,数值型,其值都为 20 LIST MEMORY LIKE ? &&显示以一个字符为变量名的所有内存变量的属性。 运行结果: A Pub N 28.21 (28.21000000) B Pub C ”铜陵学院” C Pub L .T. D Pub Y 100.0000 E Pub D 04/10/10 F Pub T 03/20/10 09∶30∶10 AM X Pub N 20 ( 20.00000000) Y Pub N 20 ( 20.00000000) Z Pub N 20 ( 20.00000000) 4、内存变量的保存与恢复 (1) 内存变量的保存 格式:SAVE TO [ALL LIKE/ EXCEPT ] 功能:将内存中的部分或全部内存变量以文件的形式存入磁盘,文件名由 指定,文件扩展名的缺省为 .mem。 参数说明: [ALL LIKE ]:将符合的那些变量存入指定的文件。 [ALL EXCEPT ]:将不符合的那些变量存入指定的文件。 【例 2-5】保存指定的内存变量 SAVE TO ABC ALL LIKE ? &&保存以一个字符为变量名的所有内存变量 (2) 内存变量的恢复 格式:RESTORE FROM [ADDITIVE] 功能:它将指定的内存变量文件中所保存的内存变量从磁盘读回内存重新 使用。 参数说明: FROM :指定恢复内存变量的来源。 [ADDITIVE] :保留当前内存中的内存变量,将指定文件中的内存变量添加到当前内存变 量之后。 若省略 ADDITIVE 选择项,则内存中已有的内存变量全部释放,将指定文件中的内

存变量调入内存5、内存变量的清除格式一:RELEASE]功能:删除指定的内存变量。省略所有选择项时,则删除所有的内存变量。格式三:CLEARMEMORY功能:删除当前内存中的所有内存变量。它和RELEASEALL的效果完全相同。说明:参数与前述相同。【例2-6】清除指定的内存变量RELEASE A, B, C&&清除内存变量A、B和CRELEASEALLLIKEB*&清除所有首字母为B的内存变量RELEASEALLEXCEPTB*&&清除所有首字母不为B的内存变量DISPRELEASE ALL&&清除所有内存变量RESTOREFROMABC&&将文件ABC.TXT中的内存变量从磁盘读回内存2.2.4数组数组是一组按一定顺序排列的内存变量,数组中的各个变量称为数组元素,每个数组元素可以通过数组名和下标来访问,数组必须先定义后使用。数组的定义和功能如下:格式:DIMENSION([,J)[,([])]】.·...·功能:定义一个一维或二维数组,同时定义该数组下标的上限。说明:①定义数组时必须指定数组名、数组的维数、数组的大小。系统规定数组下标的下限是1。②数组中各个元素在数组中的位置由下标表示。例如,命令“DIMENSIONX(4),Y(2,3)”分别定义了数组名为X的一维数组和数组名为Y的二维数组。数组X的下标下限为1,上限为4,故数组X的元素为:X(1),X(2),X(3),X(4)。二维数组Y的下标下限为(1,1),上限为(2,3),因而数组Y有2行3列共6个元素:Y(1,1)Y(1,2)Y(1,3)Y(2,1)Y(2,2)Y(2,3)③数组定义后,数组中各个元素的初始值是.F.。④数组中各个元素的取值类型可以互不相同。③用赋值命令可以对数组元素赋值,也可以对数组中的所有元素赋同一值。③在可以使用简单内存变量的地方,均可使用数组元素。③在同一运行环境中,数组名不能与简单内存变量同名。【例3-7】DIMENSIONX(4)X(1)="10106"X(2)="李冰"X(3)=~1981/6/5)X(4)=. T.DISPMEMOLIKE?

存变量调入内存 。 5、内存变量的清除 格式一:RELEASE 功能:删除指定的内存变量。当为多个变量时,变量名之间用“,”隔开。 格式二:RELEASE ALL [LIKE/EXCEPT ] 功能:删除指定的内存变量。省略所有选择项时,则删除所有的内存变量。 格式三:CLEAR MEMORY 功能:删除当前内存中的所有内存变量。它和 RELEASE ALL 的效果完全相同。 说明:参数与前述相同。 【例 2-6】清除指定的内存变量 RELEASE A,B,C && 清除内存变量 A、B 和 C RELEASE ALL LIKE B* && 清除所有首字母为 B 的内存变量 RELEASE ALL EXCEPT B* && 清除所有首字母不为 B 的内存变量 DISP RELEASE ALL && 清除所有内存变量 RESTORE FROM ABC && 将文件 ABC.TXT 中的内存变量从磁盘读回内存 2.2.4 数组 数组是一组按一定顺序排列的内存变量,数组中的各个变量称为数组元素,每个数组元 素可以通过数组名和下标来访问,数组必须先定义后使用。数组的定义和功能如下: 格式:DIMENSION ([,]) [,([,])]. 功能:定义一个一维或二维数组,同时定义该数组下标的上限。 说明: ① 定义数组时必须指定数组名、数组的维数、数组的大小。系统规定数组下标的下限是 1。 ② 数组中各个元素在数组中的位置由下标表示。 例如,命令“DIMENSION X(4),Y(2,3)”分别定义了数组名为 X 的一维数组和数组名为 Y 的 二维数组。 数组 X 的下标下限为 1,上限为 4,故数组 X 的元素为:X(1),X(2),X(3),X(4)。 二维数组 Y 的下标下限为(1,1),上限为(2,3),因而数组 Y 有 2 行 3 列共 6 个元素: Y(1,1) Y(1,2) Y(1,3) Y(2,1) Y(2,2) Y(2,3) ③ 数组定义后,数组中各个元素的初始值是.F.。 ④ 数组中各个元素的取值类型可以互不相同。 ⑤ 用赋值命令可以对数组元素赋值,也可以对数组中的所有元素赋同一值。 ⑥ 在可以使用简单内存变量的地方,均可使用数组元素。 ⑦ 在同一运行环境中,数组名不能与简单内存变量同名。 【例 3-7】 DIMENSION X(4) X(1)=”10106” X(2)=”李冰” X(3)={^1981/6/5} X(4)=.T. DISP MEMO LIKE ?

2.2.5内存变量和数组的作用域1、全局变量定义为全局变量(PUBLIC)的内存变量和数组在全部程序、过程、自定义函数以及它调用的程序、过程和自定义函数中都有效。即使整个程序结束,全局内存变量和数组也不被释放。定义全局变量的命令:PUBLIC全局变量的释放命令:RELEASE、CLEARALL或CLEARMEMORY2、私有变量定义为私有变量(PRIVATE)的内存变量和数组可以在定义它的程序以及被该程序调用的子程序中有效。一旦定义它的程序运行完毕,私有内存变量和数组将从内存中释放。定义私有变量的命令:PRIVATE3、本地变量定义为本地变量(LOCAL)的内存变量和数组只在定义它的程序内有效,不能在上层或下层模块中使用。一旦定义它的程序运行结束,本地内存变量和数组将从内存释放。定义本地变量的命令:LOCAL<内存变量名表》2.3表达式表达式是VisualFoxPro命令的重要组成部分,它是由运算符将常量、变量和函数等运算对象连接起来的有意义的式子。在VisualFoxPro中,表达式分为以下5种。1、数值表达式数值型表达式是使用算术运算符将数值型常量、变量和函数连接起来的式子,参加运算的项目均为数值型,运算结果也为数值型。算术运算符及表达式实例见表2-1。表2-1算术运算符及表达式实例一览表运算符功能表达式表达式的值2°38**、乘幂16*、/乘、除36/9*4%526%7模运算(取余)5加、减2+8-5+、-算术运算符的优先级从高到低为:()(括号),一(负号),**或(乘幂),*、/、%(乘、除、取模),+、一(加、减)2、字符表达式使用字符运算符将字符型项目连接起来的算式称为字符型表达式,其运算结果也为字符型。字符运算符及实例见表2-2。表2-2字符运算符及表达式实例一览表运算符功能表达式表达式的值将两个字符串首尾连接组成+"Visual FoxPro"+"6.0"VisualFoxPro6.0一新字符串将前一个字符串尾部空格移到后一个字符串尾部,再将其"Visual"-"FoxPro"+"6.0"VisualFoxPro6.0首尾连接最成一新字符串.T.比较,查看前一个字符串是否"Fox"s"Visual FoxPro6.0"s.F.被包含在后一个字符串中"铜陵学院"$安徽铜陵市

2.2.5 内存变量和数组的作用域 1、全局变量 定义为全局变量(PUBLIC)的内存变量和数组在全部程序、过程、自定义函数以及它调 用的程序、过程和自定义函数中都有效。即使整个程序结束,全局内存变量和数组也不被释 放。 定义全局变量的命令:PUBLIC 全局变量的释放命令:RELEASE、CLEAR ALL 或 CLEAR MEMORY 2、私有变量 定义为私有变量(PRIVATE)的内存变量和数组可以在定义它的程序以及被该程序调用 的子程序中有效。一旦定义它的程序运行完毕,私有内存变量和数组将从内存中释放。 定义私有变量的命令:PRIVATE 3、本地变量 定义为本地变量(LOCAL)的内存变量和数组只在定义它的程序内有效,不能在上层或 下层模块中使用。一旦定义它的程序运行结束,本地内存变量和数组将从内存释放。 定义本地变量的命令:LOCAL 2.3 表达式 表达式是 Visual FoxPro 命令的重要组成部分,它是由运算符将常量、变量和函数等运 算对象连接起来的有意义的式子。在 Visual FoxPro 中,表达式分为以下 5 种。 1、数值表达式 数值型表达式是使用算术运算符将数值型常量、变量和函数连接起来的式子,参加运算 的项目均为数值型,运算结果也为数值型。 算术运算符及表达式实例见表 2-1。 表 2-1 算术运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 **、^ 乘幂 2^3 8 *、/ 乘、除 36/9*4 16 % 模运算(取余) 26%7 5 +、- 加、减 2+8-5 5 算术运算符的优先级从高到低为:()(括号),-(负号),**或^(乘幂),*、/、%(乘、 除、取模),+、-(加、减) 2、字符表达式 使用字符运算符将字符型项目连接起来的算式称为字符型表达式,其运算结果也为字符 型。字符运算符及实例见表 2-2。 表 2-2 字符运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 + 将两个字符串首尾连接组成 一新字符串 ”Visual FoxPro”+”6.0” Visual FoxPro6.0 - 将前一个字符串尾部空格移 到后一个字符串尾部,再将其 首尾连接最成一新字符串 ”Visual ”-”FoxPro” +”6.0” VisualFoxPro 6.0 $ 比较,查看前一个字符串是否 被包含在后一个字符串中 ”Fox”$”Visual FoxPro6.0” ”铜陵学院”$”安徽铜陵市” .T. .F

字符运算符无优先级,表达式按从左向右的方向计算。3、日期时间表达式日期时间表达式是使用算术运算符将日期型和日期时间型数据、数值型数据连接起来的算式,返回值为日期型、日期时间型或数值型使用形式有:①、《日期>土,得到一新的日期型数据:②、《日期时间>土-,得到一数值型数据,两个指定日期相差的天数:4、一,得到一数值型数据,两个指定日期时间相差的秒数。日期时间运算符及表达式实例见表2-3。表2-3日期时间运算符及表达式实例一览表运算符功能表达式表达式的值得到一新的日期型、日期{1995/10/12)+610/18/95+时间型数据{~1995/10/129:8:1)+610/18/9509:08:07AM得到一新的日期型、日期(1995/10/18)-610/12/956时间型数据或数值型数据(1995/10/18)-(1995/10/12)日期时间运算符无优先级,表达式按从左向右的方向计算。4、关系表达式关系表达式由关系运算符将两个数据对象连接起来进行比较运算,关系表达式中运算符两边的数据类型必须一致,返回值为逻辑型。关系运算符及表达式实例见表2-4。表2-4关系运算符及表达式实例一览表功能表达式运算符表达式的值大于5>3.T.等于.F.=2*5=25.T.<>, #, !=不等于5<>9=.T大于或等于4*5>=20==.F.字符串等于"Fox"=="FoxPro"关系运算符无优先级,表达式按从左向右的方向计算。逻辑表达式5、逻辑型表达式是由逻辑运算符将逻辑型数据连接起来的式子,返回值为逻辑型。逻辑运算符及表达式实例见表2-5。表3-5逻辑运算符及表达式实例一览表功能表达式运算符表达式的值.F..NOT.逻辑非.NOT. 5>3.T.. AND.逻辑与5>3. AND. 6>5.T..OR.逻辑或5>3. OR. 6<5逻辑运算符的优先级从高到低为:括号、.NOT.、.AND.、.OR.。注意:不同类型的运算符有可能出现在同一个表达式中,各种运算的优先级顺序从高到低为:先执行算术运算符、字符运算符和日期运算符,其次执行关系运算符,最后执行逻辑运算符

字符运算符无优先级,表达式按从左向右的方向计算。 3、日期时间表达式 日期时间表达式是使用算术运算符将日期型和日期时间型数据、数值型数据连接起来的 算式,返回值为日期型、日期时间型或数值型。 使用形式有: ➀、±,得到一新的日期型数据; ➁、±,得到一新的日期时间型数据; ➂、-,得到一数值型数据,两个指定日期相差的天数; ➃、-,得到一数值型数据,两个指定日期时间相差的秒数。 日期时间运算符及表达式实例见表 2-3。 表 2-3 日期时间运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 + 得到一新的日期型、日期 时间型数据 {^1995/10/12}+6 {^1995/10/12 9:8:1}+6 10/18/95 10/18/95 09:08:07 AM - 得到一新的日期型、日期 时间型数据或数值型数据 {^1995/10/18}-6 {^1995/10/18}-{^1995/10/12} 10/12/95 6 日期时间运算符无优先级,表达式按从左向右的方向计算。 4、关系表达式 关系表达式由关系运算符将两个数据对象连接起来进行比较运算,关系表达式中运算符 两边的数据类型必须一致,返回值为逻辑型。 关系运算符及表达式实例见表 2-4。 表 2-4 关系运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 大于 5>3 .T. = 等于 2*5=25 .F. <>,#,!= 不等于 5<>9 .T. =. 大于或等于 4*5>=20 .T == 字符串等于 ”Fox”==”FoxPro” .F. 关系运算符无优先级,表达式按从左向右的方向计算。 5、 逻辑表达式 逻辑型表达式是由逻辑运算符将逻辑型数据连接起来的式子,返回值为逻辑型。 逻辑运算符及表达式实例见表 2-5。 表 3-5 逻辑运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 .NOT. 逻辑非 .NOT.5>3 .F. .AND. 逻辑与 5>3.AND.6>5 .T. .OR. 逻辑或 5 >3.OR.6<5 .T. 逻辑运算符的优先级从高到低为:括号、.NOT.、.AND.、.OR.。 注意:不同类型的运算符有可能出现在同一个表达式中,各种运算的优先级顺序从高到 低为:先执行算术运算符、字符运算符和日期运算符,其次执行关系运算符,最后执行逻辑 运算符

2.4常用函数VisualFoxPro6.0提供的函数十分丰富,共有300多种,而且还提供了用户自定义函数。在使用函数过程中要注意以下几点:(1)函数的一般形式是:函数名([参数1]][,参数2]..)(2)函数名、参数和函数值是函数的三要素,函数可以没有参数,称为无参函数。(3)函数对其中的参数类型有一定要求,使用函数时要注意参数类型必须符合函数的要求,否则会产生类型不匹配的错误。(4)每个函数都有特定的数据运算或转换功能,函数都有返回值。函数返回值即函数值具有确定值和类型,因此在表达式中应用函数时也要注意类型要匹配。2.4.1数值函数数值函数主要用于数学运算,它的参数和返回的函数值都是数值型。1、绝对值函数格式:ABS()功能:返回指定数值表达式的绝对值。【例2-8】?ABS(-46)运行结果:46?ABS(-2*15.2)运行结果:30.42、取整函数格式:INT()功能:取数值表达式的整数部分。【例2-9】?INT(10.3)运行结果:10?INT (-10.8)运行结果:-103、符号函数格式:SIGN()功能:判断的符号,该数值为正、零、负数时分别返回1、0、-1。【例2-10】?SIGN(20)运行结果:1?SIGN(-36.5)运行结果:-1?SIGN(O)运行结果:04、自然指数函数格式:EXP()功能:求以自然数e为底、以数值表达式的值为指数的指数值。【例2-11】?EXP(1)运行结果:2.72?EXP(0)运行结果:1.005、对数函数(1)自然对数格式:LOG()功能:求的自然对数即以e为底的对数。(2)常用对数格式:LOG10(的常用对数即以10为底的对数。【例2-12】?L0G(2.72)运行结果:1.00?L0G10(100)运行结果:2.006、平方根函数格式:SQRT()

2.4 常 用 函 数 Visual FoxPro 6.0 提供的函数十分丰富,共有 300 多种,而且还提供了用户自定义函 数。在使用函数过程中要注意以下几点: (1)函数的一般形式是:函数名([参数 1][,参数 2].) (2)函数名、参数和函数值是函数的三要素,函数可以没有参数,称为无参函数。 (3)函数对其中的参数类型有一定要求,使用函数时要注意参数类型必须符合函数的要 求,否则会产生类型不匹配的错误。 (4)每个函数都有特定的数据运算或转换功能,函数都有返回值。函数返回值即函数值 具有确定值和类型,因此在表达式中应用函数时也要注意类型要匹配。 2.4.1 数值函数 数值函数主要用于数学运算,它的参数和返回的函数值都是数值型。 1、绝对值函数 格式:ABS() 功能:返回指定数值表达式的绝对值。 【例 2-8】?ABS(-46) 运行结果:46 ?ABS(-2*15.2) 运行结果:30.4 2、取整函数 格式:INT() 功能:取数值表达式的整数部分。 【例 2-9】?INT(10.3) 运行结果:10 ?INT(-10.8) 运行结果:-10 3、符号函数 格式:SIGN() 功能:判断的符号,该数值为正、零、负数时分别返回 1、0、-1。 【例 2-10】?SIGN(20)运行结果:1 ?SIGN(-36.5) 运行结果:-1 ?SIGN(0) 运行结果:0 4、自然指数函数 格式:EXP() 功能:求以自然数 e 为底、以数值表达式的值为指数的指数值。 【例 2-11】?EXP(1) 运行结果:2.72 ?EXP(0) 运行结果:1.00 5、对数函数 (1)自然对数 格式:LOG() 功能:求的自然对数即以 e 为底的对数。 (2)常用对数 格式:LOG10() 功能:求的常用对数即以 10 为底的对数。 【例 2-12】?LOG(2.72) 运行结果:1.00 ?LOG10(100) 运行结果:2.00 6、平方根函数 格式:SQRT()

功能:求的算术平方根。【例2-13】?SQRT(2),SQRT(16)运行结果:1.414.007、四舍五入函数格式:ROUND(,)功能:对的值进行四舍五入,保留的小数位数由来确定,设为N,当N>0时,则保留N位小数,其N+1位小数四舍五入,当N的整数部分从小数点向左的第N位四舍五入,当N=0时,《数值表达式1>四舍五入取整。【例2-14】?ROUND(65.3476,3),ROUND(52.35,0),ROUND(32.653,-1)85230运行结果:65.3488、最大值函数格式:MAX(,《表达式2》[,《表达式3>.J)功能:求的值之较大者,或中的最近日期。【例2-15】?MAX(96,80)运行结果:96?MAX({1999/10/20),(1980/05/15))运行结果:10/20/999、最小值函数格式:MIN(,《表达式2》[,《表达式3>J)功能:求《数值表达式>的值之较小者,或中的较远日期。【例2-16】?MIN(96,80)运行结果:80?MIN((1999/10/20),(1980/05/15))运行结果:05/15/8010、求余函数(或求模函数)格式:MOD(,《数值表达式2>)功能:求除以的余数,其正负号与相同。【例2-17】?MOD(17,5)运行结果:211、随机数函数格式:RAND([N])功能:返回0到1之间的随机数。2.4.2字符函数字符函数的处理对象均为字符型数据,但其返回值类型却各不相同。1、字符串长度函数格式:LEN()功能:测量值的长度,长度即字符个数,《字符串表达式>的值为空串时,则函数值为0。函数值为数值型N。【例2-18】?LEN("VisualFoxPro6.0")运行结果:17?LEN("世博会")运行结果:62、空格函数格式:SPACE()功能:产生值所指定数目的空格字符串,函数值为字符型C。【例2-19】?"中国”+SPACE(2)+”安徽”运行结果:中国安徽3、删除空格函数格式:TRIM()RTRIM(ALLTRIM()

功能:求的算术平方根。 【例 2-13】?SQRT(2),SQRT(16) 运行结果:1.41 4.00 7、四舍五入函数 格式:ROUND(,) 功能:对的值进行四舍五入,保留的小数位数由来确定, 设为 N,当 N>0 时,则保留 N 位小数,其 N+1 位小数四舍五入,当 N的整数部分从小数点向左的第 N 位四舍五入,当 N=0 时, 四舍五入取整。 【例 2-14】?ROUND(65.3476,3),ROUND(52.35,0),ROUND(32.653,-1) 运行结果:65.348 52 30 8、最大值函数 格式:MAX(,[,.]) 功能:求的值之较大者,或中的最近日期。 【例 2-15】?MAX(96,80) 运行结果:96 ?MAX({^1999/10/20},{^1980/05/15}) 运行结果:10/20/99 9、最小值函数 格式:MIN(,[,.]) 功能:求的值之较小者,或中的较远日期。 【例 2-16】?MIN(96,80) 运行结果:80 ?MIN({^1999/10/20},{^1980/05/15}) 运行结果:05/15/80 10、求余函数(或求模函数) 格式:MOD(, ) 功能:求除以的余数,其正负号与相同。 【例 2-17】?MOD(17,5) 运行结果:2 11、随机数函数 格式:RAND([N]) 功能:返回 0 到 1 之间的随机数。 2.4.2 字符函数 字符函数的处理对象均为字符型数据,但其返回值类型却各不相同。 1、字符串长度函数 格式:LEN() 功能:测量值的长度,长度即字符个数,的值为空串时, 则函数值为 0。函数值为数值型 N。 【例 2-18】?LEN(”Visual FoxPro 6.0”) 运行结果:17 ?LEN(”世博会”) 运行结果:6 2、空格函数 格式:SPACE() 功能:产生值所指定数目的空格字符串,函数值为字符型 C。 【例 2-19】?″中国″+SPACE(2)+″安徽″ 运行结果:中国 安徽 3、删除空格函数 格式:TRIM() RTRIM() ALLTRIM()

LTRIM()功能:删除字符串空格。第一、二个函数功能是删除字符串表达式值的尾部空格:第三个函数的功能是删除字符串表达式值前后空格(中间空格不能删除):第四个函数的功能是删除字符表达式值前面的空格。函数值为C型。【例2-20】?"ABCD"+"EF”运行结果:ABCDEF?TRIM("ABCD")+"EF"运行结果:ABCDEF?ALLTRIM("ABCD")+"EF"运行结果:ABCDEF?LTRIM("ABCD")+"EF"运行结果:ABCDEF4、取子串函数格式:SUBSTR(,[,J)功能:在中从起截取若干个字符,若《字符个数>省略或的值大于从起始位置到结束的所有字符个数,则取从起始位置起到字符串结束的所有字符作为函数值。函数值为C型。【例2-21】?SUBSTR(”ABCDEF”,3,2)运行结果:CD?SUBSTR(”中国首都”,5)运行结果:首都5、左取字符、右取字符函数格式:LEFT(《字符串表达式>,《字符个数>)RIGHT(,《字符个数>)功能:左取字符函数从值左边取若干个学符作为函数值。右取字符函数从值右边取若干个字符作为函数值。【例2-22)?LEFT(”ABCDEFG”,4)+RIGHT(”WXYZ”,2)运行结果:ABCDYZ6、复制字符串函数格式:REPLICATE(,N)功能:将指定的字符表达式重复N次,返回值是所形成的字符串。【例2-23】?REPLICATE("*”,5)运行结果:*****7、求子串位置函数格式1:AT(,「,格式2:ATC(,《字符表达式2>[,J)功能:函数值都为数值型。如果是的子串,则返回值的首字符在值中的位置;若不是子串,则返回0。第三个自变量表示要在值中搜索值的第几次出现,其默认值是1。ATC()与AT()功能类似,区别是ATC()在子串比较时不区分字母大小写。【例2-24】STORE"IamaChinese."TOX?AT("chinese",x)运行结果:0?ATC("chinese",x)运行结果:8?AT("a",X,2)运行结果:68、宏代换函数格式:&的内容。若有可选项,则&代换后的值与后面的的值串连起来,&与后面的之间必须插入一个圆点,这个点叫宏代换终界符。【例2-25】X=”ABC"ABC=52.38

LTRIM() 功能:删除字符串空格。第一、二个函数功能是删除字符串表达式值的尾部空格;第三个 函数的功能是删除字符串表达式值前后空格(中间空格不能删除);第四个函数的功能是删 除字符表达式值前面的空格。函数值为 C 型。 【例 2-20】?″ AB CD ″+″EF″运行结果: AB CD EF ?TRIM(″ AB CD ″)+″EF″ 运行结果: AB CDEF ?ALLTRIM(″ AB CD ″)+″EF″ 运行结果:AB CDEF ?LTRIM(″ AB CD ″)+″EF″ 运行结果:AB CD EF 4、取子串函数 格式:SUBSTR(,[,]) 功能:在中从起截取若干个字符,若省略或的值大于从起始位置到结束的所有字符个数,则取从起始位置起到字符串结束的所有 字符作为函数值。函数值为 C 型。 【例 2-21】?SUBSTR(″ABCDEF″,3,2) 运行结果:CD ?SUBSTR(″中国首都″,5) 运行结果:首都 5、左取字符、右取字符函数 格式:LEFT(,) RIGHT(,) 功能:左取字符函数从值左边取若干个字符作为函数值。右取字符函数 从值右边取若干个字符作为函数值。 【例 2-22】?LEFT(″ABCDEFG″,4)+RIGHT(″WXYZ″,2) 运行结果:ABCDYZ 6、复制字符串函数 格式:REPLICATE(,N) 功能:将指定的字符表达式重复 N 次,返回值是所形成的字符串。 【例 2-23】?REPLICATE(″*″,5) 运行结果:***** 7、求子串位置函数 格式 1:AT(,[,]) 格式 2:ATC(,[,]) 功能:函数值都为数值型。如果是的子串,则返回值的首字符在值中的位置;若不是子串,则返回 0。第三个自变量表示要在值中搜索值的第几次出现,其默认值是 1。 ATC()与 AT()功能类似,区别是 ATC()在子串比较时不区分字母大小写。 【例 2-24】STORE ″I am a Chinese.″ TO X ?AT(″chinese″,x) 运行结果:0 ?ATC(″chinese″,x) 运行结果:8 ?AT(″a″,x,2) 运行结果:6 8、宏代换函数 格式:&[.] 功能:&是宏代换函数,用于代换的内容。若有可选项,则&代换后的值与后面的的值串连起来,&与后面的之间必须插入一个圆点,这个点叫宏代换终界符。 【例 2-25】X=″ABC″ ABC=52.38

共16页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档