VFP数据表的基本操作_第1页
VFP数据表的基本操作_第2页
VFP数据表的基本操作_第3页
VFP数据表的基本操作_第4页
VFP数据表的基本操作_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 VFP数据表的基本操作,主要内容,4.1 VFP数据表概述 4.2 VFP数据表结构的建立与维护 4.3 VFP数据表记录的录入 4.4 VFP数据表数据的访问 4.5 VFP数据表数据的维护 4.6 VFP数据表数据的排序、索引 4.7 VFP数据表数据的查询 4.8 VFP数据表数据的统计 4.9 多工作区操作 复习思考题,第4章 VFP数据表的基本操作,4.1.1 VFP数据表的相关知识,1.自由表与数据库表 VFP中数据表区分为自由表和数据库表两类。自由表是不属于任何数据库的表,数据库表是包含在一个数据库中的表。 2.表文件名与备注文件名 VFP数据表是一个磁盘文件,数据表文件

2、名可以由字母、数字或下划线组成,系统自动给出的扩展名为.dbf。当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为.fpt的备注文件名。,4.1 VFP数据表概述,4.1.1 VFP数据表的相关知识,3.VFP数据表的字段属性 VFP数据表是由记录组成的,记录又由字段组成,每个字段都有其自身的属性。字段的属性主要包括字段名、数据类型、字段宽度、小数位数、空值支持等。其中数据类型、字段宽度、小数位数、空值是实现关系的域完整性的重要保证。 (1)字段名:表中的每个字段都是有名称的。字段名必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其

3、它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。,4.1 VFP数据表概述,4.1.1 VFP数据表的相关知识,(2)数据类型:用于描述该字段的数据特征。在数据表中使用的数据类型有字符型、货币型、数字型、浮点型、日期型、日期时间型、双精度型、整型、逻辑型、备注型、通用型、字符型(二进制)、备注型(二进制)这13类。 (3)字段宽度:指该字段所能容纳的数据的最大字节数。与字段的数据类型也有关系。 (4)小数位数:主要用于指定当字段类型为数值型、符点型、双精度型数据时所需保留的小数位数。此时的字段宽度为整数位数加小数位数再加1。 (5)NULL值(空值)

4、:无明确的值。NULL表示任何不出现的值,NULL值不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个NULL值)大或小或相等或不同。,4.1 VFP数据表概述,4.1.2 VFP数据表中数据类型,1.VFP数据表常用数据类型,4.1 VFP数据表概述,4.1.2 VFP数据表中数据类型,4.1 VFP数据表概述,4.2.1 设计表结构,1.设计数据表结构,4.2 VFP数据表结构的建立与维护,4.2.1 设计表结构,2.设计数据表应注意的问题 (1)字段的数据类型要与存储在其中的信息类型相匹配; (2)字段的宽度应该足够容纳将要存储的信息内容; (3)数值型、浮点型、双精度型字

5、段必须设置正确的小数位数; (4)如果需要将字段设置为能接收空值,必须选中NULL栏。,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,1.准备工作设置默认路径 为方便操作与管理,建议建立一文件夹“D:MYVFP”然后将其设为默认目录。设置默认目录方法可采用命令方式或菜单方式。 (1)使用命令方式 命令格式:SET DEFAULT TO 路径 功能:将指定的目录设置为默认目录,该命令仅对当前环境有效,关闭VFP系统后该设置失效。 使用示例:SET DEFAULT TO D:MYVFP &将D:MYVFP设为默认目录,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,(

6、2)使用菜单方式 “工具” “选项(O)” “文件位置” “默认目录” “修改(M)” 在“更改文件位置”对话框中选中“使用(U)默认目录”,这时“定位(L)默认目录”文本框由灰色(不可用)变为正常颜色(可用) 单击按钮 在“选择目录”对话框中首先从“驱动器(V)”下拉式列表框中选D: 在“当前工作目录:”列表框中选择“MYVFP”文件夹“选定” 返回“更改文件位置”对话框 “确定” 返回“选项”对话框 “设为默认值” “确定”按钮,从而将D:MYVFP设为了默认目录。 通过这种方法设置的默认目录长期有效。,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,2.利用表设计器建立数据

