1、isualFVoxPro第1-7章.1学习Visual FoxPro的两个重要部分:1.命令的使用命令的使用2.集成开发环境的操作集成开发环境的操作.2isualFVoxPro第1章.3知识点:Visual FoxPro 及其发展简史 数据管理技术 数据库系统的组成 数据模型 关系的基本运算 Visual FoxPro6.0的数据组织结构第第1章章 VFP与数据库基本概念与数据库基本概念.41.1 Visual FoxPro概述 Visual FoxPro的发展经历了dBASE、FoxBASE、FoxPro和Visual FoxPro等4个主要发展阶段 dBASE II1982FoxBASE1
2、984FoxPro1989Visual FoxPro 3.0 1995Visual FoxPro 6.01998.51.2 数据管理技术 人工管理 文件系统 数据库管理程序1数据1程序2数据2程序n数据n程序1程序2程序n数据1数据2数据n程序1程序2程序n数据库管理系统操作系统数据库1.2.1数据管理技术的发展.61.2.2 数据库系统的组成 数据库 数据库管理系统 计算机系统 用户.71.2.2 数据库系统的组成 数据库 数据库(Data Base,DB)是统一管理的相关数据的集合。这些数据以一定的结构存放在磁盘中。其基本特点是:数据能够为各种用户共享、具有可控制的冗余度、数据对程序的独立
3、性以及由数据库管理系统统一管理和控制等。数据库管理系统数据库管理系统 数据库管理系统(database management system,DBMS)是在操作系统支持下工作的管理数据的软件,是数据库系统的核心。它能够为用户或应用程序提供访问数据库的方法,包括数据库的建立、更新、查询、统计、显示、打印及各种数据控制。.81.2.2 数据库系统的组成 计算机系统计算机系统计算机系统(computer system)是指用于数据库管理的计算机硬件、软件系统。用户用户即与数据库系统打交道的人员。通常有3种人员:对数据库系统进行日常维护的数据库管理员。用数据操作语言和高级语言编制应用程序的程序员。使用数
4、据库中数据的人员。.91.3 数据模型1.3.1 层次模型大 学学院1学院n处室1处室n系研究所.101.3 数据模型1.3.2 网状模型学生1学生2学生3学生n课程1课程2课程n.111.3 数据模型1.3.3 关系模型.121.3.3 关系模型1.关系术语关系:二维表,Visual FoxPro的一个表文件。元组:表中一行,记录。属性:表中的一列,字段。分量:元组中一个属性值。域:表中属性的取值范围。关键字,关键字段、码:表中具有惟一标识的属性。关系模式:对关系的描述,表的结构。.131.4 关系的基本运算 选择:从关系中找出满足条件的记录。(行)投影:从关系中选择若干属性组成新的关系。(
5、列)连接:将两个关系通过公共属性名连接成一个新的关系。.141.5 VFP的数据组织结构 从数据管理角度看,VFP数据组织的层次由大到小依次是:数据库、表、记录和字段。1.字段2.记录3.表4.数据库.15isualFVoxPro第2章.16第第2 2章章 初识初识Visual Visual FoxPro6.0FoxPro6.0 知识点:Visual FoxPro6.0用户界面 菜单系统 命令窗口 Visual FoxPro6.0的设计工具 VFP的系统功能.172.1 Visual FoxPro启动与退出 启动方法:在桌面上双击“Visual FoxPro6.0”图标。在Windows的“开
6、始”菜单的程序列表中选择Visual FoxPro6.0项。通过Windows的“资源管理器”或“我的电脑”,找到Visual FoxPro6.0程序并启动。.182.1 Visual FoxPro启动与退出退出VFP,可以使用下述方法之一:在命令窗口输入“QUIT”并按回车键。在“文件”菜单中选择“退出”项。直接按组合键Alt+F4。用鼠标单击VFP主界面标题栏最右边的关闭窗口按钮。.192.2 Visual FoxPro用户界面2.2.1窗口窗口 命令窗口命令窗口 命令窗口是一个标题为“命令”(Command)的小窗口。它的主要作用是输入并显示VFP命令,实现与用户的单步交互操作。程序主窗
7、口程序主窗口 即启动VFP后屏幕上出现的VFP主界面。程序主窗口由标题栏、菜单栏、工具栏、工作区和状态栏组成。主要用于显示VFP的处理结果,其中状态栏用于显示当前的操作状态。.202.2 Visual FoxPro用户界面 全屏幕编辑窗口全屏幕编辑窗口 全屏幕编辑窗口是一种能够实现数据或过程代码编辑操作的环境,一般又分为表数据编辑窗口、表结构编辑窗口和过程编辑窗口。对话框对话框 对话框是一类特殊窗口,仅当所执行的菜单项后带“”符号时才会出现。借助于对话框,用户可以选择所需要的数据或操作,而VFP则利用对话框引导用户正确地操作,或者向用户提供警告、提示信息等。.212.2 Visual FoxP
8、ro用户界面2.2.2 2.2.2 菜单菜单 菜单是一种用选项来组织命令的重要工具。VFP使用的菜单有:下拉式菜单和快捷菜单。2.2.3 工具栏 工具栏是一种用图标的方式组织命令的工具。Visual FoxPro包含的工具栏有11种:常用、报表控件、报表设计器、表单控件、表单设计器、布局、查询设计器、调色板、打印预览、视图设计器和数据库设计器。默认情况只有“常用”工具栏可见。.22 2.3 辅助设计工具2.3.12.3.1设计器设计器 设计器是辅助用户创建文件的工具。例如辅助用户创建表、数据库、表单、查询、报表等文件来管理数据。设计器主要包括表设计器、数据库设计器、菜单设计器、表单设计器、查询
9、设计器、视图设计器等。2.3.2生成器 生成器是Visual FoxPro6.0提供的一种可视化辅助工具。它用于简化、修改表单及其他复杂控件的过程。每个生成器都有一系列选项卡组成,允许用户访问并设置所选对象的属性。.232.3 辅助设计工具2.3.32.3.3向导向导 向导是帮助用户迅速完成诸如建立表单和建立查询等常用任务的交互式工具,它根据已有的一些实例,通过一系列的向导窗口和人机对话,完成一个任务。2.3.42.3.4项目管理器项目管理器 项目管理器是Visual FoxPro6.0提供的一个重要工具,它使用简洁的可视化的方法对自由表、文件、数据库、报表和查询等进行组织和管理,是应用程序的
10、控制中心。当开发一个应用系统时,可用项目管理器来跟踪所有相关文件。.242.4 VFP的系统功能 2.4.1 VFP的工作方式 界面操作工作方式 命令操作 程序操作.252.4 VFP的系统功能 2.4.2 VFP菜单的约定及其使用 VFP主菜单主菜单启动VFP6.0后,窗口标题栏的下部就是菜单栏,如图2-3所示。在菜单栏上显示的是VFP主菜单的默认项,名称有:文件、编辑、显示、格式、工具、程序、窗口和帮助。每个菜单名都对应自己的一组下拉式菜单。.262.4.2 VFP菜单的约定及其使用 菜单的约定菜单的约定 子菜单项后带“”符号:执行这样的菜单,会弹出一个对话框。子菜单项的颜色为灰色:当菜单
11、项呈灰色时,表示当前状态下不可以使用。子菜单项后带黑三角“”符号:表示它有下级子菜单,当鼠标指向该菜单项时,自动出现下级子菜单。子菜单项前有钩“”:是选择标记。当菜单栏前有该符号时,表示该命令有效。若再选择该命令,则删除该标记,表示该命令不再有效。.272.4.3 命令的一般格式1、命令格式 VFP可以执行的命令由“命令动词+命令子句”组成,常用形式:命令动词 FOR WHILE FIELDS OFF2、命令使用注意事项.282.5 用VFP组织数据的例子 2.5.1 设置默认目录 利用利用“工具工具/选项选项”菜单菜单 用用SET命令命令例如,SET DEFAULT TO D:JIANG.2
12、92.5.2 创建表文件的例子1、设计表结构.302.5 用VFP组织数据的例子2.5.2 创建表文件的例子2、建立表结构3、填写数据2.5.3表文件的保存/关闭、打开与查看“文件/保存”“文件/关闭”“文件/打开”“显示/浏览”.31isualFVoxPro第3章.32第第3 3章章 Visual FoxPro6.0Visual FoxPro6.0应用应用基础基础 知识点:数据类型 常量与变量 运算符与表达式 常用函数 VFP常用文件.333.1 数据类型 VFP6.0提供了14种数据类型,分别是:数值型、字符型、逻辑型、日期型、通用型、备注型、货币型、日期时间型、整型、双精度型、浮点型、二
13、进制字符型、二进制备注型、对象型。.343.1 数据类型数值型数据(数值型数据(N N):由数字09、一个符号(+或-)和一个小数点组成。字符型数据(字符型数据(C C):由字母、数字空格等一切可打印的ASCII字符组成。逻辑型数据(逻辑型数据(L L):.T.or .F.(.Y.or .N.)。日期型数据(日期型数据(D D):可用set date,set century,set mark to来设置日期格式。日期时间型数据(日期时间型数据(T T):用于保存日期、时间或二者兼有的数据。例1:tMydatetime=2005-9-5 11:00 a,tMytimeonly=11:00 a 货
14、币型数据(货币型数据(Y Y):加符号$。例2:money1$1000.5 ,money2$1234.56789。双精度型数据(双精度型数据(N N):提高更高的精度,占用8个字节。浮点型数据(浮点型数据(N N):与数值型数据相同,以提供与其它软件和系统的兼容性。整数型数据(整数型数据(N N):不包含小数,以二进制形式存储,占4个字节。通用型数据(通用型数据(G G):存储OLE对象,长度为4个字节。备注型数据(备注型数据(M M):存放较多内容的文本信息(.FPT),长度4个字节。二进制字符型数据(二进制字符型数据(C C):与字符型数据类似,以二进制存储。二进制备注型数据(二进制备注型
15、数据(M M):与备注型数据类似,以二进制存储。对象型数据(对象型数据(O O):):Windows应用程序中生成的对象。如VFP的主窗口对象为_SCREEN。.353.2 常量与变量3.2.1 常量常量是以直观的数据形态和意义直接出现的数据,在程序执行过程中常量的值是固定不变的。3.2.2 变量 在程序执行过程中可以变化的数据项,称为变量。.363.2.1 常量数值型常量数值型常量可以是整数和实数,用于表示一个数量的大小。例如3.14,1.23E+5。数值型常量的长度包括整数位数、小数位数和小数点。.373.2.1 常量字符型常量字符型常量是用定界符界定的一串字符,又称为字符串。可用的定界符
16、有三对,即单引号、双引号“”、方括号等。例如,123、计算机、”A”都是书写正确的字符型常量。.383.2.1 常量逻辑型常量逻辑型常量属于逻辑型数据,只有两个值:逻辑真和逻辑假。逻辑真常量用.T.、.t.、.Y.、.y.表示;逻辑假常量用.F.、.f.、.N.、.n.表示。如果书写时少了字符左右的两点,就会被计算机当作变量。.393.2.1 常量日期型常量日期型常量必须用一对花括号将数据括起来,例如,11/05/1972和1972-05-11,均表示“1972年5月11日”这一日期数据。也可以用CTOD(”11/05/72”)来表示,意思是把字符型常量”11/05/72”转换成日期型常量。空
17、白的日期型常量用表示。.403.2.1 常量日期时间型常量 日期时间型常量与日期型常量类似,也必须用一对花括号将数据括起来,只是在日期数据后面加上“时:分:秒”即可。例如,08/29/1987 05:26:30表示1987年8月29日5时26分30秒。货币型常量 货币型常量用来表示货币值,使用时,在数值前加上货币符号。.413.2.2 变量 变量分类.423.2.2 变量 变量的命名规则 变量名是用来标识变量的符号,最多10个字符,可以由字母,数字和嵌在中间的下划线组成。.433.2.2 变量 内存变量定义与操作 赋值命令命令“=”格式:=功能:计算赋值号右边表达式的值(一个数据),然后将这个
18、值赋给左边的内存变量。它具有计算和赋值的双重功能。.443.2.2 变量命令“STORE”格式:STORE TO 功能:计算的值,然后将结果分别赋给变量表中的所有变量。所谓表示有多个变量,变量与变量之间用逗号“,”分隔。注意,“,”为英文标点。.453.2.2 变量内存变量的显示格式:DISPLAY/LIST MEMORY LIKE TO PRINTERPROMPT/TO FILE功能:显示当前内存变量的定义。内存变量的清除 RELEASE格式1:RELEASE 格式2:RELEASE ALL LIKE/EXCEPT功能:从内存中清除指定的变量。.463.2.2 变量保存与恢复内存变量的保存格
19、式:SAVE TO ALLLIKE/EXCEPT功能:将所指定的内存变量存入内存变量文件中。内存变量的恢复格式:RESTORE FROM ADDITIVE功能:将内存变量文件中的所有内存变量恢复到内存中去。.473.2.2 变量 数组数组数组在使用之前必须用命令来声明,包括数组名和数组的大小。数组的声明格式:DIMENSION/DECLARE (,),(,),功能:用于定义一个或多个数组。.48 数组数组几点说明:数组名后面的括号,既可以用圆括号也可以用方括号。定义数组后,系统自动将每个数组元素定义为逻辑型,初值为逻辑假.F.。数组中的元素位置是有序而固定的。给数组变量赋值时,如果未指明下标(
20、即未指明第几个元素),则对该数组中所有元素赋同一个值。数组定义后,数组元素可以重新定义,定义方法与内存变量相同。数组中各个元素的数据类型可以不同。在引用数组时,如果未指明下标,则引用该数组的第一个元素。内存变量和数组不能重名。使用数组时,下标不能超界。.493.2.2 变量5.系统内存变量系统内存变量(1)默认属性是public属性(2)保持固有信息,通过一个前导下划线识别(3)类型固定(数值型,字符型,逻辑型,日期型,对象型).503.3 运算符与表达式表达式可以一个常量、变量、函数,或者由这些元素由运算符连接起来的有意义的式子。运算符是描述各种不同运算的符号,有四种类型:算术运算符、字符运
21、算符、关系运算符和逻辑运算符。用在两个数据之间的运算符称为二目运算符,用在单个数据上的运算符称为单目运算符。.51 3.3 运算符与表达式数值型表达式 (,/,%,()字符型表达式 (,)日期型表达式 (1)两个日期型数据可以相减,结果为数值型 (2)日期型数据可加上一个整数,结果为日期型 (3)日期型数据可减去一个整数,结果为日期型关系型表达式 (,$,)逻辑型表达式 (NOT ,AND,OR)计算表达式命令 ().523.4 标准函数 F基本形式 函数名()F数值函数F字符型函数F测试函数F日期时间函数F数据库和表函数F数组函数F其他函数.533.4.1一般函数1、数值函数 (1)绝对值函
22、数 ABS()(2)平方根函数 SQRT()(3)指数函数 EXP()取模函数 MOD()(4)对数函数LOG()(5)取整函数 INT().543.4.1一般函数 1、数值函数 (6)四舍五入函数 ROUND()(7)最大值函数MAX()(8)最小值函数MIN()(9)函数 PI()正弦函数 SIN().55 字符函数 字符重复函数REPLICATE()查找子串函数AT()截取子串函数SUBSTR()左子串函数LEFT()右子串函数RIGHT()字符串修改函数STUFF().56 字符函数 删除空格函数 删除左空格函数LTRIM()删除右空格函数RTRIM()删除前后空格函数ALLTRIM(
23、)空格函数SPACE().57 字符函数 宏替换函数&表达式计算函数EVALUATE()名表达式().58日期时间函数F系统时间函数 time()F日期函数 date()F日期时间函数 date time()F年份、月份、日期和星期函数 yearmonthday dow/cdowF时、分、秒函数 Hour Minutesec.59 日期时间函数日期时间函数系统时间函数TIME()系统日期函数 DATE()年份函数YEAR()月份函数MONTH()星期函数DOW()/CDOW()日期函数DAY().60 转换函数 字母小写转大写函数UPPER()字母大写转小写函数LOWER()字符转日期函数CT
24、OD()日期转字符函数DTOC()数值型转换成字符型函数STR()字符型转换成数值型函数VAL()字符转换成ASCII码函数ASC()ASCII码转换成字符函数CHR().61 测试函数 字符串长度函数LEN()数据类型测试函数TYPE()条件函数IIF()文件测试函数FILE()自定义对话框函数MESSAGEBOX().623.4.2 数据库函数 字段数函数FCOUNT()字段名函数FIELDS()表头测试函数BOF()表尾测试函数EOF()记录号测试函数RECNO()记录数测试函数RECCOUNT()表文件名函数DBF()查询结果测试函数FOUND().633.5 Visual FoxPr
25、o6.0常用文件类型 3.5.1 数据文件 表文件 数据库文件 索引文件 查询文件.643.5.2 文档文件 表单文件 报表文件 菜单文件 项目文件3.5.3 程序文件 源程序文件 编译后的程序文件 应用程序文件 .65isualFVoxPro第4章.66第4章 自由表的建立与操作 知识点:表的设计与实现表结构的修改表数据的编辑表数据的浏览与输出记录定位表内容的统计计算VFP的文件管理.67第4章 自由表的建立与操作4.1.14.1.1设计表结构设计表结构 VFP系统对表文件的规定系统对表文件的规定 注意事项注意事项 学生管理中的表结构设计学生管理中的表结构设计.68第4章 自由表的建立与操作
26、4.1.2 建立表结构 菜单方式“文件/新建”命令方式 格式:CREATE/?功能:在当前目录(文件夹)中建立一个新表文件。.694.2表结构的查看与修改 4.2.1 显示表结构 格式:DISPLAY/LIST STRUCTURE IN/功能:显示当前表或指定工作区已打开表的结构。4.2.2 修改表结构 菜单方式 命令方式命令方式格式:MODIFY STRUCTURE功能:用表设计器修改当前表结构。.704.2.3 复制表结构格式:COPY STURCTURE TO FIELDS功能:将当前表文件的结构复制到指定的新的文件中。例如,由当前表文件”学生DBF”创建XS.dbf,结构与学生完全相同
27、。在命令窗口输入下述命令序列:USE 学生COPY STRUCTURE TO XS.714.3 表数据的输入与输出 4.3.1表文件的打开与关闭 1、表文件的打开菜单方式单击菜单栏上的“文件/打开”;或单击常用工具栏上 按钮。命令方式格式:USE 功能:在当前工作区打开指定的表文件。.724.3.1表文件的打开与关闭 2、关闭表文件 菜单方式 单击菜单栏上的“窗口/数据工作期”,弹出“数据工作期”对话框.73关闭表文件命令方式,可根据情况选择使用下述方法之一。执行命令USE。立即关闭当前工作区中打开的表。执行命令CLOSE TABLES。关闭所有工作区中打开的自由表。执行命令CLEAR ALL
28、。清除所有内存变量,同时关闭所有工作区中打开的表。执行命令CLOSE ALL。关闭所有已打开的文件,包括表文件。在同一工作区打开另一个表时,原来在该工作区中打开的表自动关闭。.744.3.2 输入数据 菜单方式菜单方式在菜单栏上选择“表/追加新记录”项。在菜单栏上选择“显示/浏览”+“显示/追加方式”项。在菜单栏上选择“表/追加记录”项。.754.3.2 输入数据 命令方式命令方式APPEND格式:APPEND BLANKIN/功能:在数据表的表尾添加一条或多条新记录。等价于菜单方式的“显示/浏览+显示/追加方式”。APPEND FROM格式:APPEND FROM 功能:从一个指定文件中读入
29、记录,添加到当前表文件的尾部。.764.3.3输出数据 格式:DISPLAY/LIST FOR WHILE FIELDS OFF TO PRINTERPROMPT/TO FILE功能:显示当前表中指定数据。.774.4 表内容的修改 4.4.1记录的定位 GO命令命令格式1:GO n功能:将指针定位在当前表中记录号为n的记录上。格式2:GO TOP功能:将指针定位在首记录上。格式3:GO BOTTOM功能:将指针定位在末记录上。.784.4.1记录的定位 SKIP命令命令格式1:SKIP功能:将指针从当前记录开始下移一条记录。格式2:SKIP n功能:将指针从当前记录开始,下移n条记录。格式3
30、:SKIP n功能:将指针从当前记录开始,上移n条记录。.794.4.2 插入记录 格式:INSERT BEFOREBLANK功能:在当前表当前记录前面或后面插入一条新记录,并进入编辑状态。.804.4.3 4.4.3 记录的浏览与编辑记录的浏览与编辑 BROWSE格式:BROWSE FOR FIELDS LAST TITLE 功能:打开当前表的浏览窗口,可实现记录的显示、修改、删除和追加等操作。例1:各种类型数据的编辑。例2:M型、G型数据的输入与编辑。.814.4.4 修改指定字段的数据 格式:REPLACE WITH ADDITIVE,WITH ADDITIVE FOR/WHILEIN/
31、功能:用表达式的值成批修改多个指定字段的值。例如,给第一条记录增加5元奖学金。执行以下命令序列:USE 学生REPL 奖学金 WITH 奖学金+5.824.5 记录删除 4.5.1 逻辑删除 菜单方式在BROWSE窗口实现操作。命令方式格式:DELETE FORWHILEIN/功能:逻辑删除指定的记录,即给要删除的记录打上删除标记。.834.5 记录删除4.5.2 4.5.2 设置逻辑删除的有效性设置逻辑删除的有效性格式:SET DELETE ON/OFF功能:指定标有删除标记的记录是否参与其他命令的处理。.844.5 记录删除4.5.3 取消删除 菜单方式 命令方式格式:RECALL FOR
32、WHILE功能:将指定记录的逻辑删除标记清除,即让有删除标记的记录恢复正常。.854.5 记录删除4.5.4 物理删除 菜单方式 “表/彻底删除”命令方式PACK永久删除当前表中逻辑删除的记录。ZAP永久删除当前表中全部记录。.864.6表内容的统计计算 4.6.1 数值字段求和命令SUM4.6.2 数值数据求平均值 AVERAGE4.6.3 计数命令COUNT4.6.4 分类求和命令TOTAL .874.7文件管理 4.7.1 表文件的备份 COPY TO4.7.2 列文件目录 DIR 4.7.3 修改文件名RENAME 4.7.4删除文件ERASE/DELETE FILE.88isualF
33、VoxPro第5章.89第第5 5章章 排序、索引与查找排序、索引与查找 知识点:什么是排序建立排序文件索引建立索引文件索引查找一般查找.905.1 排序排序 排序是指将当前表按照指定的排序字段(又称关键字)重新排列记录顺序,并将排序结果存储在一个新的表文件中。命令格式:SORT TO ON /A/D/C,/A/D/CFORWHILE FIELDS/功能:对当前表进行排序,并将排过序的记录输出到新表中。.915.1 排序排序表记录排序的例子。按奖学金升序建立排序文件JXJPX.DBF。在命令窗口执行下述命令:USE 学生SORT TO JXJPX ON 奖学金USE JXJPX.92表记录排序
34、的例子.935.2 索引 索引只是按照指定字段为当前表建立一个索引表,以索引文件的形式存储在磁盘上。索引表中的顺序是按照字段值的大小排列的。为表文件建立索引之后,就可以用索引来控制表数据的显示。.945.2.1 索引文件分类 单项索引文件 结构复合索引文件 独立复合索引文件.955.2.1 索引文件分类1、单项索引文件,扩展名为.IDX。这种索引文件只有一个索引表达式。2、复合索引文件,其扩展名为.CDX。在复合索引文件中,每一个索引都有一个特殊的标识名(TAG),TAG的命名与自由表中字段命名方法相同(=10字符)。3、结构复合索引文件和独立复合索引文件都属于复合索引文件。无论是哪一种索引文
35、件,都只能与表文件同时使用。.965.2.2 建立索引文件 菜单方式菜单方式利用表设计器来生成索引。方法如下。打开表设计器:先打开表,再选择“显示/表设计器”,进入表设计器窗口。选择索引字段:在“字段”选项卡中,单击要建索引的字段,在“索引列”单击其下三角按钮,在列表中选择升序或降序,选择索引类型单击“确定”按钮,完成索引建立。.97索引类型主索引:要求索引表达式必须是表的主关键字段,该字段的值在表中是惟一的、确定的,且表允许有空值。主索引仅用于数据库表,且一个表只能创建一个主索引。候选索引:要求同主索引。数据库表和自由表都可以建立候选索引,一个表可以建立多个候选索引。唯一索引:相同索引值的记
36、录只留下一条。等同于命令中的UNIQUE选项。如果按性别建立索引,并选择“唯一索引”,则索引表中只有2条记录。数据库表和自由表都可以建立唯一索引。普通索引:没有限制。索引表中记录数同原表文件。数据库表和自由表都可以建立普通索引。.985.2.2 建立索引文件 命令方式命令方式建立单项索引文件格式:INDEX ON TO UNIQUECOMPACTADDITIVE功能:对当前表根据索引表达式按升序建立单项索引文件。【例5.2】建立单项索引文件。以出生年月为关键字建立单索引文件CSNY.IDX。请在命令窗口执行下述命令:USE 学生INDEX ON 出生年月 TO CSNY.995.2.2 建立索
37、引文件 建立结构复合索引格式:INDEX ON TAG UNIQUE ADDITIVEASCENDING/DESCENDING功能:对当前表根据索引表达式建立索引并以为标识存入结构复合索引文件中。.1005.2.2 建立索引文件建立独立复合索引格式:INDEX ON TAG U N I Q U E A D D I T I V E O F ASCENDING/DESCENDING功能:对当前表根据“索引表达式”建立索引并以为标识存入指定的独立复合索引文件中。.1015.2.3 5.2.3 索引文件的打开与关闭索引文件的打开与关闭 打开索引文件打开表的同时打开索引文件格式:USE IN INDEX
38、EXCLUSIVE/SHARED ORDER/TAGOFASCENDING/DESCENDING 功能:在当前工作区或指定工作区打开表文件并同时打开指出的各个索引文件。.1025.2.3 5.2.3 索引文件的打开与关闭索引文件的打开与关闭 关闭索引文件关闭索引文件关闭索引文件有2条命令,格式如下:格式1:CLOSE INDEXES格式2:SET INDEX TO功能:关闭当前工作区除结构复合索引以外的所有打开的索引文件。.1035.2.4 确定主控索引确定主控索引 格式:SET ORDER TO/TAGOFIN 功能:重新确定主控索引文件或主控标识。5.2.5索引文件更新 先打开索引,再执行
39、索引重建命令。格式:REINDEX.1045.3 表内容的查找表内容的查找5.3.1 索引查找 FIND命令 格式:FIND 功能:搜索某个已建立索引的表,查找满足条件第一个记录。说明:FIND命令只查找字符型或数值型数据,字符型数据可不加定界符 FIND命令要求选定表已建立索引 若找到匹配记录,RECNO()返回匹配记录的 记录号,Found()返回T,EOF()返回F 若找不到匹配记录,RECNO()返回值等于表 的记录数加1,Found()返回F,EOF()返回T.105 5.3.1 索引查找 SEEK命令 格式:SEEKORDERTAGOFADIN 功能:SEEK命令在一个表中搜索首次
40、出现的一个记录,这个记录的索引关键字必须与指定的表达式匹配。说明:SEEK命令查找对象可以是变量、常量和表达 式,数据类型多种(字符型数据必加定界符)ORDER子句:指定用来搜索关键字的索引序 号,单项索引文件名或复合索引文件的索引 标记.1065.3.2 5.3.2 一般查找一般查找 顺序查找命令格式:LOCATE FOR WHILENOOPTIMIZE功能:按表内容的排列顺序(物理顺序或逻辑顺序)依次搜索满足条件的第一条记录。.107LOCATE 命令说明命令说明说明:该命令用于查找未索引或已索引的表文件。:默认为全部记录,即ALL。如果找到匹配记录,指针指向该记录,RECNO()返回匹配
41、记录的记录号,FOUND()的值为.T.,EOF()值为.F.;若找不到,指针指向表尾部,FOUND()的值为.F.,EOF()值为.T.。只能在当前工作区中查找。.1085.3.2 5.3.2 一般查找一般查找 继续查找命令格式:CONTINUE功能:配合LOCATE命令在表的剩余部分寻找满足条件的下一条记录。.109isualFVoxPro第6章.110第6章 数据库的建立与操作 知识点:数据库的常用概念数据库的建立VFP的工作区表间的联系设置数据库的参照完整性.1116.1 VFP数据库的常用概念 主关键字 数据之间的联系类型 外部关键字.1126.1 VFP数据库的常用概念 数据库表、
42、自由表 数据库的完整性 .1136.2 数据库的建立6.2.1 一个数据库的例子.1146.2.2数据库的建立与编辑 创建可以采用下述方法之一。打开数据库.1156.2.2数据库的建立与编辑.1166.2.2数据库的建立与编辑.1176.2.2数据库的建立与编辑.1186.2.3 数据库表的建立与操作 创建数据库表 当有数据库打开时,创建的数据表均为数据库表。将表加入到数据库所添加的数据表不能属于任何其他的数据库。如果需要将一个属于其他数据库的表添加到一个新的数据库中,必须先将该表移出原来所属的数据库。当向数据库中添加一个数据库表时,Visual FoxPro将显示出错信息;添加表操作完成后,
43、该表就变成了数据库表,同时也具备了数据库表的各种特性。将表从数据库中移出.1196.2.4 数据库表的性能优化 设置字段的一般属性设置字段的一般属性 定义长字段名设置字段标题设置字段注释建立输入掩码设置字段的默认值 设置有效性规则设置有效性规则 字段级有效性规则表的记录级有效性规则.1206.3 VFP的工作区 6.3.1工作区的表示 工作区是内存中用于临时存放数据表的区域。Visual FoxPro系统最多能同时使用32767个工作区,但在每个工作区中只能打开一个数据表。工作区编号:用数字。工作区的系统别名:用英文字母。用户别名:用户指定的名字。.1216.3.2 工作区的使用 选择工作区选
44、择工作区系统启动时,1号工作区就是当前工作区,若想改变当前工作区,可使用SELECT命令。格式:SELECT/功能:选择一个工作区作为当前工作区。.122 工作区的使用规则工作区的使用规则 SELECT/指定当前可用的最小号工作区:SELECT 0或 USE IN 0 6.3.3 工作区操作示例工作区操作示例.1236.4 表间的联系 6.4.16.4.1联系类型联系类型数据表之间的联系类型有两种:一种是临时性关联;一种是永久性关联。什么是临时关联 建立数据表之间的临时性关联的主要目的是,让相关联的表之间实现指针联动,即,当指针在父表中移动并指向某一记录时,子表指针会指向与其相关的记录上。数据
45、表之间的临时性关联特点之一是其临时性,需要时建立,一旦关闭了表文件,表之间的关联也就自动解除。.1246.4.2 临时关联 创建临时关联利用“数据工作期”创建表间的临时性关联。用SET RELATION命令建立临时关系 格式:SET RELATION TOINTO/,INTO/IN/ADDITIVE功能:在两个打开的表之间建立关系。.125建立一对多临时关联【例6.10】建立“学生.DBF”和“成绩.DBF”一对多的临时关联。执行下述命令序列。SELECT 1USE 成绩INDEX ON 学号 TO X1SELECT 2USE 学生SET RELATION TO 学号 INTO 成绩BORWS
46、ESELECT 成绩 BROWSE.1266.4.3 永久关联 什么是永久关联什么是永久关联 建立数据表之间永久关联的主要目的是,实现数据库中表之间的参照完整性。因此,表之间的永久关联主要用于在更新、删除、插入等操作中,保证数据库数据的可靠性和一致性。数据表之间永久关联的特点之一是其永久性,一旦建立,就被存储在数据库文件中,要解除永久关联,需要人工处理。.1276.4.3 永久关联创建永久关联创建永久关联 在“数据库设计器”中永久关联,是一种最简便的方法。首先在父表的关联字段上建立主索引,在子表的关联字段上建立普通索引,然后,在数据库设计器中通过鼠标的拖拉,便可以完成创建工作。.1286.4.
47、3 永久关联删除永久关联删除永久关联可以采用下述方法之一。在数据库设计器窗口,右击表示关联的连线,在快捷菜单中选择“删除关系”项。在数据库设计器窗口,单击表示关联的连线,然后按DELETE键。通过删除数据库文件来删除表之间的永久关联。.1296.5 设置数据库的参照完整性 6.5.1参照完整性规则 为数据库中多个关联的表设置了参照完整性规则,当插入、更新、删除记录时,可以保证数据库表中数据的有效性和一致性,防止下列情况的发生:当父表中没有关联记录时,将记录添加到相关子表中,造成子表出现“孤立”记录。改变父表关键字值,而子表未作相应的改变,造成子表中出现“孤立”记录。删除父表记录,而子表未作相应
48、的改变,造成子表中出现“孤立”记录。.1306.5.2 6.5.2 参照完整性的实现参照完整性的实现步骤如下:打开“数据库设计器”,选择建立永久性关联的表;启动“参照完整性生成器”,选择“编辑参考完整性”选项;设置相应的完整性规则。单击“确定”按钮,出现“参照完整性生成器”确认框。单击“是”按钮。.131isualFVoxPro第7章.132第7章 面向过程的程序设计 知识点:程序设计概述程序的建立、保存、运行与调试程序中常用的命令程序控制的基本结构过程与过程文件综合程序设计范例.1337.1 程序设计概述 面向过程程序设计的特点.1347.1 程序设计概述面向对象程序设计的特点.1357.1
49、.3 基本要求与算法表示 程序的基本要求程序的基本要求“清晰第一,效率第二”。书写规范,风格统一。程序的基本结构规定为:顺序结构、选择结构和循环结构。一个大的程序开发应当采用“自顶向下、逐步细化和模块化”的方法。程序模块应该只有一个入口、一个出口,无死语句、死循环。.1367.1.3 基本要求与算法表示 算法表示流程图中常用的符号.1377.2 程序的建立、保存、运行和调试修改 7.2.1 程序文件的建立程序文件的建立创建程序有以下三种的方法。通过项目管理器创建在“项目管理器”中,选定“代码”选项卡中的“程序”项,如图7-4所示。单击“新建”按钮。通过文件菜单创建单击“文件/新建”项,在新建对
50、话框中选择“程序”项,再单击“新建文件”按钮。命令MODIFY COMMAND.1387.2.1 程序文件的建立 保存程序保存程序通过菜单保存“文件/保存”;单击“工具栏”上的保存按钮;组合键:CTRL+W。.1397.2.2程序的修改和运行 程序的修改 项目管理器在项目管理器的代码选项卡列表中,选择要修改的程序文件,单击“修改”按钮。文件菜单单击“文件/打开”项,打开程序并修改。命令 MODIFY COMMAND.1407.2.2程序的修改和运行 运行程序运行程序项目管理器在项目管理器的代码选项卡中,选择要运行的程序文件,单击“运行”按钮。程序菜单单击“程序/运行”选项,在程序列表中选择要运