数据库原理第3章中文VisualFoxpro6.0语言基础.ppt

上传人:小飞机 文档编号:6578458 上传时间:2023-11-14 格式:PPT 页数:84 大小:592.50KB
返回 下载 相关 举报
数据库原理第3章中文VisualFoxpro6.0语言基础.ppt_第1页
第1页 / 共84页
数据库原理第3章中文VisualFoxpro6.0语言基础.ppt_第2页
第2页 / 共84页
数据库原理第3章中文VisualFoxpro6.0语言基础.ppt_第3页
第3页 / 共84页
数据库原理第3章中文VisualFoxpro6.0语言基础.ppt_第4页
第4页 / 共84页
数据库原理第3章中文VisualFoxpro6.0语言基础.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《数据库原理第3章中文VisualFoxpro6.0语言基础.ppt》由会员分享,可在线阅读,更多相关《数据库原理第3章中文VisualFoxpro6.0语言基础.ppt(84页珍藏版)》请在三一办公上搜索。

1、第3章中文Visual Foxpro 6.0语言基础,3.1 数据类型3.2 常量与变量3.3 标准函数3.4 表达式,学习目标,理解数据类型、常量和变量的概念;掌握各种数据类型的特点和常量的表示形式;掌握数组的定义和数组元素的引用;掌握各类标准函数的使用方法;理解表达式的概念和表达式的分类;掌握表达式的计算方法与步骤。,重点与难点,重点在于表达式的正确书写和运算;难点在于函数的灵活应用。,3.1 数据类型,数据类型确定数据的存储方式和使用方式,它是使用VFP的语言基础,了解各种数据类型的有关知识十分必要。,VFP提供的数据类型,type(字符表达式)譬如:x=12.3?type(x)&显示“

2、N”,字符型(C),字符型数据由字母(AZ或az)、汉字、数字(09)、空格等任意ASCII码组成,长度为0254,每个字符占一个字节。不能进行四则运算的数据须用字符型表示。字符型常量用单引号()、双引号(“”)或中括号()界定符来界定,注意:界定符不属于字符型常量。譬如:中国,中国或中国。,货币型-Y,表示钱数的多少使用货币型,每个货币型数据占8个字节,可以表示比较宽的数据,在小数位数超过4位时,系统将自动进行“四舍五入”处理。在指定某个常量为货币类型时,要使用“$”符号。譬如:x=$13.58。,数值型-N,数值型数据由数字(09)、一个符号(+或-)或一个小数点(.)组成,长度为120位

3、(包括符号和小数点),每个数据占8个字节。譬如:-100.5 234.56能够进行四则运算。,浮点型-F,浮点型也叫单精度浮点型,提供此类型是VFP为了提供兼容性,它的功能与数值型等价,只不过该类型只能用于数据表的字段。,日期型-D,日期型用来表示日期,长度固定为8个字符,包括年、月和日三个部分,其中年(yyyy)占4位,月(mm)占2位,日(dd)占2位。每个部分用规定的分隔符分开,而且各个部分的排列顺序也可以不同,所以日期型数据有多种多样的表现形式。日期常量严格输入格式为yyyy-mm-dd,默认显示是为mm/dd/yy。譬如:03/22/07,日期设置,set date ansi&年月日

4、格式,用“.”分隔set century on&用4位表示年份,如果为 off,则2位表示年份set mark to-&分隔符用“-”set date to ymd&年月日格式set date to mdy&月日年格式,日期时间型-T,日期时间型用于描述日期和时间数据,长度也是固定为8个字符,它除了包括日期的年、月、日外,还包括时、分、秒以及上午、下午。日期时间型常量输入严格格式为yyyy-mm-dd hh:mm:ss a|p,譬如:2007-04-01 5:30:20 p 表示2007年4月1日下午5点30分20秒,p表示下午。同日期型一样,日期时间型也有多种输出格式,最常用的是mm/dd/

5、yy hh:mm:ss am|pm。譬如:04/01/07 05:30:20 PM,双精度型-B,双精度型就是双精度浮点型,同数值型比,它能提供更高的数值精度,采用固定存储长度的浮点数形式,每个双精度浮点型数据占8个字节,与数值型数据不同,它的小数点位置是由输入的数据值来决定的,并且只能用于表中的字段。,整型-I,整型用于表示无小数部分的数据,占4个字节,以二进制形式存储,不像数值型需要转换成ASCII字符存储,它只能用于数据表的字段。,逻辑型-L,逻辑型用于对客观事物判断,取值可以是“真”或“假”,长度固定为1个字节。逻辑型的“真”可以用.T.、.t.或.Y.、.y.表示;“假”可以用.F.