7、表结构 (1)菜单方式进入表设计器 (2)命令方式进入表设计器 命令格式:CREATE 文件名|? 功能:生成一个新的数据表。如果在创建表时打开了一个数据库,则表自动添加到该数据库中。 使用示例: CREATE D:MYVFPSTUDENT CREATE CREATE ? (3)使用项目管理器 3.利用表向导创建数据表结构,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,4.利用复制方法间接建立表结构 表结构的建立也可以利用已有的数据表间接建立,主要是采用复制的方法。 (1)利用当前表复制数据表结构 命令格式:COPY STRUCTURE TO 新表文件名 FIELDS WITH

8、 CDX DATABASE 数据库名 NAME 长表名 功能:用当前表结构创建一个新的数据表结构。,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,例4.3 设当前打开表为teacher.dbf,且存在结构复合索引文件,有如下命令: COPY STRUCTURE TO JS1 &将TEACHER表结构复制为JS1表结构 COPY STRU TO JS2 FIEL 教师编号,姓名,性别 &JS2表结构中只有指定字段 COPY STRU TO JS3 CDX &建立JS3表结构同时建立JS3.CDX文件 COPY STRU TO JS4 WITH CDX &建立JS4表结构同时建立J

9、S4.CDX文件 COPY STRU TO JS5 DATA 学籍管理 &建立JS5表结构且加入数据库“学籍管理”,4.2 VFP数据表结构的建立与维护,4.2.2 建立表结构,(2)利用表的结构信息文件创建另一个新表结构 可以利用表结构信息文件生成另一个表结构。操作方法分为两步:先创建一个有当前表结构信息的新表,然后再由含有结构信息的新表创建另一个数据表结构。 创建一个当前表结构信息的新表 命令格式:COPY STRUCTURE EXTENDED TO 新表名 DATABASE 数据库名 NAME 长表名 FIELDS 字段名列表 功能:创建一个新表,其中的字段包含当前表的结构信息。,4.2

10、 VFP数据表结构的建立与维护,4.2.2 建立表结构,例4.4设当前打开表为teacher.dbf,试保存teacher表的结构信息。 COPY STRU EXTE TO JSJG1 &保存原表所有字段信息 COPY STRU EXTE TO JSJG2 FIEL 教师编号,姓名,性别,职称 &保存指定的3个字段信息 COPY STRU EXTE TO JSJG3 DATA 学籍管理 &产生的JSJG3表属于“学籍管理”数据库 利用结构信息表创建另一个新表 命令格式:CREATE 新表名 DATABASE 数据库名 NAME 长表名 FROM 含有结构信息的表名 功能:使用保存有结构信息的表

11、去创建一个新的数据表。 例4.5 利用教师结构信息表“JSJG2.DBF”创建一个新表,命令如下:CREATE TEACHER1 FROM JSJG2 &利用JSJG2新建表TEACHER1 5.利用SQL命令直接创建数据表结构 可使用CREATE TABLESQL语句直接建立表结构,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,1.工作区与当前工作区 工作区指用来标识一张打开的表的区域。VFP6系统允许用户使用32767个工作区,并允许在各个工作区中打开不同的数据库表或自由表。每个工作区都有一个工作区号,分别用132767表示。每个表打开后至少有两个默认的别名,一个是

12、表名自身,一个是工作区别名。为使用方便,编号为110的前10个工作区的默认别名分别用AJ这10个字母表示。 当前工作区就是正在操作的工作区,当前工作区上打开的表称为当前工作表。,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,2.当前工作区选择 指定当前工作区可以使用SELECT命令或数据工作期窗口操作。 (1)SELECT命令 命令格式:SELECT | 功能:将指定工作区号作为当前工作区。 使用说明:工作区号可使用132767。别名指在该工作区打开的表的名称或别名,前面的110工作区还可以用字母AJ表示其别名。若工作区号为0则表示选择当前未使用的最小工作区号为当前工作

13、区。,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,使用示例:SELE 1 &选择1#工作区为当前工作区 USE STUDENT ALIAS XS &在该区打开STUDENT表且为该表取别名XS SELE 15 &选择15#工作区为当前工作区 USE TEACHER ALIAS JS &在该区打开TEACHER表且为该表取别名JS,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,(2)“数据工作期”窗口 3.数据表的打开 选择工作区后就可以打开数据表了。 (1)菜单方式 (2)命令方式 命令格式:USE 表名 IN 工作区号|别名 AGAIN IN

