VFP二级培训教程.doc_第1页
VFP二级培训教程.doc_第2页
VFP二级培训教程.doc_第3页
VFP二级培训教程.doc_第4页
VFP二级培训教程.doc_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

VFP二级培训教程v3全国计算机等级考试二级教程Visual FoxPro 6.0数据库管理系统赵 录开篇2第一章 基本概念3第二章 走进VFP4第三章 VFP的数据形式、类型及运算6第四章 数据库及其操作15第五章 SQL语言28第六章 查询与视图36第七章 程序设计基础39第八章 表单设计与应用47第九章 菜单设计与应用61第十章 报表设计64第十一章 数据库应用系统的开发67第一章 数据库系统基础知识 1.1 数据库系统概述1.1数据库基础知识 1数据与数据处理 数据是指存储在某一种媒体上能够识别的物理符号。数据处理的中心问题是数据管理。 2计算机数据管理 (l)人工管理。(2)文件系统。 (3)数据库系统。 (4)分布式数据库系统。 (5)面向对象数据库系统。 3数据库管理系统 为数据库的建立、使用和维护而配置的软件称为数据库管理系统DBMS(DataBaseManagementSystem)。2数据库系统 1有关数据库的概念 (1)数据库(DataBase):存储在计算机存储设备上、结构化的相关数据的集合。 (2)数据库应用系统(DBAS):是由系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。 (3)数据库管理系统(DBMS):对数据实行专门管理,提供安全性和完整性等统一机制,可以对数据库的建立、使用和维护进行管理。 (4)数据库系统(DBS):是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统由硬件系统、数据库、数据库管理系统及相关软件、数据库管理员和用户等部分组成。 2数据库系统的特点 (l)实现数据共享,减少数据冗余。 (2)采用特定的数据模型。 (3)具有较高的数据独立性。 (4)具有统一的数据控制功能。 3数据模型 1实体的描述 (1)实体。 (2)实体的属性。 (3)实体集和实体型。 2实体间联系及联系的种类 (1)一对一联系。 (2)一对多联系。 (3)多对多联系。 3数据模型简介 为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,通常有以下3种。 (1)层次数据模型。 (2)网状数据模型。 (3)关系数据模型。 小提示: 数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是DBS包括DB和DBMS。 1.2关系模型 关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。 1关系术语(l)关系:一个关系就是一张二维表,每个关系有一个关系名。在VisualFoxPro中一个关系存储为一个文件,扩展名为DBF,称为“表”。 对关系的描述称为关系模式,一个关系模式对应一个关系的结构,格式为: 关系名(属性名1,属性名2,属性名n) (2)元组:在一个二维表中,水平方向的行称为元组,每一行为一个元组。(3)属性:将二维表中垂直方向的列称为属性,每一列都有一个属性名。 (4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。 (5)关键字:属性或属性的组合,其值能够唯一地标识一个元组。在VisualFoxPro中,主关键字和候选关键字就起唯一标志一个元组的作用。 (6)外部关键字:如果表中一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,那么这个字段(属性)就称为外部关键字。 2关系的特点 (1)关系必须规范化。 (2)在同一个关系中不能出现同名属性,VisualFoxPro中表示为字段名的不同。 (3)关系中不允许有完全相同的元组,即冗余。 (4)在一个关系中元组的次序无关紧要。 (5)在一个关系中列的次序无关紧要。 5关系运算 对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算,关系的基本运算有两类:传统的集合运算和专门的关系运算。 1传统的集合运算 (1)并:两个相同结构关系的并是由属于这两个关系的全部元组组成的集合。 (2)差:两个相同结构关系的差是由属于前一个关系的元组而不属于后一个关系的元组组成的集合。例如,关系R和S的差结果是由属于R但不属于S的元组组成的集合。 (3)交:两个相同结构关系的交是由属于这两个关系所共有的元组组成的集合。 2专门的关系运算 (1)选择:从关系中找出满足给定条件的元组的操作。 (2)投影:从关系模式中指定若干个属性组成新的关系: (3)连接:关系的横向结合,将两个关系模式拼接成一个更宽的关系模式。 (4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连接。自然连接是去掉重复属性的等值连接。 小提示: 选择和投影运算的操作对象只是一个表,相当于对一个二维表进行切割。连接运算则需要把两个表作为操作对象。如果两个表以上进行连接,应当两两进行连接。 1.3数据库设计基础 6数据库设计步骤 1设计原则 (l)关系数据库的设计应遵从概念单一化“一事一地”的原则。 (2)避免在表之间出现重复字段。 (3)表中的字段必须是原始数据和基本数据元素。 (4)用外部关键字保证有关联的表之间的联系。 2设计步骤 利用VisualFoxPro来开发数据库应用系统,可以按照以下步骤来设计。(1)需求分析。 (2)确定需求表C (3)确定需求字段。 (4)确定联系。 (5)设计精确 1.4VisualFoxPro系统概述 7VisualFoxPro的特点 (l)增强项目与数据库管理。 (2)提高应用程序开发的生产率。 (3)互操作性与支持Internet。 (4)充分利用已有数据第二章 走进VFP一、VFP简介1、VFP的认识VFP是一个适合小型数据库管理的数据库管理系统。2、VFP之前统帅小型数据库管理领域的数据库管理系统是dBASE,其主要版本:dBASE IIdBASE IIIdBASE III PlusdBASE IV3、VFP的进化轨迹FoxBase 2.0/2.1FoxPro 2.0FoxPro 2.5FoxPro 2.6Visual FoxPro 3.0Visual FoxPro 5.0Visual FoxPro 6.0我们学习的是Visual FoxPro 6.0。4、Visual FoxPro(包括3.0、5.0、6.0版本)的基本特点:以可视化方式开发软件界面。采用面向对象的软件开发技术。二、接近VFP1、VFP的安装(略)2、VFP的启动3、VFP基本界面的认识菜单栏工具栏状态栏主屏幕:显示交互操作结果。命令窗口作用:供输入操作命令的场所。一个命令输完后按下回车键,VFP才会执行相应的命令。命令窗口的关闭与显示快捷键操作Ctrl+F4:关闭;Ctrl+F2:显示。4、VFP的基本命令clear:清除主屏幕上的显示。?:在主屏幕当前行的下一行显示其后要显示的内容。?:在主屏幕当前行内容之后显示其后要显示的内容。说明:已经使用过的命令可以再用。5、VFP的退出鼠标操作:见演示。键盘操作:快捷键:Alt+F4。退出命令:QUIT。三、设置VFP1、设置VFP是指对VFP的工作环境进行一些设置,如日期的格式等。这些设置可以通过相应命令进行,也可在“选项”对话框中进行。2、“选项”对话框设置VFP。1)状态栏的设置2)日期格式设置3)默认目录(工作目录)设置了解默认目录(工作目录)? sys(5)+sys(2003)sys(5)默认目录中的盘;sys(2003)默认目录中的路径。设置意义(do form gzml.scx)4)使设置长期有效四、学习VFP1、VFP提供的帮助系统是我们学习VFP的一本很好教科书,建议同学们经常使用。2、使用帮助系统而不要依赖帮助系统,这样不利于我们通过二级考试。第三章 VFP的数据形式、类型及运算一、常量1、常量是表示一个确定值的数据。常量有数值型、货币型、字符型、逻辑型、日期型、日期时间型6种。2、数值型常量数值型常量表示的是一个具体的数,因此,数值型常量也称为常数。数值型常量的书写方法:(1)日常表示法如12、+56、-64.8等。(2)科学表示法1.6E12表示1.61012;1.6E-12表示1.610-12;-1.6E12表示-1.61012;-1.6E-12表示-1.610-12。3、货币型常量货币型常量用来表示一个具体的货币值。货币型常量的小数位数采用4位。货币型常量的书写方法:如$12,$12.68,-$12.68等。4、字符型常量字符型常量用来表示一串确定的字符,因此,字符型常量也称为字符串。字符型常量的书写方法:abcd、abcd、abcd均表示字符串abcd。说明(1)表示字符型常量前后的、或称为字符型常量的定界符,它表示字符串的开始和结束,不是字符串的组成内容。字符串的前后定界符必须一致,如abcd等是错误的。(2)当字符串中包含、或时,必须使用其它的定界符,如字符串abcd应表示为abcd或abcd。(3)字符型数据中的字母大小写是区分的,比如abcd和ABCD是不同的两个字符串。顺便说一下,命令中的字母大小写是不区分的,如Clear、cleAr、CLEAR等均表示清除主屏幕显示命令。(4)两个单引号()、两个双引号()、一对中括号()均表示没有组成内容的字符串,这样的字符串称为空串。(5)组成字符串的内容也可以有空格,如ab cd、a bc d、 等都是正确的字符串。(6)注意定界符应是英文符号,不能是中文符号。顺便说一下中英文符号问题:除了字符串中可以随意使用符号以外,其它场合均只能使用英文符号!5、逻辑型常量逻辑型常量用来表示一确定的逻辑值。逻辑值只有真值和假值两个。逻辑型常量的书写方法:真值:.T. 、.t. 、.Y. 、.y. ;假值:.F. 、.f. 、.N. 、.n. 。6、日期型常量日期型常量用来表示一确定的日期。日期型常量的书写方法:2004年7月14日可表示为:2004-7-14、2004.7.14、2004/7/14、2004 7 14。7、日期时间型常量日期时间型常量用来表示一确定的日期和时间。日期时间型常量的书写方法:格式:日期,时间其中,日期的书写格式同日期型常量,时间的书写格式有:8:10:30、18:15:25、8:10:30A、8:10:30AM、8:10:30P、8:10:30PM。上机:在?或?命令后书写各种类型、形式的常量,以检测常量的表示是否正确。在?或?命令后,若想一次显示出几项的值,使用逗号进行分隔。二、变量1、变量是表示可变值的数据。变量用一名称来表示,该名称称为变量名。变量名一般以字母或汉字开始,其后可以是字母、汉字、数字及某些符号(如下划线)。思考:a,aa,b12,c_1,a1B2,2d4,同学们,”同学们”。2、变量的值可以通过赋值命令获得:a=12 表示为变量a赋一个值12;store 34.2 to a,b,c 表示将值34.2分别赋给变量a,b,c。3、赋值命令的格式:变量=表达式store 表达式 to 变量1,变量2,4、变量的类型由其值的类型决定。5、变量的另一种使用形式数组普通变量是一个变量对应一个值,而数组变量却一个变量对应多个值。数组变量中的每一个值称为数组元素。数组变量的取名同普通变量,数组元素用数组变量名加下标的方法来表示,如a(1)、a(2)、b(1,1)、b(1,2)等。也就是说,数组用下标来区分其元素。如果一个数组,其元素只用一个下标,则该数组称为一维数组;如果一个数组,其元素使用两个下标,则该数组称为二维数组。数组变量的使用与普通变量的使用有所不同:数组变量必须先定义,然后才能使用。定义一维数组变量:dimension/declare 数组名(下标上限)下标上限指下标的最大值。下标下限指下标的最小取值。VFP中,下标的下限规定为1,因此无须在定义数组时指定。定义二维数组变量:dimension/declare 数组名(第一个下标上限,第二个下标上限)数组变量定义后,如果未对其赋值,则各元素为假值。给数组变量赋一个值时,其元素均得到该值,也可以为其元素分别赋以不同的值。数组变量不直接参加运算,其元素可以。6、和变量有关的常用命令list memory命令格式:p60。功能:显示变量信息。说明:书中命令格式的书写约定:中括号部分表示选项;尖括号部分内容(汉字部分)要根据要求提供;竖杠(斜杠)两边内容表示只能选择其一。显示的变量信息不仅有我们自己使用的变量,而且包括VFP本身所固有的变量(这些变量称为系统变量,系统变量名均以下划线开始)。“like ”表示只显示和通配名一致的变量信息。通配名是指包含?或*的名称,其中,?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。比如a?c表示这样的一些名称:第一位是a,第二为任意,第三位是c;a*c表示这样的一些名称:第一位是a,最后一位是c,中间内容任意。“to printer”表示将变量信息同时送打印机打印;“to file ”表示将变量信息同时存入到指定的文件中。当显示的变量信息超出一个屏幕时,前面的信息会滚出屏幕。VFP命令中规定使用的英文单词称为保留字。使用时,保留字可以只写出前面部分,但至少要有4位。display memory命令格式:p60。功能:显示变量信息。说明:与list memory命令的唯一区别在于:当显示的变量信息超出一个屏幕时,该命令能做到一个屏幕一个屏幕地显示。clear memory命令格式:clear memory功能:清除所有变量。说明:系统变量是我们清除不掉的。release命令格式1:release 变量1,变量2,功能:清除指定的变量。格式2:release all功能:清除所有变量。格式3:release all like 通配名功能:清除和通配名一致的变量。格式4:release all except 通配名功能:清除和通配名不一致的变量。上机:练习普通变量及数组变量的使用;练习有关命令。三、表达式1、表达式是对数据(常量、变量)进行运算的式子。运算可以通过运算符,也可以通过函数。为改变运算的顺序,也可以在表达式中使用圆括号。说明:计算机中,表达式里的所有字符均并列书写。单个常量或变量是表达式的特例,即属于表达式范畴。2、数值表达式对数值型、货币型数据进行运算的式子,其值为数值型或货币型。算术运算符:*或:乘方运算;*:乘法运算;/:除运算;%:求余运算;+:加运算;-:减运算。3、字符表达式对字符型数据进行运算的式子,其结果仍为字符型。字符运算符:+:将前后两个字符串进行合并,如abc +def,其结果为字符串abc def。-:将前后两个字符串进行合并,但将前面字符串尾部的空格挪到合并后的新字符串尾部。如abc -def,其结果为字符串abcdef 。两个字符运算符的优先级相同。4、日期时间表达式对日期时间型数据进行运算的式子,其结果类型依情况而定。日期时间表达式类型:p64表3.3。5、关系表达式通过关系运算符进行比较的式子。如果比较成立,结果为逻辑值真,否则为假。关系运算符:p65表3.4。关系运算符的优先级相同,但低于前面的运算符。关系运算符前后参与比较的数据要求是同一类型(数值型可以和货币型比较)。关系表达式的运算结果和关系运算符两边的数据大小密切相关,VFP中,数据大小的规定:(1)数值型、货币型同算术中大小。(2)日期型、日期时间型靠后的日期、时间大。(3)逻辑型真大于假。(4)字符型【单个字符大小的规定】当设置为Machine(机器)顺序时:字符大小:空格数字字符(0到9)大写字母小写字母;汉字大小:常用汉字以拼音顺序排大小,如李张。当设置为PinYin(拼音)顺序时:字符大小:空格数字字符(0到9)aAbB;汉字大小:以拼音顺序排大小,如李张。当设置为Stroke(笔画)顺序时:字符大小:空格数字字符(0到9)aAbB;汉字大小:以书写笔画多少确定大小,笔画多的大。【三种顺序的设置】方法一:“选项”对话框中设置。方法二:用命令设置:set collate to “Machine”set collate to “PinYin”set collate to “Stroke”【字符型数据的大小】两个字符串大小的判定规则:自左至右,逐个字符进行比较,直到某个字符能分辨出大小为止。(字符型数据大小规则图解)非精确比较方式(默认方式):两个字符串的比较以右边字符串的结束而结束。(比较方式图解)精确比较方式:两个字符串的比较以最长字符串的结束而结束。(比较方式图解)【比较方式的设置】方法一:“选项”对话框中进行。方法二:命令SET EXACT ON &设置为精确比较方式SET EXACT OFF &设置为非精确比较方式【思考、练习与提示】1)了解当前比较方式。提示:通过SET(EXACT) 函数也可了解。2)分别在非精确比较方式和精确比较方式下判断下述关系表达式的值:XYZ=XY,XY=XYZ, XYZ= =XY,XY= =XYZ,XYXY。6、逻辑表达式对逻辑型数据进行运算的式子,结果为逻辑型。逻辑运算符:.not.或not或!:非运算;.and.或and:与运算;.or.或or:或运算。优先级(高低):非、与、或。但它们的优先级均低于前面的运算符。说明:如果一个运算符只对一个数据进行运算,称之为单目运算符;如果对两个数据进行运算,称为双目运算符。7、逻辑表达式、关系表达式的意义VFP中,使用逻辑表达式、关系表达式表示条件。当逻辑表达式、关系表达式的值为真时,所表示的条件成立;当逻辑表达式、关系表达式的值为假时,所表示的条件不成立。例:试用关系表达式或逻辑表达式表示如下条件,并验证条件的成立与否和表达式真假值之间的关系。1)A大于52)A不大于53)A大于5且B小于104)A大于5或B小于105)A在5和20之间上机:p63例3.8;就表3.3中的每一个表达式类型给出一个实例,并查看其结果;p68例3.15;四、常用函数1、函数是进行数据运算的另一种途径。2、函数的一般使用格式:函数名(自变量,自变量,)自变量又称参数。无自变量时,圆括号也要写上,如DATE()等。3、常用函数(1)数值处理函数ABS函数功能:求一个数的绝对值。例:ABS(67),ABS(-67+89),ABS(-82)SIGN函数功能:当自变量值正时,返回1;当自变量值负时,返回-1;当自变量值为0时,返回0。例:当变量A的值为正时,B赋以值8+20;当变量A的值为负时,B赋以值8-20;当变量A的值为0时,B赋以值8。SQRT函数功能:求正数的平方根。例:SQRT(2)说明:默认计算结果为2位小数。SET DECIMALS TO命令可设置运算结果的小数位数。PI函数功能:得到的值。例:PI()INT函数功能:返回自变量的整数部分。例:INT(1.3),INT(1.6),INT(-1.3),INT(-1.6)CEILING函数功能:返回大于或等于自变量的最小整数。例:CEILING(1.3),CEILING(2),CEILING(-1.3),CEILING(-2)FLOOR函数功能:返回小于或等于自变量的最大整数。例:FLOOR(1.3),FLOOR(2),FLOOR(-1.3),FLOOR(-2)ROUND函数功能:对自变量的值进行四舍五入运算。运算时,第二个自变量表示精确到哪一位。例:ROUND(345.345,2),ROUND(345.345,1),ROUND(345.345,0),ROUND(345.345,-1)MOD函数功能:求两个整数相除以后的余数。例:MOD(10,3),MOD(9,3),MOD(11,3)说明:有负数的求余不考虑。MAX函数功能:从多个自变量中挑出最大的值。例:MAX(1,2,7,4,5),MAX(A,ABC,BC)说明:自变量的类型应一致。MIN函数功能:从多个自变量中挑出最小的值。例:MIN(1,2,7,4,5),MIN(A,ABC,BC)说明:自变量的类型应一致。(2)字符处理函数LEN函数功能:求字符串的长度。说明:一个汉字长度为2,一个英文字符(包括空格)长度为1。例:LEN(“二级Visual FoxPro培训班”)LOWER函数功能:将自变量中的所有字母转化为小写字母。例:LOWER(“二级Visual FoxPro培训班”)UPPER函数功能:将自变量中的所有字母转化为大写字母。例:UPPER(“二级Visual FoxPro培训班”)SPACE函数功能:产生指定个数空格组成的字符串。例:SPACE(10)REPLICATE函数功能:由指定字符串重复组合产生字符串。例:REPLICATE(*,10),REPLICATE(ABCD,5)TRIM函数功能:将字符型自变量右边空格去掉。例:TRIM(“ Visual FoxPro ”)LTRIM函数功能:将字符型自变量左边空格去掉。例:LTRIM(“ Visual FoxPro ”)ALLTRIM函数功能:将字符型自变量左、右两边的空格均去掉。例:ALLTRIM(“ Visual FoxPro ”)LEFT函数功能:从一个字符串左边开始取子串。例:LEFT(“上午好!”,2),LEFT(“上午好!”,4)RIGHT函数功能:从一个字符串右边取子串。例:RIGHT(“上午好!”,2),RIGHT(“上午好!”,4)SUBSTR函数功能:从一个字符串中取子串。例:SUBSTR(“上午好!”,3,2),SUBSTR(“上午好!”,3,4)OCCURS函数功能:求第一个字符串在第二个字符串中出现的次数。例:OCCURS(ab,huabhgtabagfbyrba),OCCURS(ab,huahgtbagfbyrba)AT函数功能:求第一个字符串在第二个字符串中出现的位置。例:AT(ab,huABygabhgtabagf),AT(ab, huABygabhgtabagf ,2)ATC函数功能:求第一个字符串在第二个字符串中出现的位置,但不区分字母大小写。例:ATC(ab, huABygabhgtabagf ),ATC(ab, huABygabhgtabagf ,2)STUFF函数功能:用第二个字符串替换第一个字符串中的内容。例:STUFF(gtyabku,3,4,AA)思考:1)在ab的a、b之间插入和。2)将淮北煤炭师范学院中的“煤炭”二字删除。CHRTRAN函数功能:对第一个字符串中的字符进行替换。例1:CHRTRAN(ABACAD,ACD,X12)例2:CHRTRAN(大家好,大家,你)LIKE函数功能:第一个字符串中的字符和第二个字符串中字符是否对应相同,是返回真,否则返回假。例1:LIKE(ABA,ABAD)说明:第一个字符串中可以使用通配符。例2:LIKE(AB*,ABAD)(3)日期、时间函数DATE函数功能:返回当前系统日期。例:DATE()TIME函数功能:返回当前系统时间。例:TIME()说明:函数值为字符型。DATETIME函数功能:返回当前系统日期及时间。例:DATETIME()YEAR函数、MONTH函数、DAY函数功能:分别返回日期或日期时间型自变量对应的年份、月份和日子。例:YEAR (DATE(),MONTH(DATE(),DAY(DATE()HOUR函数、MINUTE函数、SEC函数功能:分别返回日期时间型自变量对应的时、分、秒。例:HOUR(DATETIME(),MINUTE(DATETIME(),SEC(DATETIME()思考:10小时后是几点?(4)转换类函数STR函数功能:将数值型自变量转换为字符型。例1:STR (123.456)说明:函数值默认10位,不带小数部分。可以加上第2、第3个参数,用来分别表示总位数和小数位数。默认或指定位数比实际位数多时,函数值的左边补以相应个数的空格,以保证总位数。例2:STR (123.456,5),STR (123.456,5,1) ,STR (123.456,5,2) ,STR (123.456,6,2),STR (123.456,3,2) ,STR (123.456,2)VAL函数功能:将字符型自变量转换为数值型。例:VAL(1234.56),VAL(123a),VAL(下午好)DTOC函数功能:将日期型自变量转换为日期形式的字符串。例1:DTOC(DATE()说明:转换后的字符串组成和当前日期格式有关,但加上1参数后,将转化为YYYYMMDD这种固定格式的字符串。例2:DTOC(DATE(),1)TTOC函数功能:将日期时间型自变量转换为日期时间形式的字符串。例1:TTOC(DATETIME()说明:转换后的字符串组成和当前日期、时间格式有关,但加上1参数后,将转化为YYYYMMDDHHMMSS这种固定格式的字符串。例2:TTOC(DATETIME(),1)CTOD函数功能:将日期形式的字符串转化为日期型。例:CTOD (2004/7/16)说明:字符串的日期形式应和当前日期格式一致,否则将转化为空日期。CTOT函数功能:将日期时间形式的字符串转化为日期时间型。例:CTOT (2004/7/16 10:10)(5)测试类函数BETWEEN函数功能:判断一个数据是否在另两个数据之间,是为真,否则为假。例:BETWEEN(2,1,16),BETWEEN(2,1,16)EMPTY函数功能:判断一个数据是否空值(p76表3.7),是为真,否则为假。例:EMPTY (0),EMPTY (0),EMPTY (),EMPTY ( ),EMPTY ()VARTYPE函数功能:判断一个数据的类型。例:VARTYPE(A)4、典型函数介绍条件函数用法:IIF(逻辑型表达式,表达式1,表达式2)功能:如果逻辑型表达式的值为真,则表达式1的值作为函数值,否则,表达式2的值作为函数值。例:函数IIF(X10,AAA,BBB)思考:当变量X分别取值10、0、100时,函数IIF(X10,AAA,IIF(X10,BBB,CCC)的值。宏替换函数用法:&字符型变量.功能:用字符型变量的值(不带定界符)替换整个宏替换函数。例:假设A=76+28,问表达式1+A和1+&A.分别等价于什么?说明:(1)该函数是一个十分有用又十分特殊的一个函数。(2)宏替换函数出现在字符串中时也还有效,而其它函数出现在字符串中时被当作一个个字符处理。即:若A=ABC,则X&A.Y等价于XABCY;而ABS(-86)却不等价于86。(3)宏替换函数最后的小数点是宏替换函数的结束标记。当宏替换函数和其后的内容能够明确区分清楚时,该结束标记可以省略。思考:下面的表达式中,哪些宏替换函数的结束标记可以省略?假设A=76+28。&A.+52 ,&A.6-285 ,&A.BCDEFG。上机:通过上机掌握常用函数的用法。P80上机题。第四章 数据库及其操作一、认识VFP数据库1、VFP中,数据库是一个扩展名为DBC的文件,但为了储存与数据库相关的其它信息,VFP还会自动地为每个数据库文件建立同基本名但不同扩展名的另两个文件:扩展名为DCT的数据库备注文件和扩展名为DCX的数据库索引文件。思考:假设我们建立了数据库SJK.DBC,问:实际会产生哪些文件?2、VFP数据库主要由表组成。组成数据库的表可以是一个,也可以是多个。3、VFP中,表是一个扩展名为DBF的文件。4、VFP中,表就相当于我们日常生活中所见的各种表格。日常表格中,表头上所列出的各项在VFP中叫字段;表格中的一行内容在VFP中叫作一个记录。(字段与记录)5、尽管数据库包含表,但数据库文件和表文件从文件夹中看都是独立的文件。(数据库和表的关系)6、VFP中,数据库建立的一般步骤是:(1)建立数据库。(2)在数据库中建立表。(3)重复(2),创建数据库中的其它表。(4)关闭数据库。说明:关闭数据库后,其所属的表也被关闭。或者,先关闭表,再关闭数据库。7、VFP中,使用数据库的一般步骤:(1)先打开数据库,再打开表。或直接打开表(此时,表所属的数据库也会自动打开)。(2)对表进行操作。(3)关闭数据库。或者先关闭表,再关闭数据库。二、数据库及表的基本操作1、建立数据库菜单方法命令方法CREATE DATABASE 数据库说明:1)命令中,不指定要建立的数据库时,会出现对话框,通过对话框来选择数据库的位置及提供数据库名。2)命令中,指定要建立的数据库时,可以省略数据库扩展名。如果要建立的数据库文件不想放在默认目录,则文件名前面还必须提供文件位置。如果文件位置或文件名中用到空格,则所提供的内容前后应加上字符定界符。3)菜单方式建立数据库后,会自动显示出“数据库设计器”窗口(我们今后简称为“数据库窗口”),命令方式建立时不会。执行“MODIFY DATABASE”命令可显示数据库窗口。4)不管显示不显示数据库窗口,新建的数据库都将是打开状态。即关闭数据库窗口,不表示关闭数据库。5)分别建几个数据库时,这些数据库都是打开状态,但叫“当前数据库”的只有一个。从“常用”工具栏可以看出已经打开的数据库、当前数据库,也可以选择当前数据库。2、在数据库中建立表菜单方法命令方法CREATE 表说明:1)命令中,不指定要建立的表时,会出现对话框,通过对话框来选择表的位置及提供表名。2)命令中,指定要建立的表时,可以省略表扩展名。如果要建立的表文件不想放在默认目录,则文件名前面还必须提供文件位置。如果文件位置或文件名中用到空格,则所提供的内容前后应加上字符定界符。3)一个表的组成字段称为表的结构。4)如果当前有多个数据库是打开状态,则新建的表将属于当前数据库。5)表建好后,自动处在打开状态,但看不到表内容。6)一般情况下,打开一个表将自动关闭已经打开的表。即一般情况下,只能打开一个表。当前所打开的表从状态栏可以看出相关信息。从状态栏所看到的表称为当前表。3、关闭表和数据库关闭表命令方法USE关闭数据库命令方法CLOSE DATABASES &关闭当前数据库CLOSE DATABASES ALL &关闭所有数据库4、打开数据库菜单方法命令方法OPEN DATABASE 数据库说明:用“OPEN DATABASE”打开数据库时并不自动显示数据库窗口,要想显示,须再执行“MODIFY DATABASE”命令。5、打开表菜单方法命令方法USE 表 EXCLUSIVE/SHARED说明:1)选择EXCLUSIVE选项时,表以独占方式打开;选择SHARED选项时,表以共享方式打开。省略时,默认以独占方式打开。独占方式打开时,表的结构可以修改,表的记录可以删除。2)一般情况下,新打开一个表时,之前打开的表会被关闭。6、修改表结构菜单方法:“显示|表设计器”命令方法:MODIFY STRUCTURE说明:修改一个表结构前,相应表必须打开。上机:P113上机题1。三、表的有关操作特别提示:对表进行任何操作前,该表都要预先打开。1、表窗口及其操作表窗口的打开菜单方式:“显示|浏览”。命令方式:命令1:BROWSE LAST命令中的LAST选项将使表窗口以上次的显示外观出现。命令2:EDIT命令3:CHANGE命令4:APPEND说明:(1)表窗口有两种显示方式:浏览方式和编辑方式。(2)表窗口有两种工作方式:追加方式和非追加方式。使用APPEND命令打开的表窗口自动处在追加方式,其余均处在非追加方式。如果处在非追加工作方式,可以将其转换为追加方式;反之不行。(3)表窗口出现后,可以对表的内容进行任意的修改。当然,如果表是以只读方式打开时,则禁止修改。命令方式打开表示,加上“NOUPDATE”选项表示以只读方式打开。(4)表窗口出现后,VFP会自动多出一个“表”菜单,从中,我们可以进行许多操作。2、定位记录指针记录指针的认识(1)表中有许多记录,为了指示出当前可操作的记录,VFP自动为打开的表安排一个“记录指针”。记录指针所“指”的记录称为当前记录。(2)一个表刚打开时,记录指针指向1号记录。随着操作的进行,记录指针会自动改变其指向。我们也可以人为移动记录指针。(3)记录指针的位置可以从状态栏看出。也可通过RECNO()函数值获知。记录指针的定位GO TOP 或 GOTO TOP将记录指针指向表中最前面的记录。说明:在记录指针已经指向最前面记录的情况下,如果让指针再前移“一步”,则称“指向了表的开头”,这时,函数BOF()的值将为真。在指针已经指向表头的情况下,再“越雷池一步”,就会出错。GO BOTTOM 或 GOTO BOTTOM将记录指针指向表中最后面的记录。说明:在记录指针已经指向最后面记录的情况下,如果让指针再后移“一步”,则称“指向了表的末尾”,这时,函数EOF()的值将为真。在指针已经指向表尾的情况下,再“越雷池一步”,就会出错。GO 记录号 或 GOTO 记录号 或 记录号将记录指针指向指定记录号的记录。说明:VFP会自动对表中的记录进行编号,这就是我们所说的记录号。记录号从1开始,记录号的顺序反映了记录在表中的实际顺序。SKIP记录指针后移一个记录。SKIP n (n为正整数)记录指针后移n个记录。SKIP -n (n为正整数)记录指针前移n个记录。思考:将记录指针指向表头,查看当前记录号;将记录指针指向表尾,查看当前记录号。所显示的记录号与你认为的不同吗?你不能理解吗?3、在主屏幕显示记录LIST显示表中全部记录。显示完毕,记录指针指向表尾。LIST 范围显示指定范围内的记录。范围:ALL全部记录,NEXT n 当前记录开始的n个记录,REST当前记录到最后一个记录,RECORD n第n号记录。LIST FOR 条件显示表中符合条件的记录。LIST FOR 条件 范围 或 LIST 范围 FOR 条件仅显示指定范围内符合条件的记录。DISPLAY显示当前记录。DISPLAY 范围同LIST 范围。DISPLAY FOR 条件同LIST FOR 条件。DISPLAY FOR 条件 范围 或 DISPLAY 范围 FOR 条件同LIST 范围 FOR 条件。说明:(1)LIST命令和DISPLAY命令除了第一种用法上功能有差别外,另外一个差别是:当显示的记录信息多时,LIST命令不能一屏一屏显示记录信息,而DISPLAY命令可以。(2)命令中,若加上OFF选项,则不显示记录号。(3)可以指定显示字段,格式:FIELDS 字段名1,字段名2,。(4)如果希望记录信息送往打印机,可加上TO PRINTER选项。(5)VFP命令中,若同时出现多个选项,一般它们可以以任意顺序出现。(6)留意显示前后记录指针位置的变化。4、向表中添加记录INSERT当前记录之后插入一空记录,同时打开表窗口以便填写内容。INSERT BLANK当前记录之后插入一空记录,但不打开表窗口。INSERT BEFORE当前记录之前插入一空记录,同时打开表窗口以便填写内容。INSERT BEFORE BLANK当前记录之前插入一空记录,但不打开表窗口。APPEND在表的最后添加一空记录,同时打开表窗口以便为空记录填写内容。APPEND BLANK在表的最后添加一空记录,但不打开表窗口。APPEND FROM 表 FOR 条件将指定表中记录有条件或无条件地追加到当前表后。命令中指定的表无须打开。例:先分别查看 “学生1.dbf”和“学生.dbf”的内容,然后将“学生1.dbf”中年龄小于20的记录追加到“学生.dbf”中,并查看追加后的“学生.dbf”内容。5、自动替换字段内容命令格式:REPLACE 字段1 WITH 表达式1,字段2 WITH 表达式2, 范围 FOR 条件功能:对表中指定范围内符合条件的记录进行替换。若省略范围和条件,只对当前记录进行替换。例:对学生表进行如下替换:每人奖学金为1000元。根据出生日期重新计算年龄(CEILING)85年前(包括85年)出生的学生奖学金增加100元。男生奖学金加100,女生奖学金加150。6、记录的删除逻辑删除(即在记录上做个删除标记,并不是真的删除)命令格式:DELETE 范围 FOR 条件功能:删除指定范围内符合条件的记录。省略范围和条件时,只删除当前记录。说明:如果当前记录被逻辑删除,则函数DELETED()值为真。逻辑删除记录的恢复(即取消删除标记)命令格式:RECALL 范围 FOR 条件功能:恢复指定范围内符合条件的记录,如果它被逻辑删除的话。省略范围和条件时,只恢复当前记录。说明:也可以在表窗口中,通过鼠标或Ctrl+T键逻辑删除/恢复记录。物理删除(真的将记录从表中删除)命令1:PACK功能:物理删除已经逻辑删除的记录。命令2:ZAP功能:物理删除表的全部记录,不管其是不是已逻辑删除。7、查找记录命令格式:LOCATE FOR 条件 范围功能:从表中找出符合条件的第一个记录。说明:(1)找到这样的记录后,只是将记录指针指向所找到的记录,并不会显示出所找记录的内容。(2)若要查找表中符合条件的下一个记录,使用Continue命令。(3)找到记录时,函数FOUND()值为真,否则为假。思考:找不到符合条件的记录时,记录指针将指向何处?8、获知表中记录个数从状态栏可以看出,也可通过RECCOUNT()函数值获知。上机:练习以上内容。四、索引1、索引的认识索引是为了在不改变表中记录顺序的情况下得到新的记录顺序。假设学生表:记录号学号姓名年龄12003001张三2122003002李四2032003003王五1942003004张三1852003005赵六20如果我们希望得到以“姓名”升序排列的记录顺序,做法是:建立一个以“姓名”升序排列的如下“索引表”: 姓名记录号李四2王五3张三1张三4赵六5

温馨提示

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

评论

0/150

提交评论