6、、.f.或.N.、.n.表示,注意:字符两边的“.”不能省,也不能用空格隔开。,备注型-M,备注型数据用于存放较长的字符型数据(字符数据块),可以认为是字符型数据的特殊形式,只能用于数据表中的字段。在表中,备注型字段占4个字节,显然,这4个字节并不是用来存放实际的字符数据,它实际只是存放一个指针(地址),用于指向字符在备注文件中的相对位置。VFP系统将备注型数据存放在一个与数据表同名的备注文件中。譬如:一个有备注字段的数据表的文件名为test.dbf,对应的备注文件名为test.fpt。,备注字段的处理,备注型数据没有长度限制,仅受限于现有的可用磁盘空间,且备注型字段的实际内容变化很大。另外又

7、没有对应的备注型的内存变量。对备注型字段的处理,需要转换成字符型变量,然后利用字符型函数或表达式进行处理。,通用型-G,通用型数据用于存储OLE对象的数据,它只能用于数据表中的字段,长度固定为4个字节。同备注型一样,也只是存放一个指针用于指向实际数据在备注文件中的相对位置,实际数据或对OLE对象引用的路径存放在与数据表同名的备注文件中。OLE对象的具体内容可以是一个电子表格、Word文档或图片等,所以通用型数据也没有长度的限制,实际长度仅受限于现有的磁盘空间。,二进制字符型,该类型数据可用于存储任意不经过代码页修改的字符数据,它只能用在表中的字段。,二进制备注型,该类型数据可用于存储任意不经过

8、代码页修改的备注型数据,它只能用在表中的字段。,3.2 常量与变量,在程序运行过程中,有些量不能被改变,而有些量可以被改变,所以根据量是否能够被改变可以分为常量和变量。用于存储数据的变量、数组、字段、对象属性等都称为数据存储容器。,3.2.1 常量,程序运行过程中不能被改变的量,称为常量。在VFP中,常量也是具有一定的类型,根据是否直接引用可以分为字面常量和符号常量。(1)字面常量就是直接引用的常量;(2)符号常量就是用一个符号来引用的常量。,字面常量,常量类型3.14是数值型常量;“ABC”是字符型常量;2007-03-08是日期型常量;.T.和.F.都是逻辑型常量。,符号常量,在程序方式还

9、可以使用伪编译指令#define定义符号常量,例如:#define PI 3.14&定义符号常量 S=PI*r*r&引用符号常量符号常量的标识符含义明了,还可以实现“一改全改”。,3.2.2 变量,程序运行过程中可以被改变的量,称为变量。同常量相比,变量有对应的存储空间,可以存放初值、中间值或程序运行结果。同样变量也是有一定的类型的,只不过它不是强制类型,而是通过赋值的类型来确定变量的类型,同一个变量在不同时刻根据存放值的类型改变,变量的类型也随之发生改变。,标识符(Identifer),命名规则:由字母(包括汉字)、数字和下划线三种字符组成,且第一个字符不能为数字,长度不超过254个字符。标

10、识符使用:变量名,符号常量名,函数名,属性名等。,内存变量和字段变量,变量可以分为内存变量和字段变量。内存变量是内存中一个存储单元的位置名称,通过变量名存取这个存储单元的数据。VFP退出或断电后,原来存放在内存中的数据会被清除。字段变量随着数据表存放在磁盘上,在需要的时候才被调入内存。所以断电后内存变量的数据会丢失,而字段变量的数据仍然存在。,内存变量分类,可以分为系统变量、内存变量和数组。,系统变量,系统变量名以下划线开头,譬如:_PAGENO用于存放系统有关的设置值,所有系统变量及其设置值以数据表的方式存放在磁盘上,在系统启动时调入内存。系统变量可以通过“工具”菜单的“选项”进行重新设置。

11、,内存变量,内存变量的操作包括给变量赋值、显示、清除、存盘或恢复等。,(1)内变量的赋值,内存变量就是给内存变量赋值,内存变量赋值可定义一个新的内存变量的值和类型,也可改变已有内存变量的值或数据类型。赋值有两种格式:可以使用store或“=”命令来实现变量的赋值,前者可以一次给多个变量赋值,而后者只能给一个变量赋值。格式1=:一次只能给一个内存赋值 a=10&定义内存变量a,其值为10 b=“华南理工广州汽车学院”c=2008/10/15,(1)变量的赋值(续),格式2 store to store 10 to a,b,c 同时给若干个变量赋值,用逗号分开 store.F.to a,b sto