14、DEX 索引文件列表ALIAS 别名 EXCLUSIVE SHARED NOUPDATE 功能:打开一个表及其相关索引文件。 例4.6 使用USE命令以独占方式在2#工作区打开表STUDENT.DBF,并指定别名为XS。 USE D:MYVFPSTUDENT IN 2 ALIAS XS EXCLUSIVE &D:MYVFP表示文件位置,可不指定。 思考:当前工作区是2#工作区否?,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,4.数据表的关闭 (1)菜单方式 (2)命令方式 USE IN 工作区号:关闭当前或指定工作区上的表。 CLOSE ALL:关闭所有工作区中打开的

15、数据库、表和索引,并选择工作区1为当前工作区。 CLOSE TABLES:关闭所有当前选中数据库中的所有表。若没有已打开的数据库,则关闭所有工作区内的自由表。,4.2 VFP数据表结构的建立与维护,4.2.3 数据表的打开与关闭,CLOSE TABLES ALL:关闭所有数据库中的所有表以及自由表,但所有数据库保持打开。 CLOSE DATABASES:关闭当前数据库和表。若没有当前数据库,则关闭所有工作区内所有打开的自由表、索引和格式文件,并选择工作区1为当前工作区。 CLOSE DATABASES ALL:所有打开的数据库和其中的表、所有打开的自由表、所有工作区内所有索引和格式文件,并选择

16、工作区1为当前工作区。 CLEAR ALL:关闭所有表,包括所有相关的索引、格式和备注文件,并且选择工作区1为当前工作区。从内存中释放所有的内存变量和数组以及所有用户自定义菜单栏、菜单和窗口的定义。 QUIT:退出VFP系统,则关闭所有的表。,4.2 VFP数据表结构的建立与维护,4.2.4修改表结构,1.使用表设计器 命令格式:MODIFY STRUCTURE 功能:进入表设计器修改表结构 2.使用ALTER TABLESQL命令 可使用ALTER TABLESQL语句直接修改表结构,4.2 VFP数据表结构的建立与维护,4.2.5浏览表结构,命令格式:LISTDISPLAY STRUCTU

17、RE IN 工作区号|别名 NOCONSOLE TO PRINTER PROMPT TO FILE 文件名 功能:对指定工作区上打开的表结构列表或分屏的方式进行显示输出。,4.2 VFP数据表结构的建立与维护,4.2.5浏览表结构,例4.7 分别将学生表的结构输出到文件和屏幕上。 SELE 2 &选择2工作区为当前工作区 USE STUDENT EXCL &在2上以独占方式打开STUDENT表 LIST STRUCTURE TO XS &在屏幕上不分页显示表结构且将显示结果保存到XS.TXT DISPLAY STRUCTURE &在屏幕上分页显示表的结构 TYPE XS.TXT &在屏幕上显示

18、文件XS.TXT的内容,4.2 VFP数据表结构的建立与维护,4.3.1 VFP数据表记录录入方式,1.立即向数据表中输入记录 新建表结构后保存时弹出“现在就输入记录吗?”,单击“是” 2.用菜单方式追加记录 “显示”“浏览”“显示” “追加方式” 3.用命令方式追加记录 在VFP6系统中可用APPEND等命令实施数据表记录的添加,具体命令使用方法见4.3.2。,4.3 VFP数据表记录的录入,4.3.2 VFP数据表记录的录入命令,1.APPEND命令 命令格式:APPEND BLANK IN 工作区号别名 NOMENU 功能:在表的末尾添加一个或多个新记录。 2.APPEND FROM 命

19、令 命令格式:APPEND FROM 文件名 | ? FIELDS 字段名列表 FOR 条件表达式 DELIMITED WITH 分隔符 WITH BLANK | WITH TAB| WITH CHARACTER 分隔符 SDF 功能:将其它表(或其它文件如电子表格中表)中记录数据追加到当前表记录末尾。若不指定源文件的类型,则源文件为表文件。,4.3 VFP数据表记录的录入,4.3.2 VFP数据表记录的录入命令,3. APPEND FROM ARRAY命令 命令格式:APPEND FROM ARRAY 数组名 FOR 条件表达式 FIELDS 字段名列表| FIELDS LIKE 字段特征框

