vf学习资料.doc_第1页
vf学习资料.doc_第2页
vf学习资料.doc_第3页
vf学习资料.doc_第4页
vf学习资料.doc_第5页
免费预览已结束,剩余126页可下载查看

下载本文档

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

文档简介

1.本章摘要介绍与数据库有关的基本概念和知识,包括数据、信息和数据处理、数据管理技术的发展、数据库系统、数据模型以及关系数据库等。Visual FoxPro的语法基础,包括常量、字段变量、内存变量、函数、表达式的概念及其使用规则。Visual FoxPro作为一门数据库编程语言,和其他编程语言一样,所编写的程序都是由常量、变量、函数、表达式等基本语法组成的。而作为一门数据库语言,Visual FoxPro突出了数据库管理的特点,其中一些数据元素不仅在程序中使用,也被包含在数据库文件中。这些基本概念和知识是学习和使用Visual FoxPro的基础。近年来,计算机的数据库技术和网络技术相互结合和渗透,已成为计算机方面发展最迅速和应用最广泛的两大领域。对于在日常生活、生产经营、金融证券、事务管理等活动中产生的大量数据,数据库管理系统以数据库的方式进行组织和存储,并编写数据库应用程序以实现数据的共享和高效处理,从而满足人们对数据管理的各种需要。目前流行的开发数据库系统的编程语言有多种,如Visual FoxPro、SQL、Delphi、Oracle、Java等,它们各有其功能和特点。本书介绍的Visual FoxPro(缩写为VFP)数据库语言由于具有简单易学、使用方便、开发成本低等特点,在我国有着广泛的应用基础,适合初学者用来掌握数据库语言的基本结构和特点,并很容易通过它来开发一些实用的中小型数据库系统。本章介绍数据与数据处理的基本概念和数据库的概念、相关术语、基本运算及Visual FoxPro的语法基础等,为进一步学习和应用Visual FoxPro数据库语言准备好基础知识。 2、数据基础知识1、 计算机数据管理的发展数据处理的内容首先是数据的管理。计算机发明以后,人们一直在努力寻求如何用计算机更有效地管理数据。随着计算机硬件和软件技术的发展,计算机数据管理技术也经历了从低级阶段发展到高级阶段的过程,技术上也越来越成熟。按照一般文献划分,计算机数据管理的发展有如下几个阶段。一、 人工管理阶段20世纪50年代是第一代计算机应用阶段。当时,计算机没有磁盘这样的能长期保存数据的存储设备,这个时期的数据管理是用人工方式把数据保存在卡片、纸带这类的介质上,所以称为人工管理阶段。这个阶段数据管理的最大特征是数据由计算数据的程序携带,二者混合在一起,因此具有以下特点。1数据不能独立由于数据和程序混合在一起,这样就不能处理大量的数据,更谈不上数据的独立与共享,一组数据只能被一个程序专用。此外,当程序中的数据类型、格式发生变化时,相应程序也必须进行修改。2数据不能长期保存这个阶段计算机的主要任务是科学计算。计算机运行时,程序和数据在计算机中,程序运行结束后,数据即从计算机中释放出来。3数据没有专门的管理软件由于计算机系统没有数据管理软件管理数据,也就没有数据的统一存取规则。数据的存取、输入输出方式就由编写程序的程序员自己确定,这就增加了程序编写的负担。二、文件系统阶段随着计算机对数据处理要求的不断增加,人们对数据处理的重要性越来越重视。20世纪50年代末至60年代,计算机操作系统中专门设置了文件系统来管理数据,计算机的数据管理进入了文件系统阶段。这个阶段的主要特征是数据文件和处理数据的程序文件分离,数据文件由文件系统管理,它确立数据文件和程序文件的接口,保证文件能被正确地调用。与人工阶段相比,文件系统阶段是有所进步,但还是存在以下缺点。1数据独立性差,不能共享数据虽然从程序文件中分离了出来,但文件系统管理的数据文件只能简单地存放数据,且一个数据文件一般只能被相应的程序文件专用,相同的数据要被另外的程序使用,必须再产生数据文件,这样就出现了数据的重复存储问题,即数据冗余。2数据文件不能集中管理由于这阶段的数据文件没有合理和规范的结构,数据文件之间不能建立联系,使得数据文件不能集中管理,数据使用的安全性和完整性都得不到保证。三、 数据库系统阶段20世纪60年代末,计算机的数据管理进入数据库系统阶段。这时,由于计算机的数据处理量迅速增长,其数据管理得到了人们的高度重视,随后在美国产生了技术成熟、具有商业价值的数据库管理系统。数据库系统不仅有效地实现了程序和数据的分离,而且它把大量的数据组织在一种特定结构的数据库文件中,多个不同程序都可以调用数据库中相同的数据,从而实现了数据的统一管理及数据共享。与文件系统相比,数据库系统具有以下特点。1实现数据共享,减少数据冗余度由于数据库文件不仅与程序文件相互独立,而且具有合理规范的结构,使得不同的程序可以同时使用数据库中相同的数据,这样就大大节省了存储资源,减少了数据的冗余度。2实现数据独立数据独立包括物理数据独立和逻辑数据独立。物理数据是指数据在硬件上的存储形式,其独立性是指当数据的存储结构发生变化时,不影响数据的逻辑结构,也就不会影响程序的运行。逻辑数据是指数据在用户面前的表现形式,当逻辑数据结构发生变化时也不影响应用程序,这就是逻辑数据的独立性。这两种数据的独立性有效地保证了数据库运行的稳定性。3采用合理的数据结构加强了数据的联系数据库采用了合理的结构来安排其中的数据,不仅同一数据文件中的数据之间存在特定的联系,各数据文件之间也可以建立关系,这是文件系统不能做到的。4加强数据保护关系数据库1、 关系模型关系模型:是一种以关系(二维表)的形式表示实体与实体之间联系的数据模型。关系模型不像层次模型和网状模型那样使用大量的链接指针把有关数据集合到一起,而是用一张二维表来描述一个关系。关系模型的主要特点如下:1、关系中的每一分量不可再分,是最基本的数据单位。2、关系中每一列的分量是同属性的,列数根据需要而设,且各列的顺序是任意的。3、关系中每一行由一个具体实体或者联系的一个或多个属性构成,且各行的顺序可以是任意的。4、一个关系是一张二维表,不允许有相同的列(属性),也不允许有相同的行(元组)。表1-1所示的是一张商品情况表。在二维表中,每一行称为一个记录,用于表示一组数据项;表中的每一列称为一个字段或属性,用于表示每列中的数据项。表中的第一行称为字段名,用于表示每个字段的名称。表1-1 关系模型的二维表2、 关系运算在关系数据库中,经常需要对关系进行特定的关系运算操作。基本的关系运算有选择、投影和连接三种。关系运算的结果仍然是一个关系。1选择运算选择运算是从关系中找出满足条件的元组(记录)。选择运算是一种横向的操作,它可以根据用户的要求从关系中筛选出满足一定条件的元组,这种运算的结果是关系表中的元组的子集,其结构和关系的结构相同。在Visual FoxPro的命令中,可以通过条件子句FOR、WHILE等实现选择运算。例如,通过Visual FoxPro的命令从表1-1中找出计算机成绩大于等于80分的学生,应使用的命令是:LIST FOR计算机=802投影运算投影运算:是从关系中选取若干个属性组成一个新的关系。投影运算是一种纵向操作,它可以根据用户的要求从关系中选出若干属性(字段)组成新的关系。其关系模式所包含的属性个数往往比原有关系少,或者属性的排列顺序不同。因此投影运算可以改变关系中的结构。在Visual FoxPro的命令中,可以通过子句FIELDS 等实现投影运算。例如,需要在表1-1的(学号,姓名,性别,院系,生年月日,英语,计算机,奖学金,党员否,备注)关系中只显示“学号”,“姓名”,“性别”和“院系”4个字段的内容,应使用的命令是:LIST学号,姓名,性别,院系3连接运算连接运算:是将两个关系通过共同的属性名(字段名)连接成一个新的关系。连接运算可以实现两个关系的横向合并,在新的关系中反映出原来两个关系之间的联系。VFP使用Join命令来实现连接运算。3、数据库设计基础1、数据库设计步骤设计原则: 概念单一化“一事一地”原则 避免在表之间出现重复字段 表中的字段必须是原始数据和基本数据元素 用外部关键字保证有关联的表之间的联系2、设计步骤需求分析确定需要的表确定所需字段确定联系设计求精3、数据库设计过程一 、需求分析信息需求处理需求安全性和完整性要求二、确定需要的表三、确定所需字段四、确定联系(一对多、多对多、一对一、)4、Microsoft Visual Foxpro 6.0 的发展历程Visual Foxho是在xBase(dBase、FoxBase、FoxPro)数据库管理系统的基础上发展起来的,经历了不断的升级改版,发展成现在这种在Windows操作系统支持下的数据库语言。C.Wayne Ratliff是美国加利福尼亚州Martin-Marietta公司的一位从事航空航天工作的工程师,负责管理宇宙飞船地面支持系统的数据库系统,由于需要统计分析大量的数据,他在1975年开发出了在个人计算机上运行的交互式数据库管理系统。由于意识到这种系统巨大的市场潜力,Ratliff在1980年和三个从事产品推销的人成立了Ashton-Tate公司来销售这个软件,并把这个软件直接命名为dBase ,而没有用dBase,以表示这种软件的成熟,来增强用户对产品的信心。dBase经过开发和维护,升级为dBase ,占领了当时美国个人计算机数据库软件70%的市场。由于dBase 具有简单、易学、实用等特点,20世纪80年代在我国也得到了广泛应用。1986年,由Dave Fulton教授领导的Fox Software公司在dBase的基础上推出了FoxBASE数据库管理系统,FoxBase完全兼容dBase,使用相同的语言语法和文件格式,但它克服了dBase不能处理数组以及数据处理速度慢的缺陷,从而赢得了市场,成为个人计算机数据库开发环境的主角。Fox Software公司以后又推出了FoxBase+、FoxPro1.0、FoxPro2.0等升级版本。对于这些建立在dBase语言语法和文件格式基础上的数据库语言,习惯上称之为xBase系列的产品。Microsoft公司在1992年收购了Fox Software公司之后推出了FoxPro 2.5, FoxPro 2.5有MS-DOS和Windows两种版本,其中值得一提的是,FoxPro 2.5 For Windows版本是一项跨越式的进步,它使多年来运行在DOS环境下的数据库文件及管理程序,不加修改就可运行在20世纪90年代初期诞生的基于图形界面的Windows操作平台上。Microsoft公司于1995年6月推出了Visual FoxPro 3.0(简称VFP)数据库管理系统。这是一个在Windows环境下的面向对象的可视化编程工具,它的出现使人们对数据库系统的程序设计从面向过程的编程阶段过渡到面向对象编程的新阶段,这在数据库语言的发展史上具有里程碑的意义。VFP不仅增加了字段,扩大了数据的处理范围,而且其友好的图形界面、强大的功能、高效率的编程方法,使用户能快速地建立和修改应用程序,使初学者也能设计出界面美观、功能齐全的具有商业价值的数据库应用系统1997年,Microsoft负公司推出Visual FoxPro 5.0版,主要引进了Internet技术和ActiveX技术;1998年,在推出Windows 98操作系统的同时推出了Visual FoxPro 6.0版,近年又相继推出了Visual FoxPro 7.0、8.0、9.0版,以后的版本主要是增强VFP的网络功能以及与其他应用程序的联系,例如在Internet上得到全面支持,以Web方式操作数据库,与微软事物服务器、Visual Basic和ASP等其他产品实现技术共同工作。微软公司向我国用户推出的是中文版的VFP,中文版除了具有英文版的全部功能外,它提供的中文界面更符合中国用户的使用习惯。本书以目前在我国广为流行的Visual FoxPro 6.0中文版为基础,介绍数据库管理系统的使用。Visual FoxPro 6.0是面向对象的、可视化的关系型数据库管理系统。它采用的核心查询技术是Rushmore查询优化技术,大大提高了系统的性能。它是帮助用户管理数据的强有力的工具。Visual FoxPro 6.0具有多种编程工具,最突出的是面对象编程方法,可重复使用各种类,直观、创造性地建立应用程序;在表的设计方面,增加了表的字段与控件直接结合的机制,使用户能够更快地、更容易地设计和修改用户应用程序界面。Visual FoxPro 6.0增强了Internet技术,提供一系列的向导、生成器、设计器等自动编程工具;支持其它应用程序共享数据、交换数据;支持真正的数据库;通过项目管理器,用户可以更有效地组织数据、程序和文档。Visual FoxPro 6.0由于采用了先进的Rushmore快速查询技术,使得查询的响应时间由数小时降低到数秒,显著提高了数据的查询速度。第二章VISUAL FOXPRO 程序设计基础一、常量1、Visual FoxPro的命令一般格式 一条命令通常由命令动词和若于个短语组成。命令动词表明该命令功能(执行什么操作),短语用于修正、限制命令(操作对象、操作条件)等,短语有时又称为子句。Visual FoxPro命令的典型格式为:FOR WHILE TO FILE | TO PRINTER | TO 注意A:符号的约定 a、 必选项 b、 可选项 c、 | 任选项 d、 前面内容的重复 以上符号,是命令结构,只是对命令结构的说明。常量:通常是指以文字串形式出现在代码中的数据,代表一个具体的,不变的值;常量的类型:数值型,货币型,字符型,日期型,日期时间型,逻辑型常量;数值型常量用途:用来表示一个数值的大小也叫常数组成:数字09、小数点(“.”)、正负号(”+”,”-“)内存中所占宽度:8字节表示为表示非常大或非常小的数值,我们采用科学记数法表示:E(e)+(例:)取值范围:-0.9999999999E+190.9999999999E+20货币型常量用途:用来表示货币值;组成:美元符号,数字,小数点,正负号书写格式:+(注:必须以$(¥)开头,并且数值保留四位小数,其多余的小数四舍五入的方法保留)(例:)在内存中占用8字节;取值范围:-922.337203685477.5807922337203685477.5807注:货币型常量没有科学记数法形式。字符型常量组成:所有能够用键盘键入的符号定界符:双引号(“”),单引号(),中括号();(注:定界符必须成对匹配使用 )书写格式:+输出控制符单问号(?)和双问号(?)的使用和区别:1、”?”另起一行,在新的一行的开始处显示若干个表达式的值2、”?”不换行,在当前光标所在的同一行显示若干个表达式的值。空串:不包括任何字符的字符串(只有一对匹配的定界符)空串和含有一个以上的的空格符的字符串的区别注:定界符不属于字符串内容,但是必不可少日期型常量分类:传统日期格式和严格日期格式组成:由年,月,日三部分组成严格日期格式(1)、书写格式:+(常用分隔符有:斜杠(/),连接字符(-),句点(.)和空格)(例如:2009-07-20)(2)、书写三点严格: 花括号内第一个字符必须是脱字符(); 年份必须按4位输入; 顺序必须按年月日的顺序输入不能缺省,也不能颠倒.D、传统日期格式书写格式:+花括号里不以脱字符开头2、年份可以是两位也可是四位3、输入顺序可以不按年月日的顺序输入影响日期格式的设置命令1、命令格式:SET MARK TO 功能说明:用指定显示日期值时所用的分隔符,例如:将日期分隔符设置为*号:SET MARK TO “*”注:如果没有分隔符则是恢复系统默认的分隔符()2、命令格式: SET DATE TO AMERICAN | ANSI | BRITISH | FRENCH |CERMAN | ITALTAN | JAPAN | USA | MDY | DMY | YMD(详细请看 P50 表2.1)功能:用于设置日期显示的格式,主要设置日期的年月日的显示顺序.命令格式:SET CENTURY ON | OFF | TO ROLLOVER 功能:决定如何显示和解释一个日期数据的年份;ON 显示世纪,即用4位数字表示年份OFF 不显示世纪,即用2位数字表示年份。(系统默认情况)TO 决定如何解释一个用2位数字表示年份表示的日期所在的世纪。如果2位年份大于等参考值,即世纪值就是当前的世纪值,如果小于则世纪值就加一。3、命令格式:SET STRICTDATE TO 0 | 1 | 2功能:用于设置是否对日期格式进行检查;0:表示不进行严格的日期格式检查,目的是以早期VISUAL FOXPRO 兼容;1:表示进行严格的日期格式检查。(系统默认)表示进行严格日期格式检查,并且对CTOD()和 CTOT()函数的格式也有效。(例如:)E、日期时间型常量在内存中占8字节5、日期时间型常量 A、组成:日期和时间B、书写格式: , (日期部分也有传统日期和严格日期之分)时间部分格式为:hh:mm:ss AM|PM.(默认状态为 12:00:00 AM)输入的日期时,必须按严格日期格式输入,2、时间部分默认12:00:00 AM3、日期时间型常量中间的逗号不能缺省。注:日期型常量的各条命令,对该常量的日期部分都有效。逻辑型常量组成:由逻辑真(可用.T.、.t.或者.Y.、.y.)和逻辑假(可用 .F.、.f.和.N.、.n.)构成,定界符为:前后两个句点(.)定界符必不可少。逻辑型常量在内存中占用1个字节二、变量变量:其值能够随时更改,每一个变量都有一个变量名,代码通过变量名来访问变量的取值。变量命名规则:1、以字母,汉字和下划线开头,2、后接字母、数字、汉字、下划线组成。 3、变量名不得超过128个字符。变量分类:VISUAL FOXPRO 的变量分为,字段变量和内量(区别是,字段变量存储在表中,内存变量存储在内存中)内存变量的类型:字符型,数字型,货币型,逻辑型,日期型和日期时间型。简单的内存变量1、向简单的内存变量赋值不必事先定义,变量赋值格式:(1)、=(2)、STORE TO 功能解释:等号赋值一次只能给一个内存变量赋值,STORE 命令可以同时给若干个变量赋相同的值,各内存变量之间用逗号隔开。在VISUAL FOXPRO 中,一个变量在使用之前不需要特别的声明和定义,当给变量赋值时,如果该变量并不存在,系统会自动建立它。可以通过对内存变量重新赋值来改变取值和类型当内存变量和字段变量发生重名的情况,系统会输出字段变量,要输出内存变量必须要在变量名前加上,M.或者M-2、字段变量A、建立:随着表的打开而打开,随着表的关闭而关闭。B、字段变量的定义:数据表中的每一个字段。C、字段变量与内存变量的区别当字段变量与内存变量冲突时,字段变量优先,如要访问内存变量时必须在内存变量前加上(M.或M-)内存变量保存在内存中,具有临时性.而字段变保存在表中,与表同在。数组A、数组:是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问,B、数组与简单的内存变量有所不同的是,在使用之前必须先用DIMENSION 和 DECLARE 命令显式创建,其中各个元素的值的类型可以不相同。C、数组定义用下标值的上下限来决定是一维还是二维数组和数组的大小,VISUAL FOXPRO 中下限规定为1。D、创建数组的命令格式:DIMENSION (,,)DECLARE (,,)整个数组数据类型为A(array),而各个数组元素可以分别存放不同类型的数据。在使用数组和数组元素中要注意以下问题:在任何能使用简单内存变量的地方,都可以使用数组元素。在赋值和输入语句中使用数组名时,表示将同一个值同时赋值给该数组的全部数组元素。在同一个运行环境下,数组名不能与简单内存变量重名。在赋值语句中的表达式位置不能出现数组名。可以用一维数组的形式访问二维数组。内存变量常用命令内存变量的显示命令格式1:LIST MEMORY LIKETO PRINTER | TO FILE 命令格式2: DISPLAY MEMORY LIKETO PRINTER | TO FILE 功能:显示内存变量的当前信息,包括变量名、作用域、类型和取值。选用LIKE短语只显示与通配符匹配的内存变量。通配符有*和?;*代表任意多个字符。?代表任意一个字符。(例:)注:LIST MEMORY 和 DISPLAY MEMORY 在显示的时候有区别:前者显示为滚屏显示我们看到显示是最后一屏的内容,后者则是一屏一屏的显示,我们看到的是第一屏,按任意键的时显示下一屏。 内存变量的清除CLEAR MEMORY 功能:清除所有内存变量RELEASE 功能:清除指定的内存变量RELEASE ALL EXTENDED 功能:清除所有内存变量 说明:EXTENDED 用于程序中清除全局变量.RELEASE ALL LIKE |EXCEPT 功能:清除与通配符相匹配的内存变量,选用 EXCEPT 清除与通配符不相匹配的内存变量.表于数组之间的数据传递数据表文件中的数据内容是以记录的形式存储和使用的,而数组是把一批数据组织在一起的数据处理方法,所以在实际开发中,两者之间就存在很多数据交流。将表的当前记录复制到数组SCATTER FIELDS MEMO TO BLANKSCATTER FIELDS LIKE | FIELDS EXCEPT MEMO TO BLANK功能解释:将表当前记录的指定各字段内容依次复制到指定数组中从第一个数组元素开始的歌数组元素。注:如果不指定字段的情况下,将复制除备注型(M)和通用型(G)之外的全部字段,若选用MEMO 时,将备注型字段也复制到数组中。用通配符指定包括或排除的字段复制到数组中。选用BLANK 时将产生一个空数组,数组的大小和各元素的类型与表中当前记录的字段一致。将数组数据复制到表的当前记录GATER FROM FIELDS MEMOGATER FROM FIELDS LIKE | FIELDS EXCEPT MEMO功能解释:将数组中的数据作为一条记录复制到表的当前记录中。从数组的第一个数组元素开始依次想字段名表指定的字段填写数据。如果没有选用FIELDS ,则依次向各个字段复制。若数组元素有多余,则多余的数组元素被忽略,如果数组元素少于字段,则多余的字段将保持原来的数据不变。选用MEMO复制的时候包括备注型,否则,备注型不考虑。用通配符指定包括或排除的字段。FIELDS LIKE | FIELDS EXCEPT 可以同时使用。三、表达式A、定义:由常量,变量和函数通过特定的运算符连接起来的式子。B、表达式的形式:单一的运算对象(如常量、变量或函数)由运算符将运算对象连接起来形成的式子。分类:数值表达式,字符表达式,日期时间表达式,关系表达式,逻辑表达式运算符 运算符:是对数据对象(操作数)进行操作运算的符号。运算符以其结果的类型分组有如下五类 算术运算符 关系运算符 逻辑运算符 字符串运算符 日期运算符。 1、数值表达式A、定义:由算术运算符将数值型数据连接起来。运算结果是数值型。B、算术运算符(1) + 加号(NNN) (2) - 减号(NNN)(3) * 乘号(NNN) (4) / 除号(NNN)(5) * 乘方(NNN) (6) 乘方(NNN)(7) % 余数(NNN)C、算术运算优先级(例3.8)优先级运算符说明1()2*或3*、 / 、%4+ 、 -求余运算两种方式(MOD() %)规则:余数的正负号与除数一致. ?15%4 ?MOD(15,4) 例3.9求余运算?1%4,15%-4STORE 122 TO X,YZ=73?X%Z ,MOD(X,Z),X%(Y-200)2、字符表达式定义:由字符串运算符将字符型数据连接运算符:两种字符运算符(1) + 字符串精确连接 (CCC)(2) - 字符串非精确连接 (CCC)+:用于将两字符串首尾连接形成一新的字符串。-:用于连接两个字串符,并将前一个字符串尾部空格移到合并后的新字符串尾部。3、日期时间表达式可以进行相加或相减日期+天数日期-天数日期-日期日期运算符(1) + 加(DND)(NDD)(2) - 减(DDN)(DND)说明:日期加上数值得到将来的日期;数值加上日期得到将来的日期;日期减去数值得到过去的日期;两日期相减得到两个日期相差的天数。注意:日期和日期不能相加可以相减,不能由一个数值型数据减去日期时间型数据或日期时间型数据。例:在下面的Visual Foxpro表达式中,错误的是()A. 2002-06-08 06:08:09 AM-10B. 2006-06-08-DATE()C. 2006-06-08+DATE()D. 2006-06-08+1986(4)关系表达式关系表达式:由关系运算符将两个类型相同的运算对象连接起来构成。通常也可称为简单逻辑表达式。【例1-67】字符串包含。2、关系符:、=、 =、=、!=、$,# 3、注意:运算符=和$仅适用于字符数据.数字按大小、日期按先后、字符按位置、汉字按拼音4、特殊情况:逻辑型数据比较时,逻辑真大于逻辑假.即 .T. .f.关系运算符关系运算符有如下十种:(1) 大于 (NNL)(CCL)(DDL)(3) = 等于 (NNL)(CCL)(DDL)(4) = 大于或等于 (NNL)(CCL)(DDL)(6) 不等于 (NNL)(CCL)(DDL)(7) # 不等于 (NNL)(CCL)(DDL)(8) != 不等于 (NNL)(CCL)(DDL)(9) $ 属于 (CCL)(10) = 精确等于 (CCL)A、关系运算符两边的数据类型必须相同,不同类型的数据无法进行有意义的比较。B、关系运算产生逻辑结果。即只能是逻辑“真”或逻辑“假”中的一种。 S1=计算机S2=微型计算机?S1$S2, S2$S1, (S1$S2)(S2$S1).T. .F. .T.1、对字符序列的排序设置有以下两种方式:一是通过人机会话方式设置:单击“工具”菜单下的“选项”菜单项,打开“选项”对话框;单击“数据”选项卡;在右上角的“排序序列”下拉列表框中选择“Machine“(机器)、“PinYin”(拼音)、或者“Stroke”(笔画)。单击“确定”按钮。二是通过命令方式来设置。命令是:SET COLLATE TO 比较方法Machine(机器):ASCII指机器内码顺序排序 空格数字大写字母小写字母Pinyin(拼音):拼音顺序,空格最,小写在前大写在后 空格数字小写字母大写字母注意:aAbBcC;因此 Ac为真(.t.)而不能笼统地理解为所有的小写字母都比大写字母小Stroke(笔划):笔划多少排序. 笔画少的小,笔画多的大精确比较与一般比较格式:SET EXACT ON|OFF 功能解释:ON 为精确比较,OFF为一般比较; OFF状态时,以右边为基准进行按位比较,只对“=”有影响,对“=”没有影响。如果右边是左边字符串能够匹配返回是逻辑真,否则返回逻辑假。 ON状态时,先在较短的字符串尾加上若干空格,使两个字符串长度相等,然后再进行按位比较,直到最后一个字符为止。(等长比较)系统默认为OFF状态。【例1-72】字符表达式的精确比较与EXACT设置示例。S1=计算机S2=计算机 S3=计算机世界SET EXACT OFF功能:以右边为准,能匹配就返回逻辑真,否则返回逻辑假?S1=S3,S3=S1,S1=S2,S2=S1,S2=S1.F. .T. .F. .T. .F.SET EXACT ON功能:先将宽度统一以后在比较,必须能够完全匹配才返回逻辑真,否则返回逻辑假?S1=S3,S3=S1,S1=S2,S2=S1,S2=S1.F. .F. .T. .T. .F.赋值与相等比较的区别:赋值格式:= (命令)相等比较的格式:= (关系表达式)(5)逻辑表达式逻辑表达式:由逻辑运算符连接逻辑型数据组合而成。逻辑表达式的运算结果仍为逻辑型。逻辑运算符:共有3个。按优先级由高到低的顺序是:.NOT.(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。在Visual FoxPro 6.0中,也可以省略逻辑运算符两端的小圆点。逻辑运算符的运算规则如下(也称逻辑运算符的真值表)。 A B .NOT.A .NOT.B A.AND.B A.OR.B .T. .T. .F. .F. .T. .T. .T. .F. .F. .T. .F. .T. .F. .T .T. .F. .F. .T. .F. .F. .T. .T. .F. .F.(6)各种运算符混合使用时的优先级每种表达式中的运算符都有一定的优先级。不同的运算符也可能同时出现在同一个表达式中。此时,各种运算符的优先级由高到低的顺序是:算术运算、字符运算、日期时间运算、关系运算、逻辑运算【例1-73】各种运算符混合组成的表达式举例。?ABC=abc.or.河6.and.AS$ASCII.OR.IS=I?10+530.OR.T.AND.X-Y$XYZ四、常用子函数函数:是事先编制好的能够实现特定运算或处理功能的标准程序。有了这些标准程序之后,用户就不用重复编写这些程序了。函数的三要素函数名 abs(-500)参数 abs(-500)返回值(函数值) ?abs(-500) 返回500这一结果括号的使用()小括中是变量或表达式是字符常量的定界符是日期型的定界符函数分类数值函数 字符函数 日期和时间函数 数据类型转换函数 测试函数1、算术函数(数值函数)(1)绝对值函数格式:ABS()功能:返回指定数值表达式的绝对值。【例1-4】显示X的绝对值。X=5?ABS(X),ABS(5-10)5 5(2)符号函数格式:SIGN()功能:返回指定数值表达式的符号。即当表达式的值为正、负、零时,函数结果分别为1、-1和0。(3)平方根函数格式:SQRT()功能:返回指定表达式的平方根。说明:作为参数的数值表达式的值必须大于零。【例1-5】求100的平方根。?SQRT(100)10(4)圆周率函数格式:PI()功能:返回圆周率的值。该函数没有参数。(5)取整函数格式:INT()功能:对给定的数值表达式截尾取整。即只取表达式值的整数部分,小数部分舍去,不进行四舍五入。【例1-6】取整。X=345.678?INT(X)345(6)求上限函数。格式:CEILING()功能:返回大于或等于指定数值表达式值的最小整数。【例1-7】取X的上限。x=7.8?CEILING(X),CEILING(-X)(7)求下限函数格式:FLOOR()功能:返回小于或等于指定数值表达式值的最大整数。【例1-8】取X的下限。X=7.8?FLOOR(X),FLOOR(-X)(8)四舍五入函数格式:ROUND(,)功能:返回数值表达式经过四舍五入操作的结果。【例1-9】对X的值进行四舍五入。X=2345.5678?ROUND(X,3),ROUND(X,0),ROUND(X,-2)(9)取余函数格式:MOD(,)功能:返回除以的余数。说明:余数的正负号与除数相同。若被除数与除数同号,则函数值为两数相除所得的余数;如果被除数与除数异号,则函数值为两数相除所得余数再加上除数。【例1-10】取余数。?MOD(10,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3)(10)求最大值函数格式:MAX(表达式1,表达式2,表达式3)功能:计算各表达式的值并返回其中最大的值。【例1-11】取最大值。?MAX(2,12,05),MAX(汽车,轮船,飞机)(11)求最小值函数格式:MIN(表达式1,表达式2,表达式3)功能:计算各表达式的值并返回其中最小的值。说明:同MAX函数。【例1-12】取最小值。?MIN(2,12,05),MIN(汽车,轮船,飞机)(12)指数函数格式:EXP()功能:求e的幂。数值表达式是幂次。【例1-13】求e为底的幂。?EXP(2)7.39(13)对数函数格式:LOG()功能:求以e为底的自然对数。【例1-14】求e为底的自然对数。?LOG(7.39)2.000.742字符函数(1)求字符串长度函数格式:LEN()功能:返回指定字符表达式值的长度,即表达式中包含的字符个数。此函数值为数值型。说明:字符表达式中的空格也要计算在内。【例1-18】求字符串的长度。X=Visual FoxPro6.0程序设计?LEN(X)24(2)小写转换大写函数格式:UPPER()功能:将字符表达式中的小写字母转换成大写,其它字符不变。【例1-16】小写转换成大写。?UPPER(heilongjiang)HEILONGJIANG(3)大写转换小写函数格式:LOWER()功能:将字符表达式中的大写字母转换成小写,其它字符不变。【例1-17】大写转换成小写。?LOWER(HEILONGJIANG=WOJIA)heilongjiang=wojia(4)生成空格函数格式:SPACE()功能:产生由数值表达式值指定的数量的空格。(5)删除串尾空格函数格式:TRIM()/RTRIM()功能:返回删除字符型表达式尾部空格后所形成的字符串。两种格式功能完全相同。【例1-19】删除串尾空格。S=SPACE(5)+Welcome+SPACE(8)?LEN(S)20?LEN(TRIM(S)12(6)删除串首空格函数格式:LTRIM()功能:返回删除字符型表达式左部(即首部)空格后所形成的字符串。【例1-20】删除串首空格。S=SPACE(5)+Welcome+SPACE(8)?LEN(LTRIM(S)15(7)删除前后空格函数格式:ALLTRIM()功能:返回删除字符表达式首部和尾部空格后所形成的字符串。【例1-21】删除串首和串尾的空格。S=SPACE(5)+Welcome+SPACE(8)?LEN(ALLTRIM(S)7(8)取左串函数格式:LEFT(,)功能:从指定的字符表达式的左端开始取一个指定长度的子串,作为函数值返回。【例1-22】取左串。S=全国计算机等级考试X=LEFT(S,4)?X全国(9)取右串函数格式:RIGHT(,)功能:从指定的字符表达式的右端开始取一个指定长度的子串,作为函数值返回。【例1-23】取右串。S=全国计算机等级考试X=RIGHT(S,8)?X 等级考试(10)取任意子串函数格式:SUBSTR(,)功能:从指定的字符表达式的指定起始位置取一个指定长度的子串,作为函数值返回。【例1-24】取任意字符串。S=全国计算机等级考试X=SUBSTR(S,5,6)Y=SUBSTR(S,5)?X,Y计算机 计算机等级考试(11)求子串位置函数格式1:AT(,)格式2:ATC(,)功能:当是的子串时,格式1返回首字符在中出现的起始位置值;否则返回0。格式2在子串比较时不区分大小写。【例1-25】检索子串位置。S=This is Visual FoxPro 6.0?AT(fox,S),ATC(fox,S),AT(is,S,3),AT(xo,S)(12)计算子串出现次数函数格式:OCCURS(,)功能:返回在中出现的次数。说明:函数值为数值型。若不是的子串,则返回函数值0。【例1-26】求子串出现次数。S=This is Visual FoxPro 6.0?OCCURS(Fox,S), OCCURS(is,S), OCCURS(xo,S)(13)子串替换函数格式:STUFF(

温馨提示

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

评论

0/150

提交评论