12、re“中国”to c 内存变量的输出格式1?功能:计算表达式的值,并将其显示在屏幕上,每次输出一个回车换行符,表达式将在下一行的起始处输出,内存变量的输出(补充),内存变量的输出格式1?功能:计算表达式的值,并将其显示在屏幕上,每次输出一个回车换行符,表达式将在下一行的起始处输出?a?b格式2?功能:计算表达式的值,并将其显示在屏幕上,不会输出一个回车换行符,稳中有降表达式值在当前的光标所在处直接输出?aa,(2)显示内存变量,格式1LIST MEMORYLIKETO PRINTER/TO FILETO PRINTER/TO FILE用于在显示的同时送往打印机或者存入给定文件名的文本文件中,文

13、件的扩展名为.TXT,(2)显示内存变量,例:list memo like abc*&显示以字母abc开头的内存变量display memo like x?y&显示以x字母开头,y字母结尾,中间可以有0个或1个任意字符。LIST MEMORY LIKE A*&表示只显示变量名以A开头的所有内存变量AB,(3)清除内存变量,格式1CLEAR MEMORY格式2RELEASE格式3RELEASE ALL格式4RELEASE ALL LIKE/EXCEPT功能1格式1清除所有内存变量 2清除指定的内存变量 3清除所有的内存变量 4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除

14、与通配符不相匹配的内存变量.所谓“清除”就是某些不需要再用的内存变量或数组从内存中释放,以节省内存空间,清除后的内存不能再使用,除非重新定义。举例:release all a,b,c&清除变量a,b,c clear memory except a*&清除非a开头的内存变量注意:系统变量是不能被清除的。,例:,RELEASE ALL EXCEPT B?表示清除现有的内存变量中除了变量名由两个字符组成,并且以B开关的变量之外的其他内存变量,(4)内存变量存盘,所谓“存盘”就是将已经定义的某些内存变量、数组元素的有关信息,包括名字、特性(公共、私有或本地)、类型、值等保存到磁盘上的内存文件(.mem

15、)中,在需要的时候可以恢复到内存。命令格式如下:save all like|except 框架 to 内存变量文件名 在管理信息系统设计中,常常将用户名和密码保存在内存变量文件中制成“钥匙盘”,登录系统时只需插入“钥匙盘”进行认证,即将用户名和密码变量恢复到内存。,(5)恢复内存变量,所谓“恢复”就是从内存变量文件中恢复其中所有的内存变量的名字、特性、类型和值,被恢复的内存变量可以在下面的程序中使用。命令格式如下:restore from 内存变量文件名 additive若采用additive系统不清除当前的所有内存变量,而是将内存变量文件中保存的所有内存变量增加到当前所有内存变量之后,如果这

16、两部分的内存变量名有重复,则系统只保留内存变量文件中的内存变量。若不采用additive,则系统先清除当前的所有内存变量,然后再恢复内存变量文件中的所有变量。,数组,数组是由同一个名字组织起来的,通过下标加以区分的简单内存变量的集合,它是有序的。数组的元素通过数组名和下标唯一确定,如:a(1),a(2)。对数组引用,下标是从1开始的。数组元素相当于变量。在VFP中,同一个数组元素在不同时刻可以存放不同类型的数据,并且在同一数组中的每个元素的值也可以是不同的数据类型。数组可以分为一维数组和二维数组。数组在使用前必须先定义。,数组的定义,(1)使用declare格式(2)使用dimension格式

17、(3)使用public格式(4)使用local格式,数组定义和引用 举例,数组的重新定义和动态地缩放,数组元素或数组的赋值(补充),格式1 STORE 表达式 TO 格式2=注意:重新赋值后,数组元素的数据类型由其值决定 一个数组中的各个元素的数据类型可以相同,也可以不同 在赋值和输入语句使用数组名时会将同一个值同时赋给该数组的全部数组元素.例:DIMENSION AB(2,2)AB=15表示AB数组中的全部数组元素的值为15可以用一维数组的形式访问二维数组,AB(2,2)中的各元素用一维数组形式可依次表示为AB(1),AB(2),AB(3),AB(4)其中AB(3)和AB(2,1)是同一个变