20、架|FIELDS EXCEPT字段特征框架 功能:将数组中的每一行作为一条记录,在当前表的记录末尾追加,并从相应的数组行中取出数据添加到记录中。 4.APPEND GENERAL 命令 命令格式:APPEND GENERAL 通用型字段名 FROM 文件名 功能:从文件中导入 OLE 对象并将其放入当前记录的通用字段中。,4.3 VFP数据表记录的录入,4.3.2 VFP数据表记录的录入命令,5.APPEND MEMO 命令 命令格式:APPEND MEMO 备注型字段名 FROM 文件名OVERWRITE 功能:将文本文件的内容复制到当前记录的备注字段中。 6.INSERTSQL命令 该命令

21、的命令格式、功能及其应用见第6章。,4.3 VFP数据表记录的录入,4.3.3 表记录中各种数据的录入,1.字符型数据录入 2.数值型、浮点型、货币型、整型、双精度型数据录入 3.日期型、日期时间型数据录入 4.逻辑性数据录入 逻辑型字段只能接受T、Y、F、N这4个字母之一(不论大小写皆可) 5.备注型数据录入 6.通用型数据录入 7.记录数据的传递,4.3 VFP数据表记录的录入,4.4.1 数据表记录定位,1.记录指针与当前记录 一张数据表往往有多条记录,VFP系统按照输入时的顺序对数据表中的记录进行顺序编号,这个编号称为记录号。系统为每个打开的数据表设置一个记录指针,记录指针指向的记录被

22、称为当前记录,使用RECNO()函数可以获得指定工作区当前记录的记录号。 2.文件头与文件尾 VFP数据表文件有两个特殊的位置:文件头(表起始标记)和文件尾(表结束标记)。文件头位于表中第一条记录之前,当记录指针指向文件头时,函数BOF()的值为.T.,但此时的记录号为第一条记录的记录号。文件尾在最后一条记录之后,当记录指针指向文件尾时,函数EOF()的值为.T.,此时的记录号为数据表记录总数加1,即RECCOUNT()+1。,4.4 VFP数据表数据的访问,4.4.1 数据表记录定位,3.数据表记录指针定位 (1)使用菜单方式定位记录指针 “显示” “浏览” “表” “转到记录” (2)使用

23、命令方式定位记录指针 命令格式: GO|GOTO RECORD 记录号 IN 工作区号|别名 GO|GOTO TOP|BOTTOM IN 工作区号|别名 功能:移动记录指针到指定的记录。 命令格式2:SKIP N IN 工作区号|别名,4.4 VFP数据表数据的访问,4.4.2 数据表数据显示,1.使用菜单方式 “显示”“浏览” 2.使用?、?命令 命令格式:?|? 功能:?在当前光标处开始输出表达式的值 ?在下行输出表达式的值,4.4 VFP数据表数据的访问,4.4.2 数据表数据显示,例4.8 使用?、?命令显示数据表STUDENT和TEACHER的有关内容。 Select 1 USE S

24、TUDENT ALIAS XS EXCL GO 6 SELECT 2 USE TEACHER ALIAS JS EXCL 3 SELE 1 ?学号,姓名,家庭地址 ?性别,婚否 姓名=张三“ ?姓名+M.姓名 ?LEFT(学号,4)+ALLT(RIGHT(姓名,2) ?LEFT(学号,4)+RIGHT(ALLT(姓名),2) ?姓名+JS.姓名 ?性别+B.性别 ?学号,B.姓名,家庭地址,B.职称,4.4 VFP数据表数据的访问,4.4.2 数据表数据显示,3.使用LIST、DISPLAY命令 命令格式:LIST|DISPLAY FIELDS 字段列表 范围 FOR 条件表达式 WHILE

25、条件表达式 OFF NOCONSOLE TO PRINTER PROMPT | TO FILE 文件名 功能:在VFP6系统主窗口中显示与当前表有关的信息。,4.4 VFP数据表数据的访问,4.4.2 数据表数据显示,4.使用BROWSE命令 命令格式:BROWSE LASTFIELDS 字段列表 FONT 字体,字号 STYLE 字形FOR 条件表达式 REST FREEZE 字段名LOCK N NOAPPEND NODELETE NOEDIT|NOMODIFY NOLINK NOMENU NOREFRESH NORMAL NOWAIT TITLE 标题 功能:打开浏览窗口,显示当前或选定表

26、的记录。,4.4 VFP数据表数据的访问,4.4.3 数据表数据过滤,1.用菜单操作方式实现数据表数据过滤 2.用命令方式控制数据表数据访问 (1)设置记录过滤的命令 命令格式:SET FILTER TO 条件表达式 功能:指定访问当前表中记录时必须满足的条件。 (2)设置字段过滤的命令 命令1格式:SET FIELDS TO 字段列表|ALL 命令2格式:SET FIELDS ON | OFF 功能:指定可以访问表中的哪些字段。,4.4 VFP数据表数据的访问,4.5.1 数据表记录插入,命令格式:INSERT BEFORE BLANK 功能:在表的当前记录前(后)添加一条或多条新记录。,4

27、.5 VFP数据表数据的维护,4.5.2 数据表记录修改,1.使用菜单方式 2.使用BROWSE命令 3.使用EDIT、CHANGE命令 命令格式:EDITCHANGE FIELDS 字段列表 范围 FOR 条件 WHILE 条件 FONT 字体,字号 STYLE 字形 FREEZE 字段名 LASTPARTITION N NOAPPEND NODELETE NOEDIT | NOMODIFY NOLINK NOMENU NORMAL NOWAIT TITLE 标题 功能:以编辑方式显示、修改数据表记录,4.5 VFP数据表数据的维护,4.5.2 数据表记录修改,4.使用REPLACE命令 命

28、令格式:REPLACE 范围 FOR 条件 WHILE 条件 字段名1 WITH 表达式1 ADDITIVE,字段名 WITH 表达式2 ADDITIVE IN 工作区号|别名 功能:更新指定工作表的指定记录内容。 5.使用REPLACE FROM ARRAY 命令 命令格式:REPLACE FROM ARRAY 数组名 FIELDS 字段列表 范围 FOR 条件 WHILE 条件 功能:使用内存变量数组中的值更新字段内容。,4.5 VFP数据表数据的维护,4.5.3 数据表数据的删除,1.数据表记录的逻辑删除与恢复 (1)菜单方式 (2)命令方式 DELETE命令 命令格式:DELETE 范

29、围 FOR 条件WHILE 条件 功能:为当前数据表中指定范围内满足条件的记录添加删除标志。 RECALL命令 命令格式:RECALL 范围 FOR 条件WHILE 条件 功能:将当前数据表中指定范围内满足条件的记录的删除标志取消。,4.5 VFP数据表数据的维护,4.5.3 数据表数据的删除,2.数据表记录的物理删除 (1)菜单方式 (2)命令方式 PACK命令,功能是把当前数据库中做过删除标记的记录从文件中真正删除掉。 ZAP命令,功能是删除当前数据表中全部记录。在执行ZAP时,屏幕会出现信息框询问是否清除已打开数据表文件中的记录。 使用DELETESQL命令 3.带逻辑删除标志数据表设置

30、 命令格式:SET DELETED ON | OFF 功能:指定 VFP6 是否处理标有删除标记的记录,以及其它命令是否可以操作它们。,4.5 VFP数据表数据的维护,4.5.4数据表数据传递,1.记录与数组 (1)将当前记录复制到数组或内存变量 命令格式:SCATTER FIELDS 字段列表|FIELDS LIKE 字段特征框架|FIELDS EXCEPT 字段特征框架 MEMO TO 数组名|TO 数组名 BLANK|MEMVAR 功能:将当前记录的字段值按字段列表顺序依次送入数组元素中,或依次送入一组内存变量。 (2)将数组或内存变量的数据复制到当前记录 命令格式:GATHER FRO

31、M | MEMVAR FIELDS 字段列表|FIELDS LIKE 字段特征框架|FIELDS EXCEPT 字段特征框架 MEMO 功能:将数组或内存变量的数据依次复制到当前记录,以替换相应字段值。,4.5 VFP数据表数据的维护,4.5.4数据表数据传递,(3)将数据表记录复制到数组 命令格式:COPY TO ARRAY 数组名 FIELDS 字段列表|FIELDS LIKE 字段特征框架|FIELDS EXCEPT 字段特征框架 范围 FOR 条件 WHILE 条件 功能:将当前选定表中指定范围内满足条件记录的制定字段数据复制到数组。 (4)将数组复制到数据表 可以用前面讲述的APPE

32、ND FROM ARRAY将数组中的数据复制到新表中的记录。也可以用GATHER 将数组或一组内存变量中的数据复制到表中的记录。还可以使用REPLACE FROM ARRAY命令。,4.5 VFP数据表数据的维护,4.5 VFP数据表数据的维护,2.数据表的复制 (1)任意文件间的复制 命令格式:COPY FILE 源文件 TO 目标文件 功能:从源文件复制得到目标文件 (2)从当前表复制出表或其它类型文件 命令格式:COPY TO 文件名 FIELDS 字段列表|FIELDS LIKE/EXCEPT 字段匹配特征框架范围 FOR/WHILE 条件WITH CDX SDF|DELIMITED

33、WITH 字符字段界限符|WITH CHARACTER 分隔符 功能:用当前表的结构和内容去创建一个既有结构又有内容的新文件。,4.5 VFP数据表数据的维护,4.5 VFP数据表数据的维护,3.数据的导入与导出 (1)数据导入 数据的导入是指把其他外部数据数据导入VFP6数据表,供VFP应用程序系统使用。其中数据可以是文本、电子表格或表文件格式,利用系统提供的“导入”对话框来实现。 (2)数据导出 数据的导出是指把数据从VFP6数据表传送到另外一个应用程序所使用的文件中,供其它应用程序系统使用。其中数据可以是文本、电子表格或表文件格式,利用系统提供的“导出”对话框来实现。,4.5 VFP数据

34、表数据的维护,4.6.1 VFP数据表数据的排序,1.排序的概念 排序就是将数据表中的记录按照某个字段(或某几个字段)值的大小顺序重新排列,作为排序依据的字段称为关键字。 2.数据表排序 命令格式:SORT TO 文件名 ON 字段1 /A | /D /C,字段2 /A | /D /C .ASCENDING | DESCENDING 范围 FOR 条件 WHILE 条件 FIELDS 字段列表| FIELDS LIKE 字段特征框架| FIELDS EXCEPT 字段特征框架 功能:对当前数据表中的记录,按指定的字段及顺序排序,排序后产生新表文件。,4.6 VFP数据表数据的排序、索引,4.6

35、.2 VFP数据表数据的索引,1.索引的概念 “索引”是一组逻辑排序的指针,索引用于按关键字对记录进行排序,但并不改变表中记录的物理顺序,只是与表记录建立一种逻辑关系。 索引的主要作用是:按指定的关键字排序后,可以快速显示、查询、选择记录,可以建立表间的关联关系。,4.6 VFP数据表数据的排序、索引,4.6.2 VFP数据表数据的索引,2.索引及索引文件 (1)索引关键字:索引关键字指在数据表中建立索引用的字段或字段表达式,它可以是表中的单个字段,也可以是表中几个字段组成的表达式。 (2)索引类型 在VFP系统中,数据表的索引类型有以下4种: 主索引(PRIMARY INDEX) 候选索引(

36、CANDIDATE INDEX) 唯一索引(UNIQUE INDEX) 普通索引(REGULAR INDEX ),4.6 VFP数据表数据的排序、索引,4.6.2 VFP数据表数据的索引,(3)索引文件的类型 独立索引文件:又称单索引文件,文件扩展名为.IDX。 结构复合索引文件:文件扩展名为.CDX。 非结构复合索引文件:与结构复合索引文件相同,非结构复合索引文件也包含多个索引项,扩展名也是.CDX,但文件名与数据表文件名不相同,它不会随数据表文件的打开而打开,需要时使用单独的打开命令。 (4)索引与索引文件的关系 在VFP6系统中,结构复合索引文件是数据库中使用得最普遍,也是最重要的索引文

37、件。由于主索引与候选索引必须与表一起打开和关闭,所以它只能存储在结构复合索引文件.CDX中,不能放在非结构复合索引文件与独立索引文件中。,4.6 VFP数据表数据的排序、索引,4.6.2 VFP数据表数据的索引,3.索引文件建立 (1)菜单方式 “显示”“表设计器” “索引” (2)命令方式 命令格式:INDEX ON 索引表达式 TO 单索引文件名| TAG 索引项标记名 OF 复合索引文件名FOR 条件 COMPACT ASCENDING| DESCENDING UNIQUE ADDITIVE 功能:创建一个索引文件,利用该文件可以按某种逻辑顺序显示和访问表记录。,4.6 VFP数据表数据

38、的排序、索引,4.6.2 VFP数据表数据的索引,4.索引文件使用 (1)打开索引文件 同时打开数据表文件和索引文件 命令格式:USE 表文件名 INDEX 索引文件名表|?ORDER 数值表达式|单索引文件名|TAG 标识名OF 复合索引文件名 功能:打开表文件的同时打开一个或多个索引文件。 打开数据表文件后再打开索引文件 命令格式:SET INDEX TO 索引文件名表 ADDITIVE 功能:打开当前表的一个或多个索引文件并确定主控索引文件。,4.6 VFP数据表数据的排序、索引,4.6.2 VFP数据表数据的索引,(2)确定主控索引 菜单方式 “显示”“浏览” “表” “属性” 命令方

39、式 命令格式:SET ORDER TO N|单索引文件名|TAG索引标识名OF 复合索引文件名 功能:在打开的索引文件中指定主控索引文件,或在打开的复合索引文件中设置主控索引。,4.6 VFP数据表数据的排序、索引,4.6.2 VFP数据表数据的索引,(3)更新索引 命令格式:REINDEX COMPACT 功能:重新建立打开的索引文件。 (4)删除索引 菜单方式 “显示”“表设计器” “索引” 命令方式 命令格式:DELETE TAG ALL|, 功能:删除复合索引文件中指定索引标识。,4.6 VFP数据表数据的排序、索引,4.7.1 顺序查询,1.LOCATE命令 命令格式:LOCATE

40、范围 FOR 条件|WHILE 条件 功能:在指定范围内查找满足条件的第一条记录,并将记录指针定位该记录。 2.CONTINUE命令 命令格式:CONTINUE 功能:与LOCATE命令连用,继续查找LOCATE命令指定条件的记录,4.7 VFP数据表数据的查询,4.7.2 索引查询,命令格式:SEEK 表达式 ORDER N|单索引文件名|TAG 索引标识 ASCENDING| DESCENDING IN 工作区号| 别名 功能:在打开的索引文件中查找主索引关键字值与表达式值相匹配的第一条记录,并将记录指针定位在该记录。,4.7 VFP数据表数据的查询,4.8.1 计数命令COUNT,命令格

41、式:COUNT 范围 FOR 条件|WHIIE 条件 TO 内存变量 功能:统计当前表文件中指定范围内满足条件的记录个数。,4.8 VFP数据表数据的统计,4.8.2 求和命令SUM,命令格式:SUM 范围 N型字段列表或N型字段表达式列表 FOR 条件|WHILE 条件TO 内存变量表|ARRAY 数组名 功能:对当前表文件中指定范围内满足条件的N型字段按列求和。,4.8 VFP数据表数据的统计,4.8.3 求平均命令 AVERAGE,命令格式:AVERAGE 范围 N型字段名表或N型字段表达式表 FORWHILE 条件 TO 内存变量表|ARRAY 数组名 功能:对当前数据表中满足条件的N

42、型字段求平均值。,4.8 VFP数据表数据的统计,4.8.4 计算命令CALCULATE,命令格式:CALCULATE 范围 表达式列表 FORWHILE 条件 TO 内存变量表|ARRAY 数组名 功能:在打开的表中,分别计算表达式表的值。,4.8 VFP数据表数据的统计,4.8.5 汇总命令TOTAL,命令格式:TOTAL ON 关键字段名 T0 文件名 范围 FORWHILE 条件 FIELDS N型字段名表 功能:在当前表中,对指定范围内满足条件的记录按关键字段名分类汇总求和,并生成一个新表文件,新表文件又称为汇总文件,4.8 VFP数据表数据的统计,4.9.1 工作区、别名及数据访问

43、,1.对非主工作区字段的访问 别名调用格式:工作区号字段名、别名字段名、别名.字段名 2.数据工作期 “窗口” “数据工作期”,4.9 多工作区操作,4.9.2 表的关联,1.表关联的含义 各个工作区表文件的记录指针是彼此独立,互不影响。所谓关联就是在两个表文件的记录指针之间建立一种临时关系,当一个表的记录指针移动时,与之关联的另一个表的记录指针也做相应的移动。关联不是生成一个表文件,只是形成了一种联系。相互关联的两张表中,主动建立关联的表称为父表,被关联的表称为子表。 关联条件:条件是首先为子表按关联关键字建立索引(对记录号进行关联时,可以不索引),然后进行关联。关联后,当父表指针移动时,子

44、表指针也会自动移动到满足关联条件的记录上。,4.9 多工作区操作,4.9.2 表的关联,2.表关联的建立 (1)菜单方式 “窗口” “数据工作期” (2)命令方式 命令格式:SET RELATION TO 关联表达式1 INTO 别名1 ,关联表达式2 INTO 别名2 ADDITIVE 功能:以当前表为父表与一个或多个子表建立关联。,4.9 多工作区操作,4.9.2 表的关联,3.说明一对多关系的命令 若两表关联是一对多关系,需要加以说明。要说明两表的一对多关系,可以利用数据工作期窗口的“一对多”按钮,还可使用SET SKIP TO命令。 命令格式:SET SKIP TO 表别名1,表别名2

45、 功能:用在SET RELATION命令之后,说明已经建立的关联为一对多关系。 使用说明:表别名表示一对多关系中位于多方的子表。不带任何选择项的“SET SKIP TO”将取消一对多关系,但不取消已经建立的多对一关系。,4.9 多工作区操作,4.9.2 表的关联,例4.39中,以student.dbf为主表与studing.dbf建立关联,这里使用的是一对多关系。 CLOSE ALL SELECT 1 USE STUDING EXCLUSIVE INDEX ON 学号 TAG 学号 SELECT 2 USE STUDENT EXCLUSIVE SET RELATION TO 学号 INTO A

46、 SET SKIP TO A,4.9 多工作区操作,4.9.2 表的关联,4.表间的数据更新 当两个相关的数据表分别在不同的工作区打开后,即可用另一个数据表中的数据来批量更新当前数据表中的有关数据。 命令格式:UPDATE ON FROM REPLACE WITH RANDOM 功能:当表中记录的关键字段值与当前表中记录的关键字段值匹配时,用所指定的表达式的值来替换当前表中匹配记录指定字段的值。,4.9 多工作区操作,4.9.3 表之间的连接,表文件之间的连接就是将两个表的相关字段组合起来,构成一个新的表文件。这种连接称为物理连接。 命令格式:JOIN WITH 工作区号|别名 TO 新表名

47、FOR 连接条件 FIELDS 字段名 功能:将当前表文件与指定别名的表文件之间建立连接生成一个新的表文件。,4.9 多工作区操作,4.9.3 表之间的连接,例4.40 按学号将student.dbf和studing.dbf两表连接起来生成新表xsxx.dbf并显示连接后的结果。 SELECT 1 USE STUDENT EXCLUSIVE SELECT 2 USE STUDING EXCLUSIVE JOIN WITH A TO XSXX FOR 学号=A.学号 USE XSXX BROWSE,4.9 多工作区操作,4.9.3 表之间的连接,应用实例:设有增加工资表zjgz.dbf(编号,姓

48、名,增资额)和职工档案表zgda.dbf(其中有基本工资字段),现在将原基本工资与增资额相加作为新的基本工资。 USE ZGDA INDEX ON 编号 TAG BH SELECT 0 USE ZJGZ INDEX ON 编号 TAG BH SELECT ZGDA UPDATE ON 编号 FROM ZJGZ REPLACE 基本工资 WITH 基本工资+ZJGZ.增资额 BROWSE CLOSE DATABASE,4.9 多工作区操作,4.9.4 多工作区操作实例,例4.40 计算章立同学的各门功课平均成绩 分析:学生成绩保存在studing.dbf数据表中,学生姓名保存在student.d

49、bf数据表中,要计算章立同学各门功课的平均成绩,一是先在student表中查询到章立的学号,根据该学号在studing表中即可计算出章立的各门功课平均成绩;二是两表关联后查询计算;三是两表连接成一张表后查询计算。,4.9 多工作区操作,4.9.4 多工作区操作实例,*方法一 *方法二 CLOSE ALL CLOSE ALL SELECT 1 SELECT 1 USE STUDENT EXCLUSIVE USE STUDENT EXCLUSIVE LOCATE FOR 姓名=章立 INDEX ON 学号 TAG 学号 SELECT 2 SELECT 2 USE STUDING EXCLUSIVE USE STUDING EXCLUSIVE AVERAGE 成绩 TO PJCJ FOR 学号=A.学号 SET RELATION TO 学号 INTO A ?PJCJ AVERAGE 成绩 TO PJCJ FOR A.姓名=章立 *方法三 ?PJCJ CLOSE ALL SELECT 1 USE STUDENT EXCLUSIVE SELECT 2 USE STUDING E

温馨提示

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

评论

0/150

提交评论