18、量在同一运行环境下,数组名不能简单变量名重复,题:,DIMENSION A(2,3)A=150A(2,2)=2*A(2,2)?A(5),A(1,2),字段变量(补充),字段变量是表结构的一部分,要使用字段,必须先打开包含字段的表,而内存变量与表无关内存变量为单值变量,面字段变量为多值变量二者同名时,字段变量具有优先权,3.3标准函数,在VFP中,有两类函数:标准函数和用户自定义函数。系统提供了一批标准函数,调用这些函数就可以方便地完成某些操作,灵活地应用标准函数可以提高数据库使用和编程的效率。但是有些复杂的操作并没有对应的标准函数,这时就需要用户自己定义函数。,函数的概念,数学函数:z=f(x

19、,y)函数的一般形式如下:函数名()函数的组成包括函数名、函数的参数和函数的返回值。在函数调用时,要注意参数的类型和数据范围和返回值的类型。,常用的函数,1数值计算函数2字符处理函数3日期函数4类型转换函数5测试函数 注意:函数名可以缩写为前面4个字母。,常用的函数(补充),1数值计算函数(1)绝对值函数格式:ABS()功能:返回指定的数值表达式的绝对值例:?ABS(123)?ABS(-123)ABS(0)(2)取整数函数格式:INT()功能:返回指定的数值表达式的整数部分例:?INT(2.123)?INT(-34.33),常用的函数(补充),1数值计算函数(3)求平方根函数格式:SQRT()

20、功能:返回指定的数值表达式的平方根.数值表达式不能为负数例:?SQRT(4)?SQRT(0)(4)四舍五入函数格式:ROUND(,)功能:返回指定的数值表达式的四舍五入结果.指明四舍五入的位置例:?ROUND(233.222,2)?ROUND(-345.3233,0)?ROUND(345.3453,0),常用的函数(补充),1数值计算函数(5)求模函数格式:MOD(,)功能:返回两个数值相除后的余数,1是被除数2是除数例:?MOD(10,3)?ABS(-123)ABS(0)(6)求最大值函数格式:MAX(,)功能:计算各表达式的值,并返回其中的最大值,数值,字符,货币等,必须所有表达式类型相同

21、例:?MAX(2,3,4)?MAX(“长春”,”北京”)&按第一个字拼音的第一个字母的值比较,常用的函数(补充),1字符处理函数(1)求字符串长度函数格式:LEN()功能:返回指定字符表达式值的长充,即包含字符个数.返回值为数值型例:?LEN(“华南理工广州汽车学院”)(2)大小写转换函数格式:LOWER(大写转小写 UPPER()小写转大写例:?LOWER(“VISUAL FOXPRO”)?UPPER(“visual foxpro”),常用的函数(补充),1字符处理函数(3)空格字符串生成函数格式:SPACE()功能:返回由数值表达式指定数目的空格组成的字符串例:?SPACE(4)(4)删除

22、前后空格函数格式:TRIM(去掉尾部空格后形成的字符串 LTRIM()去掉前导空格后形成的字符串 ALLTRIM()去掉前导和尾部空格后形成的字符串例:AA=“STUDENT“?TRIM(AA),?LEN(TRIM(AA)?LTRIM(AA),?ALLTRIM(AA),常用的函数(补充),1字符处理函数(5)左右取字符串函数格式:LEFT(,)RIGHT(,)功能:LEFT()从指定表达式值的左端取一个指定长度的字符串 RIGHT()从指定表达式值的右端取一个批定长度的字符串例:?LEFT(“华南理工大学广州汽车学院”,8)?RIGHT(“华南理工大学广州汽车学院”,8)(6)指定位置取字符串

23、函数格式:SUBSTR(,)功能:对字符表达式从指定的起始位置开始截取指定长度的字符串 说明:如果无或大于后面剩余的字符个数,则截到末尾 如果大于字符表达式长度,则输出空串例:?SUBS(“华南理工大学广州汽车学院”,9,4)?LEN(SUBS(“华南理工大学广州汽车学院”,22),常用的函数(补充),3日期及日期时间处理函数(1)系统日期和时间函数格式:DATE()返回当前日期,值为日期型 TIME()DATETIME()(2)求年份,月份,天数函数格式:YEAR(/)MONTH(/)DAY(/)例:?YEAR(2005/08/06)?MONTH(2005/08/06)?YEAR(DATE(

24、)-YEAR(出生日期)&年令?MONTH(出生日期)=10,常用的函数(补充),3日期及日期时间处理函数(3)小时 分和秒函数格式:HOUR()返回小时部分 MINUTE()返回分钟部分 SEC()返回秒部分 例:STORE 2008/09/01 2:43:50 P TO A?HOUR(A)?MINUTE(A)?SEC(A),常用的函数(补充),4数据类型转换函数(1)数值转换成字符串函数格式:STR(,功能:将数值型数据转换为字符型数据说明:(1)给出转换后的字符串长度,该长度包括小数点,负号如果省略和将取固定长度为10位,且只取其整数部分作为返回结果(2)若省略则只转换整数位并对第一位小

25、数位四舍五入,若指定小数位,则对指定位的下一位四舍五入(3)若指定的小于的整数位数,则用一串*号表示数据溢出,若为0,则返回空字符串例:?STR(1234.5678,7,2),?STR(1234.5678,4)?STR(1234.5678,0)?STR(1234.5678,3),常用的函数(补充),4数据类型转换函数(2)字型转换成数值函数格式:VAL功能:将宇符型数据转换为数值型数据说明:(1)若由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余四舍五入.(2)若由非数字字符开头,则转换为0.00(3)若由数字字符开头,且混有非数字字符时,则转换到第一个非数字字符.例:?VA

26、L(“1234.5678”)?VAL(FOX)?VAL(1234FOX.345),常用的函数(补充),4数据类型转换函数(1)数值转换成字符串函数格式:STR(,功能:将数值型数据转换为字符型数据说明:(1)给出转换后的字符串长度,该长度包括小数点,负号如果省略和将取固定长度为10位,且只取其整数部分作为返回结果(2)若省略则只转换整数位并对第一位小数位四舍五入,若指定小数位,则对指定位的下一位四舍五入(3)若指定的小于的整数位数,则用一串*号表示数据溢出,若为0,则返回空字符串例:?STR(1234.5678,7,2),?STR(1234.5678,4)?STR(1234.5678,0)?S

27、TR(1234.5678,3),常用的函数(补充),3日期及日期时间处理函数(1)系统日期和时间函数格式:DATE()返回当前日期,值为日期型 TIME()DATETIME()(2)求年份,月份,天数函数格式:YEAR(/)MONTH(/)DAY(/)例:?YEAR(2005/08/06)?MONTH(2005/08/06)?YEAR(DATE()-YEAR(出生日期)&年令?MONTH(出生日期)=10,1数值计算函数,2字符处理函数,3日期函数,4类型转换函数,5测试函数,3.4表达式,表达式的概念表达式的运算,表达式的概念,表达式是通过运算符将常量、变量和函数等运算量按一定规则组成具有一

28、定意义的式子。表达式包括运算符和运算量。表达式运算的结果是一个具有固定数据类型的常量,根据最后表达式结果可以分成不同的表达式类型,譬如:数值型、字符型、日期型和逻辑型。表达式的结果可以在命令窗口,使用“?”或“?”显示。,表达式运算的优先级,表达式的计算一般是从左到右,按优先级的高低从高到低进行运算,赋值运算的优先级最低,譬如:c=a+b。如果表达式中只有一种类型的运算符,则按各自的优先级来进行运算;如果表达式中有两类或两类以上的运算符,则按照算术运算、字符运算、关系运算和逻辑运算的先后顺序来进行运算。,表达式的运算,数值表达式字符表达式日期表达式 关系表达式 逻辑表达式 名表达式,1.数值表

29、达式,注意:VFP中的运算符与数学中的运算符是有差别的,乘法不能省略。,算术运算的优先级是:先括号“()”,在同一括号内,按先乘方(*,),再乘除(*,/),再模运算(%),后加减(+,-)。,举例,2.字符表达式,举例,3.日期表达式,举例,4.关系表达式,关系表达式可以由关系运算符和数值表达式、字符表达式和日期表达式组成,它的运算结果为逻辑型常量,常常用来表示单个条件。关系运算是运算符两边同类型元素的比较,关系成立结果为.T.,否则为.F.。,注意:关系运算符同数学上的表示有些差异,另外关系运算符的优先级低于算术运算符。,举例,5.逻辑表达式,逻辑表达式是由逻辑运算符和逻辑型常量、变量和返

30、回逻辑型数据的函数或关系表达式所组成,它的运算结果也是逻辑型常量。,注意:逻辑运算符两边的“.”不能省略,逻辑运算符的优先级从高到低:括号、.not.、.and.、.or.。,举例,6.名表达式,在VFP中,允许用户间接引用变量的值或给命令和函数等定义一个名字,这就是使用名表达式。名表达式是将变量、命令或函数等的名字存入到内存变量或数组中,在引用变量、命令和函数时就可以使用存放名字的内存变量或数组元素来代替,这样可以给程序开发带来便利。,举例,本章小结,常量与变量;它们都属于一定的数据类型。函数:标准函数和用户自定义函数。常用的标准函数。表达式与表达式的计算。,作业,P52 3.11至3.20,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号