第4章-Visual-FoxPro表的基本操作_第1页
第4章-Visual-FoxPro表的基本操作_第2页
第4章-Visual-FoxPro表的基本操作_第3页
第4章-Visual-FoxPro表的基本操作_第4页
第4章-Visual-FoxPro表的基本操作_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

第4章表的基本操作(时间:4次课,8学时)第4章表的基本操作教学提示:在关系数据库管理系统中,所有的操作都是在表基础上进行的。表在VisualFoxPro中分为数据库表和自由表。本章主要介绍在VisualFoxPro环境下如何建立表,如何向表中输入数据、浏览和修改表的结构、修改表中数据及建立索引、多表间的关联等内容,最后介绍了有关数据库表的相关操作。教学目标:通过本章的学习,要求掌握如何建立、修改及删除数据库,如何建立和修改表,掌握表索引的建立及使用方法,会对表记录进行各种操作。通过上机实习进一步掌握多表间的关联及数据库表的相关操作。

第4章表的基本操作4.1数据库的操作4.2表的建立4.3对表记录的操作4.4建立表索引4.5表中数值参数的统计4.6文件操作命令4.7多表间的关联4.8数据库表的相关设置4.9上机指导4.10习题4.1数据库的操作在介绍数据表的操作之前,本节先介绍数据库的操作,其中包括建立数据库、修改数据库,以及数据库的打开、关闭和删除操作。4.1.1建立数据库4.1.2打开、修改及关闭数据库4.1.3删除数据库4.1.1建立数据库数据库可以在项目管理器中利用【数据库设计器】直接建立,还可以使用命令方式建立及菜单方式建立。用项目管理器建立数据库操作方法:打开【项目管理器】对话框,在【数据】选项卡中选择【数据库】命令,并单击【新建】按钮。在弹出的【新建数据库】对话框中,单击【新建数据库】按钮,如图所示。系统将弹出一个【创建】对话框,填写文件名后打开一个数据库设计器。4.1.1建立数据库l

用菜单方式建立数据库操作方法:在VisualFoxPro系统主菜单下,选择【文件】│【新建】命令,然后选择【数据库】命令,单击【新建文件】按钮,弹出【创建】对话框。填写文件名后进入【数据库设计器】。l

用命令方式建立数据库命令格式:CREATEDATABASE<数据库名>命令功能:创建一个数据库,若省略扩展名,则系统默认其扩展名为.DBC。

4.1.1建立数据库例4.1建立一个空数据库文件“学生管理”操作步骤如下:(1) 在VisualFoxPro系统主菜单下,选择【文件】│【新建】命令,弹出【新建】对话框。(2) 在【新建】对话框中,选择文件类型为【数据库】,单击【新建文件】按钮,系统弹出【创建】对话框。(3) 在【创建】对话框,输入新建数据库的库名“学生管理”,单击【保存】按钮,此时空数据库文件“学生管理”已建成。4.1.1建立数据库例4.2在A盘上建立名为“学生管理.DBC”的数据库SETDEFAULTTOA&&设置A盘为默认盘CREATEDATABASE学生管理

&&在A盘上创建“学生管理.DBC”提示:与前两种方式不同,用命令方式创建数据库后,数据库设计器并没有马上打开。4.1.2打开、修改及关闭数据库打开、修改及关闭一个已存在的数据库可采用三种方式:即项目管理器方式、菜单方式和命令方式。

1.在项目管理器中打开、修改和关闭数据库操作方法如下:(1) 打开数据库时,打开【项目管理器】,在【数据】选项卡中选择一个已经存在的数据库文件,并单击【打开】按钮。此时,被选择的数据库文件被打开,同时【打开】按钮变成【关闭】按钮。(2) 修改数据库时,在【项目管理器】的【数据】选项卡中选择要修改的数据库文件,并单击【修改】按钮,此时,可在打开的【数据库设计器】中,对数据库文件进行修改。(3) 关闭数据库时,在【项目管理器】的【数据】选项卡中选择要关闭的数据库文件,并单击【关闭】按钮即可。4.1.2打开、修改及关闭数据库2.用菜单方式打开、修改和关闭数据库操作方法如下:(1) 在VisualFoxPro系统主菜单下,选择【文件】│【打开】命令,进入【打开】对话框。(2) 在【打开】对话框的文件类型下拉列表中,选择数据库类型,选择数据库文件或输入数据库名,单击【确定】按钮,进入【数据库设计器】

对话框,在该对话框中可对数据库进行修改。(3) 要关闭【数据库设计器】只需单击右上角的【关闭】按钮或选择【文件】菜单中的【关闭】命令。

4.1.2打开、修改及关闭数据库3.用命令方式打开、修改和关闭数据库(1) 打开数据库命令格式:OPENDATABASE<数据库名>命令功能:打开指定的数据库文件。若以前有数据库被打开,则同时关闭以前被打开的数据库。(2) 修改数据库命令格式:MODIFYDATABASE<数据库名>[NOWAIT][NOEDIT]命令功能:打开【数据库设计器】对话框,对数据库进行修改。[NOWAIT]:该选项只在程序中使用,在交互使用的命令窗口中无效。其作用是在【数据库设计器】对话框打开后程序继续执行,即继续执行MODIFYDATABASENOWAIT之后的语句。如果不使用该选项,在打开【数据库设计器】对话框后,应用程序会暂停,直到【数据库设计器】对话框关闭后应用程序才会继续执行。[NOEDIT]:使用该选项只是打开【数据库设计器】对话框,而禁止对数据库进行修改。

4.1.2打开、修改及关闭数据库(3)关闭数据库命令格式:CLOSEDATABASE命令功能:关闭当前打开的数据库,同时关闭该数据库中已经被打开的各种文件。

4.1.3删除数据库如果一个数据库不再使用了随时可以删除。一般可以在项目管理器中删除数据库,也可以用命令删除数据库。1.从项目管理器中删除数据库从项目管理器中删除数据库比较简单,直接选择要删除的数据库然后单击【移去】命令按钮,这时会出现提示对话框,这时可以选择:移去:从项目管理器中删除数据库,但并不从磁盘上删除相应的数据库文件;删除:从项目管理器中删除数据库,并从磁盘上删除相应的数据库文件;取消:取消当前的操作,即不进行删除数据库的操作。4.1.3删除数据库2.用命令方式删除数据库命令格式:DELETEDATABASE<数据库名>[DELETETABLES][RECYCLEl命令功能:从磁盘上删除指定的数据库,此时要删除的数据库必须处于关闭状态。参数和选项的含义如下:DELETETABLES:选择该选项则在删除数据库文件的同时从磁盘上删除该数据库所含的表等文件。RECYCLE:选择该选项则将删除的数据库文件和表文件并放入Windows的回收站中,如果需要的话,还可以还原它们。

4.2表的建立本节主要介绍新建数据库表和自由表,向数据库添加表和从数据库中移去表。本节还要介绍修改表的结构。4.2.1新建表4.2.2修改表文件结构4.2.1新建表1.数据库表和自由表在数据库设计器中建立的表称为数据库表,而不属于任何数据库的表是自由表(简称表)。在VisualFoxPro中创建表时,如果当前没有打开的数据库,所创建的表是自由表。可将自由表添加到数据库中使之成为数据库表;也可以将数据库表从数据库中移出,使之成为自由表。4.2.1新建表2.新建自由表建立一个表文件包括两部分工作:建立表文件结构和输入数据。定义表文件的文件名和每个字段的字段名、字段类型、字段宽度的工作称为建立表文件结构。在VisualFoxPro中,大部分操作既可用命令方式也可用菜单方式进行操作。l命令方式建立表命令格式:CREATE[<表文件名>]命令功能:定义一个表文件结构,并把该文件存入磁盘。表文件名由命令给出,扩展名默认为.DBF。执行该命令将打开【表设计器】如图所示,要求用户输入二维表中的字段、字段类型、宽度、小数位数等内容。

4.2.1新建表在表设计器的【字段】选项卡中涉及到的主要内容解释如下:(1) 字段名必须以字母或汉字开头,由字母、汉字、数字和下划线组成,不能包含空格。一个汉字算作两个字符,字段名最长为10个字符。(2)字段的数据类型决定存储在字段中的值的数据类型,数据类型通过宽度限制可以决定存储数据的数量或精度。宽度是指字段值的总宽度,如果字段允许含有小数,宽度还应包含小数的宽度和一位小数点的宽度。有些数据类型要求宽度是固定的,如逻辑型字段要求宽度为1,日期型字段要求宽度为8等。(3)NULL栏用于设置当前字段是否可以为NULL值(空值)。空值也是关系数据库中的一个重要概念。在表中可能会遇到尚未存储数据的字段,这时的空值(或空白)与空字符串、数值0的含义不同。空值就是缺值或还没有确定的值,不能把它理解为有意义的数据。如表示成绩的一个字段值,空值表示没有成绩,而数值0表示成绩为0分。在表设计器对话框中还有一些设置,如索引、表等将在后续章节中介绍。

4.2.1新建表l

利用菜单方式建立表操作步骤:(1) 在VisualFoxPro系统主菜单下,选择【文件】│【新建】命令,弹出【新建】对话框。(2) 在【新建】对话框,单击【表】│【新建文件】按钮,弹出【创建】对话框。(3) 在【创建】对话框中输入要建立的表的文件名,再单击【保存】按钮,进入【表设计器】对话框,在该对话框中输入表中的各个字段的字段名、字段类型、字段宽度和小数位数等信息。

4.2.1新建表l

利用项目管理器建立表操作步骤:(1) 打开【项目管理器】并选择【数据】选项卡。(2) 在【数据】选项卡中选择【自由表】|【新建】命令,弹出【新建表】对话框,在该对话框中单击【新建表】按钮,进入【创建】对话框。(3) 在【创建】对话框输入要建立的表的文件名,如“学生”,再单击【保存】按钮,进入【表设计器】对话框,在该对话框中所要进行的操作参见下图。

4.2.1新建表3.建立数据库表打开一个数据库,选择【文件】│【新建】│【表】命令或选择【数据库】菜单下的【新建表】命令或【在数据库设计器】中右击鼠标,选择快捷菜单中的【新建表】命令均可新建一个表,我们称之为数据库表。建立数据库表的表设计器界面,与上图比较发现数据库表可以建立字段有效性规则和约束等。事实上,与自由表相比数据库表还具有以下特点:(1) 数据库表可以使用长表名,在表中可以使用长字段名(2) 可为数据库表规定字段级规则和记录级规则(3) 可为数据库表中的字段指定默认值和输入掩码(4) 可为数据库表中的字段指定标题和添加注释(5) 数据库表的字段有默认的控件类(6) 数据库表支持主关键字、参照完整性和表之间的联系(7) 支持INSERT、UPDATE和DELETE事件的触发器

4.2.1新建表4.向数据库中添加自由表有了数据库文件,就可以向数据库添加表了。向数据库中添加表既可以在项目管理器或数据库设计器中进行,也可以使用命令方式进行。l

在项目管理器中添加自由表在项目管理器的全部或数据选项卡中,将要添加自由表的数据库展开至表,并选择【表】命令。单击【添加】按钮,从弹出的【打开】对话框中选择要添加到当前数据库的自由表。l

在数据库设计器中添加自由表打开数据库设计器,在【数据库设计器】工具栏中单击【添加表】按钮,或使用菜单:选择【数据库】│【添加表】命令,或右击鼠标,从快捷菜单中选择【添加表】命令,然后从打开的对话框中选择要添加到当前数据库的的自由表。4.2.1新建表例4.4向数据库“学生管理”中添加“学生”表,“成绩”表和“选课”表。操作步骤如下:①

在VisualFoxPro系统主菜单下,打开数据库“学生管理”,进入【数据库设计器】。②

在【数据库设计器】中,选择【数据库】菜单下的【添加表】命令,进入【打开】对话框。③

在【打开】对话框,选择要添加的表“学生”,单击【确定】按钮,则该表被添加到“学生管理”数据库中,返回【数据库设计器】。④

重复②、③步的操作,将“成绩”表和“选课”表也添加到数据库中。如下图所示,该数据库中已有三个表。4.2.1新建表4.2.1新建表l用命令方式添加自由表命令格式:ADDTABLE<自由表名>[NAME<长表名>]命令功能:向当前打开的数据库中添加指定的自由表。可选项[NAME<长表名>],为表指定一个长表名,最多可由128个字符组成。在程序中使用长表名可以提高程序的可读性。

4.2.1新建表例4.5把自由表“学生”添加到“学生管理”数据库,并给出长表名“中国大学学生管理数据库系统”。

opendatabase学生管理

addtable学生

name"中国大学学生管理数据库系统"

以后在数据库中使用命令“USE学生”和使用命令“USE中国大学学生管理数据库系统”是等价的。一个表只能属于一个数据库,当把一个自由表添加到某个数据库后就不是自由表了。所以不能把已经属于某个数据库的表添加到当前数据库,只有将该表从所属的数据库中移出,在当前的数据库才能添加该表。

4.2.1新建表5.从数据库中移去表从数据库中移去表与添加表相对应,也有3种移去方法:(1)从项目管理器中移去表:打开项目管理器,选择要移去的表,单击【移去】按钮,在弹出的对话框中单击【移去】按钮即可。(2)在数据库设计器中移去表:打开数据库,选中要移去的表,从【数据库】菜单中选择【移去】命令,在弹出的对话框中单击【移去】按钮即可。(3)使用命令移去表:打开数据库,使用以下命令将表移去。命令格式:REMOVETABLE<表文件名>4.2.2修改表文件结构对于所建的数据表若不满意,比如缺少应有的字段,字段名不合适,字段宽度或字段类型不对等等,可以再对表的结构进行修改。1.用命令方式修改表文件结构命令格式:MODIFYSTRUCTURE命令功能:执行此命令将会打开【表设计器】对话框,在该对话框中可对指定表进行修改。若无当前打开的表文件,系统将弹出【打开】对话框,要求用户选择一个表文件。此命令在执行时,系统自动在磁盘上建立一个与当前打开的表文件同名,扩展名为.BAK的后备文件,如果当前打开的表文件有备注型字段,系统也会自动建立一个同名但扩展名为.TBK的备注文件的副本。在修改表文件结构时,还可插入新的字段或删除现有的字段。提示:若修改后的表文件数据因某种原因失去了一些原有数据,可用以下方法恢复:(1)删除被修改了结构的表文件及备注文件。(2)把.BAK和.TBK后备文件改为同名的.DBF和.FPT文件。4.2.2修改表文件结构使用以上方法,当选择【移去】后,会弹出类似于右图所示的对话框,选择【移去】,则使被移去的表成为自由表;选择【删除】命令,则不仅从数据库中将表移出,而且还从磁盘上删除该表。一个表一旦从数据库中移出,该表的长表名将不能再使用,与之联系的所有主索引、默认值及有关的规则都将随之消失。所以,表的移出操作会影响到当前数据库中与该表有联系的其他表。

4.2.2修改表文件结构例4.6在“学生”表中“出生日期”字段前,增加“年龄”字段(字段名:年龄、数值型、宽度为3)。

USE学生

&&打开“学生”表

MODIFYSTRUCTURE在表设计器窗口中,单击“出生日期”(选择该字段为插入新字段的地方),再单击【插入】按钮。在【新字段】位置,输入需插入的字段名、类型和宽度,单击【确定】按钮后,弹出如下图所示对话框,单击“是”,完成结构的更改。4.2.2修改表文件结构2.用菜单方式修改表文件结构操作步骤如下:打开表文件,并在VisualFoxPro主窗口中选择【显示】|【表设计器】命令,此时在主窗口上弹出【表设计器】对话框。在【表设计器】对话框中可实现字段的修改、插入和删除,操作方法可参照例4.6。4.3对表记录的操作表建立完成后,不但可以对表结构进行修改,还可以对表中的记录进行修改。在讲解这些命令之前,先来学习VisualFoxPro命令的一般格式。4.3.1VisualFoxPro命令的一般格式4.3.2表文件记录浏览命令4.3.3打开和关闭表文件操作命令4.3.4记录指针定位命令4.3.5记录的追加命令4.3.6字段值的替换4.3.7表文件记录的删除和恢复4.3.1VisualFoxPro命令的一般格式在以前的学习中我们曾接触过一些命令,但VisualFoxPro的命令很多,各有不同的命令形式,其中有许多命令具有一种类似的形式,称为命令的一般形式。VisualFoxPro命令的一般格式为:<命令关键字>[<范围>][<表达式清单>][FOR<条件1>][WHILE<条件2>]1.命令关键字命令关键字决定命令的性质,是一个英文动词,用来表示该命令所要执行的操作。我们已经使用过的“USE”、“CREATE”等均属于命令关键字。命令关键字必须是一条命令的第一项,而其他可选项的顺序可任意排列。4.3.1VisualFoxPro命令的一般格式2.范围范围选项决定命令所作用的记录范围,其值可有以下5种选择:ALL—范围为从首记录开始的所有记录。NEXTn—范围为从当前记录开始的n条记录。RECORDn—范围仅为第n条记录。REST—范围为从当前记录开始直到文件结束的所有记录。缺省—若条件项也同时缺省,不同命令有不同的含义,有的等价于ALL,有的仅作用于当前记录。

4.3.1VisualFoxPro命令的一般格式3.

FOR<条件1>和WHILE<条件2>项条件是一个返回值为逻辑值的表达式。条件项的含义为:只对那些使表达式返回值为“真”(.T.)的记录进行命令规定的操作。FOR<条件1>是指对指定范围内满足条件的所有记录进行操作;WHILE<条件2>是指对指定条件的记录进行操作,直到遇到一个不满足条件的记录,不管剩下范围内是否还有满足条件的记录,都将停止继续执行命令。命令执行完毕后,记录指针一般指向范围内的最后一条记录。当范围为ALL时,指针指向表文件记录个数加1,即指向文件结束标志。注意:当一条命令中既有FOR<条件1>又有WHILE<条件2>,在WHILE<条件2>首次不满足前,将对满足FOR<条件1>的所有记录进行操作,一旦WHILE<条件2>不满足,则停止操作。4.3.1VisualFoxPro命令的一般格式4.表达式清单一般是指表文件中的字段名清单,或是包含字段名的表达式清单。各项之间用

“,”分隔。缺省此项,一般是指表文件中的全部字段。一条命令的各部分之间必须用一个或一个以上的空格分开,但总长度(包括命令中的所有空格)不能超过254个字符(一个汉字以两个字符计算)。如果命令较长,可用“;”后跟一个回车键,转到下一行去继续输入这条命令。系统在执行时,将把它们看作一个整体。当然,也可以不管它,连续输入一条命令的全部内容。输入到行末时,系统会自动换行,这样不会影响一条命令的完整性。但决不允许在一行快输满时,用回车键换到下一行,继续输入本条命令,这样会破坏命令的完整性。下面是一条标准的命令格式的例子:LISTNEXT5姓名,出生日期

FOR性别="女"此命令的含义为:显示从当前记录开始的5条记录中女生的姓名和出生日期。

4.3.2表文件记录浏览命令对于表记录的操作,首先就是浏览查看表中的记录。通常有两种方式:一个是用浏览窗口浏览,另一个是在VisualFoxPro主窗口中输出记录内容。本小节分别介绍。1.用浏览窗口浏览表的记录l

使用【项目管理器】在【项目管理器】中选择【数据】选项卡,选中对应表文件名,单击【浏览】按钮。l

菜单方式在表文件打开的情况下,利用VisualFoxPro的菜单:选择【显示】│【浏览】命令,打开【浏览】对话框。此时【显示】下拉菜单下又多了一项【编辑】命令。选择【编辑】命令也可以浏览记录,与前者的区别是:一个字段占一行,记录是按页显示而不是按行显示。4.3.2表文件记录浏览命令l

命令方式命令格式:BROWSE[FIELDS<字段名清单>][FOR<条件表达式>][FREEZE<字段名>]命令功能:在浏览窗口分页横式显示所有符合条件的记录。有[FIELDS<字段名清单>]可选项时,将显示字段名清单中给出的字段,否则显示全部字段。有[FOR<条件表达式>]可选项时,只显示使<条件表达式>为“真”(.T.)的记录,否则显示全部记录。有[FREEZE<字段名>]可选项时,只能编辑FREEZE中给出的一个字段,否则可编辑全部字段。4.3.2表文件记录浏览命令例4.7显示“学生”表中所有党团员的学号、姓名和E_mail。(1) 使用命令:

USE学生

BROWSEFIELDS学号,姓名,E_mailFOR党团员浏览窗口显示如图

所示。

4.3.2表文件记录浏览命令(2) 使用菜单:打开浏览窗口,此时主菜单上多了一项【表】。下拉【表】菜单,选择【属性】命令,打开【工作区属性】对话框。如下左图所示。①

在【数据过滤器】文本框中填写:学生.党团员,这相当于命令中的For党团员;②

选择单选按钮【字段筛选指定的字段】,单击【字段筛选】按钮,打开【字段选择器】对话框。如下右图所示。

4.3.2表文件记录浏览命令在【字段选择器】对话框中,将要选择的字段“学号”、“姓名”、“E-mail”添加到“选择字段”当中,这相当于命令方式中的Fields学号,姓名,E-mail。关闭表的浏览窗口后再重新打开,浏览窗口内容相同。提示:在浏览窗口中同时具有编辑修改记录的功能。4.3.2表文件记录浏览命令2.输出命令(LIST、DISPLAY)这两个命令也可以浏览表的记录,一般是在VisualFoxPro的主屏幕或是输出至打印机。用这两个命令还可以输出显示表文件的结构。(1) LIST命令利用LIST命令可以以滚动方式输出表文件的结构和记录的内容。①

输出表文件结构命令格式:LISTSTRUCTURE[TOFILE<文件名>|TOPRINTER][NOCONSOLE]该命令用来输出打开的表文件结构。可选项[TOFILE<文件名>]表示将表文件结构输出到磁盘文件保存;[TOPRINTER]表示将表文件结构输出到打印机上打印;[NOCONSOLE]表示输出的内容不在VisualFoxPro主窗口显示;无此可选项表示在VisualFoxPro主窗口显示表文件结构。4.3.2表文件记录浏览命令例4.8输出“学生.DBF”的表结构

USE学生

&&打开“学生情况”表

LISTSTRUCTURE显示结果为:

表结构:D:\学生管理系统\学生.DBF

数据记录数:12

最近更新的时间:02/08/04

备注文件块大小:64

字段

字段名

类型

宽度

小数位

Nulls1 学号

字符型

7 否

2 班级编号

字符型

2 否

3 姓名

字符型

8 否

4 性别

字符型

2 否

5 出生日期

日期型

8 否

6 党团员

逻辑型

1 否

7 专业

字符型

8 否

8 入学成绩

数值型

8 否

9 E_MAIL 字符型

15否

9 简历

备注型

4 否**总计**644.3.2表文件记录浏览命令在实际输出时,除了输出表文件结构外,还在前面给出了表文件名、已有记录个数、最后更改日期和备注文件的大小。在最后一行中,给出了字段的总宽度,但这个宽度比各字段的宽度之和多1个字节,该字节用来存放记录的删除标记(*)。②

输出记录内容命令格式:LIST[OFF][<范围>][[<FIELDS>]<字段名清单>][FOR<条件1>][WHILE<条件2>][TOPRINTER|TOFILE<文件名>][NOCONSOLE]可选项

[OFF]:输出时不输出记录号,否则输出记录号。缺省[<范围>]项表示输出全部记录。4.3.2表文件记录浏览命令(2) DISPLAY命令利用DISPLAY命令可以以分页方式输出表结构和记录内容。命令格式:DISPLAYSTRUCTURE[TOFILE<文件名>|TOPRINTER][NOCONSOLE]DISPLAY[OFF][<范围>][[<FIELDS>]<字段名清单>][FOR<条件1>][WHILE<条件2>][TOPRINTER|TOFILE<文件名>][NOCONSOLE](3) DISPLAY和LIST的异同DISPLAY命令和LIST命令的功能一样,在使用时有如下两点差别:①

DISPLAY命令以分页方式显示内容,即显示满一页时暂停,待用户按任意键后继续显示下一页,直至全部显示完毕;LIST命令是以滚动方式显示,如果显示的内容超过一页,执行该命令后,屏幕上只剩下最后一页的内容。②

当命令中缺省“范围”和“条件”选项时,LIST命令默认为全部记录,而DISPLAY命令默认为当前记录。

4.3.3打开和关闭表文件操作命令数据表的打开和关闭是最常用的操作,在程序中要使用相关命令,在VisualFoxPro的交互方式下,可以用菜单完成该操作。下面分别介绍。1.打开表文件命令要使用一个表文件,必须先打开它。命令格式:USE<表文件名>命令功能:打开指定表文件,同时关闭原来已打开的表文件。如果该表文件有备注型字段,则同时打开与表文件同名、扩展名为.FPT的备注文件。在打开表文件时如省略扩展名,则系统默认为.DBF。

4.3.3打开和关闭表文件操作命令2.关闭表文件命令表文件在使用或修改完毕后要进行关闭。命令格式:USE命令功能:执行此命令后,打开的表文件将从内存中消失。3.使用菜单方式打开和关闭表文件(1) 打开表:在VisualFoxPro主窗口中选择【文件】│【打开】命令(或用鼠标单击工具栏中的【打开】图标),在弹出的【打开】对话框中选择要打开的表文件,单击【确定】按钮。(2) 关闭表:在VisualFoxPro主窗口中选择【窗口】│【数据工作期】命令,在弹出的【数据工作期】对话框中选择要关闭的表,单击【确定】按钮。注意:使用【文件】菜单中的关闭命令或直接关闭表的浏览窗口,并未关闭表文件,而只是关闭了表的浏览窗口。4.3.4记录指针定位命令打开一个表文件后,系统给这个表文件提供一个记录指针,简称指针。指针里存放一个十进制数n,它是某个记录的记录号,此时表明记录指针指向了这个记录。我们把这个记录称为当前记录。刚打开一个表文件时,记录指针指向首记录。对表文件的操作是以当前记录为基准的,在执行某些命令时,会改变当前记录。在这里,我们先介绍用于改变当前记录的两条命令——移动指针命令。4.3.4记录指针定位命令1.绝对移动指针命令命令格式:GO[RECORD]<数值表达式>[TOP|BOTTOM]命令功能:命令关键字GO也可用GOTO代替。若选择数值表达式,记录指针指向记录号等于此表达式的记录;若选择TOP,记录指针指向首记录;若选择BOTTOM,记录指针指向末记录。当GO后是一个具体数字时,可缺省此命令关键字。例4.9指针的绝对移动。USE学生GO8&&使8号记录成为当前记录GOTOP&&记录指针指向首记录5&&使5号记录成为当前记录GOBOTTOM&&记录指针指向末记录4.3.4记录指针定位命令2.相对移动指针命令确定当前记录之后,可用SKIP命令向前或向后移动若干条记录位置,称为相对移动。命令格式:SKIP[±<数值表达式>]命令功能:使指针以当前记录为基准,向前或向后移动若干条记录,移动记录的个数等于命令中数值表达式的值。命令中的“+”号表示向后移动(“+”可省略),“–”号表示向前移动。当缺省数值表达式(只使用命令SKIP)时等价于SKIP+1。例4.10指针的相对移动。USE学生SKIP8&&使9号记录成为当前记录SKIP–3&&使6号记录成为当前记录SKIP&&使7号记录成为当前记录

4.3.4记录指针定位命令3.使用菜单移动记录指针利用VisualFoxPro所提供的菜单也可以实现记录指针的移动,操作步骤如下。(1) 在VisualFoxPro主窗口中用鼠标单击工具栏中的【打开】图标,弹出【打开】对话框,在【打开】对话框中选择要打开的表文件,并单击【确定】按钮。(2) 在VisualFoxPro主菜单中选择【显示】│【浏览】命令,此时在主窗口中显示表文件的记录内容(第一条记录的左边有一指针符号),并在菜单栏增加了【表】下拉菜单。(3) 选择【表】下拉菜单中的【转到记录】命令,将显示下级菜单,如下图所示。4.3.4记录指针定位命令在下级菜单中提供了6个选项,它们是【第一个】、【最后一个】、【下一个】、【上一个】、【记录号】和【定位】。其中的【下一个】和【上一个】选项是指以当前记录为基准的上一条记录和下一条记录。【定位】选项将在下面章节中介绍。(4) 选择完毕,浏览窗口中表记录左边的指针符号会根据选择的结果而发生移动

4.3.4记录指针定位命令4.直接用鼠标移动记录指针在打开的数据表浏览窗口中,直接用鼠标单击指定记录的任一位置,即可使该记录成为当前记录,记录指针符号可显示于记录的左边。此方法适用于在交互方式下,且所选记录在小范围的情况下使用。例4.11用菜单方式将“学生”表中的记录指针定位在第六条记录。操作步骤如下。①

在菜单栏中选择【文件】│【打开】命令,在打开对话框中选择要打开的表“学生”。②

在菜单栏中选择【显示】│【浏览】命令,在VisualFoxPro主窗口中显示表“学生”的记录内容,且记录指针指向第一条记录。③

在菜单栏中选择【表】│【转到记录】│【记录号】命令,弹出【转到记录】对话框。④在该对话框的【记录号】文本栏中输入6,单击【确定】按钮,此时在主窗口的【浏览】窗口中指针已指向第6号记录。4.3.5记录的追加命令在已创建数据表中添加新的记录,可以是追加一条,也可以是多条记录,还可能是需要添加一条空白记录,或者是将其他数据表中的记录追加至本表,VisualFoxPro都提供了相应的功能。4.3.5记录的追加命令1.追加新记录l

用菜单方式打开表文件,并在VisualFoxPro主窗口中选择【显示】│【浏览】命令,此时在主窗口上显示打开的表文件的记录内容。u

选择【表】│【追加新记录】命令(或Ctrl+Y)。只追加一条新的空白记录。u

选择【显示】│【追加方式】命令。输入内容后,可自动再添加一条新记录。l

用命令方式当需要向打开的表中追加新记录或已创建了表文件结构后,需要向表中加入记录时,可使用“APPEND”命令。命令格式:APPEND[BLANK]命令功能:在表文件的末尾加入新记录。执行该命令时,将在VisualFoxPro主窗口显示一个编辑窗口,等待用户输入新的记录内容。若有可选项[BLANK],则在表文件末增加一个空记录。

4.3.5记录的追加命令无论用以上两种方式中的哪一个,结果是在屏幕上打开了表文件的【浏览】窗口,用户可在【浏览】窗口末尾输入新的记录内容。在该窗口中,按列显示表文件的记录结构,光标停在第一个字段处,等待用户逐个字段地输入记录内容。要改变显示方式为行显示,可在【显示】下拉菜单中选择【浏览】命令。当输入某字段的数据与该字段不符时(如类型不符),系统拒绝接受,并要求用户重新输入。如要追加空记录,可直接按回车键即可。在追加的新记录中如需输入备注型字段的内容,可用鼠标双击该字段,此时屏幕上显示一个编辑备注型字段的窗口,用户在该窗口输入备注型字段的内容。输入完毕,可单击关闭按钮返回【浏览】窗口。备注型字段数据实际存储在与表文件同名,扩展名为“.FPT”的备注文件中。备注型字段如已存入内容,则该字段显示的“memo”中的第一个字符m显示为大写的M。

4.3.5记录的追加命令2.从其他表中追加记录用命令方式命令格式:APPENDFROM<表文件名>[FIELDS<字段名清单>][FOR<条件>]命令功能:将指定表文件(源文件)中的记录追加到当前表文件(目的文件)中。命令中若有可选项“FOR<条件>”,则只追加满足条件的记录,否则追加全部记录;若有可选项“FIELDS<字段名清单>”,则将源文件中字段名清单列出的字段追加到目的文件中,否则追加全部字段,备注型字段也一同被追加。用菜单方式①

打开表文件,在VisualFoxPro主菜单中选择【显示】|【浏览】命令,打开【浏览】窗口。

选择【表】│【追加记录】命令,此时在屏幕上弹出【追加来源】对话框。单击图中【来源于】文本框右侧的按钮,在弹出的【打开】对话框中选择源表文件。4.3.5记录的追加命令③

若只追加部分字段或满足条件的记录,可单击图4.3.6中的【选项】按钮,打开【追加来源选项】对话框,如图4.3.7所示。单击【字段】

按钮,打开【字段选择器】,单击For按钮打开【表达式生成器】,选择需要追加的字段或设定记录的条件。注意:目的文件和源文件中,被追加的字段的字段名、类型和宽度最好相同,否则很容易造成错误。4.3.6字段值的替换前面讲到对数据表执行浏览操作可以兼有编辑功能,即在【浏览】窗口可以对记录进行修改。但对于成批的大量的修改,在浏览环境下做就不太方便了。本小节介绍记录字段的成批替换问题。4.3.6字段值的替换例4.12按下列条件修改字段,写出相应的命令。(1) 对当前表中所有学生的入学成绩加5分。REPLACEALL入学成绩WITH入学成绩+5(2) 对当前表中所有专业为“计算机”的改为“计算机应用”REPLACEALL专业WITH"计算机应用"FOR专业="计算机"(3) 对当前表中姓名为“李晓明”的学生的“党团员”字段改为“真”REPLACEALL党团员WITH.T.FOR姓名="李晓明"(4) 对当前表中所有记录的“班级编号”字段的值的第一个字符改为“1”REPLACEALL班级编号

WITH"1"+RIGHT(班级编号,1)4.3.6字段值的替换2.用菜单方式实现字段值的替换操作步骤如下:①

打开表文件,并在VisualFoxPro主窗口中选择【显示】|【浏览】命令,此时在【浏览】窗口中显示打开的表文件的记录内容。②

选择【表】│【替换字段】命令,此时在屏幕上显示替换字段窗口③

该窗口中的【字段】文本框中,用户可输入被替换字段的字段名;或单击【字段】文本框右边的下箭头,选择要替换的字段名。如选择“入学成绩”字段。④

在【替换为】文本框中输入替换的内容;或单击【替换为】文本框右边的按钮,弹出【表达式生成器】,在该对话框中输入替换的内容。单击【确定】按钮,返回【替换字段】对话框。⑤

在【替换字段】对话框可继续选择【作用范围】、For和While命令(可在如图4.3.8所示的表达式生成器中设置条件),然后单击【替换】按钮。返回【浏览】窗口,此时,所要替换的字段的值已替换。

4.3.7表文件记录的删除和恢复删除表文件中的记录分为逻辑删除和物理删除。逻辑删除只是在记录上加上一个删除标记“*”,这种标记是可以取消的;物理删除才是将记录从表中彻底删除掉。1.用命令方式实现表文件记录的删除和恢复(1) 用命令方式给表中的记录加上删除标记命令结构:DELETE[<范围>][FOR<条件1>][WHILE<条件2>]命令功能:对范围内满足条件的记录进行逻辑删除,即加上删除标记“*”。在缺省[<范围>]和<条件>选项时,仅对当前记录加上删除标记。

4.3.7表文件记录的删除和恢复例4.13对“学生”表中的第1~3条记录加删除标记。USE学生DELETENEXT3LIST显示结果如下:(2)用命令方式撤消表中的记录的删除标记命令结构:RECALL[<范围>][FOR<条件1>][WHILE<条件2>]命令功能:对范围内满足条件的记录如果有删除标记“*”,将被撤消。.在缺省[<范围>]和<条件>选项时,仅对当前记录撤消删除标记。例4.14对“学生”表中的删除标记全部撤消USE学生RECALLALLLIST&&显示结果略4.3.7表文件记录的删除和恢复2.用菜单方式实现表文件记录的删除和恢复操作步骤如下:(1) 打开表文件,并在VisualFoxPro主窗口中选择【显示】│【浏览】命令,此时在主窗口上显示打开的表文件的记录内容。(2) 选择【表】│【删除记录】命令,此时弹出【删除】对话框。(3) 在对话框中输入加删除标记记录【作用范围】、【For】和【While】的条件,方法同前,然后单击【删除】按钮。此时,表文件中满足条件的记录已加了删除标记。(4) 如果需要撤消某些记录的删除标记,可在图4.3.4所示的【表】下拉菜单中选择【恢复记录】命令,系统将弹出【恢复记录】对话框,在该对话框中输入需撤消删除标记记录对话框【作用范围】、【For】和【While】的条件,然后单击【恢复记录】按钮。此时,表文件中满足条件记录上的删除标记已经被撤消。4.3.7表文件记录的删除和恢复例4.15用菜单方式把“学生”表中性别为男的记录加上删除标记操作步骤如下:①

打开“学生”表

选择【显示】│【浏览】命令③

选择【表】│【删除记录】命令,在弹出的【删除】对话框中,输入【作用范围】:ALL,【For】条件:学生.性别=“男”,单击【删除】按钮。此时在【浏览】窗口中显示加了删除标记的“学生”表。

4.3.7表文件记录的删除和恢复3.用鼠标单击实现表文件记录的删除和恢复在将表文件以【浏览】或【编辑】方式显示在主窗口中时,可用鼠标单击记录左边的“小方格”,当“小方格”变成黑色时,表示该记录已加了删除标记。当再次单击“小方格”时,“小方格”变成白色,表示该记录的删除标记已经被撤消。另外,还可以用“<Ctrl>+<T>”对当前记录增加和撤消删除标记。4.SETDELETEDON/OFF命令记录加了删除标记后,再执行其他命令时是否有影响,要取决于“SETDELETED”命令。当执行了“SETDELETEDOFF”命令后,删除标记对任何命令均无影响;当执行了“SETDELETEDON”命令后再执行其他命令时,一般不包括带有删除标记的记录。但有两点例外:①命令中含有RECORD<表达式>或NEXT<表达式>范围项,且范围内第一个记录带有删除标记的。②本章后面讲到的INDEX和REINDEX命令不受“SETDELETED”命令的影响。“SETDELETED”命令的初始默认值为OFF。

4.3.7表文件记录的删除和恢复5.物理删除记录l

用命令方式物理删除带删除标记的记录命令格式:PACK命令功能:将表中带有删除标记的记录全部删除掉,并且不能再恢复。例4.16将当前表中有删除标记的记录物理删除PACKl

用菜单方式删除带删除标记的记录操作步骤如下:(1) 打开要删除记录的表文件。(2) 选择【显示】|【浏览】命令(3) 选择【表】│【彻底删除】,弹出确定对话框,单击“是”,则物理删除带有删除标记的记录。

4.3.7表文件记录的删除和恢复l物理删除表中的全部记录命令格式:ZAP命令功能:物理删除表中的全部记录,不管是否有删除标记。但表结构仍然存在。4.4建立表索引在VisualFoxPro中,表建立以后,其内部记录的排列顺序是按照输入的顺序排列的,如果需要按某字段的顺序重新排列记录,则要进行排序。排序分为物理排序和逻辑排序,物理排序(简称:排序)需占用较大的存储空间,而逻辑排序(即:索引)是由指针构成的排序文件,这些指针逻辑上按照索引关键字值进行排序。索引文件和表的.dbf文件分别存储,且不改变表中记录的物理顺序。表索引实际上是一个列表,它建立了索引表达式与记录号之间的一种对应关系,并可按索引表达式的排序查找相应的记录,从而可以确定对记录的处理顺序。其中的索引表达式可以是表的一个字段,也可以是由某些字段组成的表达式。4.4建立表索引对于已经建好的表,可以利用索引对其中的数据进行排序,以便加速检索数据的速度,还可以利用索引快速显示、查询或者打印记录,控制重复字段值的输入并支持表间的关系操作。对同一个表可以建立多个索引,每一个索引代表一种记录的处理顺序,但在任何时刻,最多只有一个索引起作用,这个索引称为主控索引。索引存放在结构化复合索引文件中,该文件与相关的表文件同名,扩展名为.CDX,如学生.CDX。通常情况下,每一个索引包含两部分内容:1.索引关键字表达式:它是用来创建索引的标准,可以是表中的某个特定的字段、变量、函数等项的组合表达式。2.索引标识:是索引的名称,要求以字母或下划线开头,由字母、数字和下划线组成,但不能超过10个字符。

4.4建立表索引4.4.1索引类型4.4.2用命令方式建立索引4.4.3在表设计器中建立索引4.4.4表记录的查找4.4.1索引类型VisualFoxPro为数据库表提供了主索引、候选索引、惟一索引和普通索引四种,自由表只有后三种索引。1.主索引起主关键字作用,并在指定字段或表达式中不允许出现重复值的索引叫主索引。这里的“不允许出现重复值”是指建立索引的字段值不允许重复。如果需在含有重复数据的字段中建立主索引,则必须首先删除重复字段值后才能建立主索引。建立主索引的字段可以看作是主关键字。一个表只能有一个主关键字,因此一个表只能建立一个主索引。主索引是一个不允许索引表达式值出现重复的索引。我们可以为数据库中的每一个表建立一个主索引,如果一个表有了一个主索引,还可以为它添加候选索引。2.候选索引候选索引是主索引的候选索引。它和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字。候选索引和主索引一样不允许索引表达式值出现重复的索引。在一个表中可以建立多个候选索引。4.4.1索引类型3.惟一索引惟一索引允许索引表达式有重复值,当索引表达式值重复时,只有第一个记录进入索引。在一个表中可以建立多个惟一索引。4.普通索引普通索引允许索引表达式出现重复值,一个表中可以有多个普通索引。在一个表中可以建立多个索引,每个索引分别表示处理记录的不同顺序。但如果索引过多会降低系统的运行性能。

4.4.2用命令方式建立索引1.创建索引命令格式:INDEXON<关键字表达式>TAG<索引标识>[FOR<条件表达式>][ASCENDING|DESCENDING]命令功能:根据<关键字表达式>为当前打开的表文件创建一个索引,索引名为命令中给定的<索引标识>。索引文件存放在与表文件同名,扩展名为

.CDX的复合结构索引文件中。命令中的<关键字表达式>可以是一个字段名,还可以是包含字段名的表达式,但该表达式只能是数值型、字符型或日期型。若命令中无[FOR<条件表达式>],则对所有记录进行索引;否则只对满足条件的记录进行索引。[ASCENDING或

DESCENDING]选项:若缺省或选择ASCENDING,索引将按关键字表达式的值升序排列;若选择DESCENDING,索引将按关键字表达式的值降序排列。

4.4.2用命令方式建立索引例4.17对表文件“学生”,按“出生日期”的升序建立一索引文件,索引标识为SY1。USE学生INDEXON出生日期

TAGSY1BROWSE浏览结果见图如果在索引表达式中是由多个数值型字段组成,则索引将按照多个数值型字段的和进行排序。

4.4.2用命令方式建立索引例4.18新建一个“成绩”表,表结构为:学号,字符型,宽度为7;姓名,字符型,宽度为8;计算机、英语、高等数学都为数值型,宽度均为4。现根据三门课程成绩的总和进行降序索引,索引标识为SY2。USE成绩INDEXON计算机+英语+高等数学

TAGSY2DESCBROWSE浏览结果见右图4.4.2用命令方式建立索引如果希望先按高等数学索引,高等数学成绩相同时再按计算机索引,最后再按英语索引,索引标识为SY3,则应输入以下命令:

INDEXONSTR(高等数学,4)+STR(计算机,4)+STR(英语,4)TAGSY3DESCBROWSE浏览结果见图4.4.2用命令方式建立索引注意:按此方法进行索引,如果索引关键字表达式中使用了非字符字段,则必须通过相关函数(如STR(),DTOC()等)将非字符型字段转换成字符型字段。例4.19对“学生”表,对男生按入学成绩进行索引,索引标识为SY4。USE学生INDEXON入学成绩

TAGSY4FOR性别="男"BROWSE4.4.2用命令方式建立索引2.设置主控索引由于一个表可以建立多个索引,其中每个索引代表不同的记录集合、不同的排列顺序,根据需要我们可以选用适当的索引。但在某一时刻,只有一个索引起作用,这就是主控索引。在给表建立多个索引时,最近建的索引自动成为主控索引。如要改变主控索引,则要使用“SETORDER”命令。命令格式:SETORDERTO<索引标识>命令功能:将指定的索引成为当前的主控索引。例4.20在上面例子中已建立了SY1,SY4两个索引,执行下列命令:USE学生SETORDERTOSY1&&将SY1设置成主控索引LISTSETORDERTOSY4&&将SY4设置成主控索引LIST请读者分析执行结果。4.4.2用命令方式建立索引3.删除索引如果某个索引不再使用了则可以删除它。命令格式:DELETETAG<索引标识清单

|ALL>命令功能:该命令从结构化复合索引文件中删除索引标识清单中列出的索引或全部索引。4.4.3在表设计器中建立索引索引除了可以在命令方式下建立,还可以在表设计器中建立。

1.单项索引在【表设计器】中有【字段】、【索引】和【表】三个选项卡,在【字段】选项卡中定义字段时就可以直接指定某些字段是否是索引项,用鼠标单击定义索引的下拉列表框可以看到有三个选项:无、升序和降序(默认为无),如图4.4.5所示。如果选定了升序或降序,则在对应字段上建立了一个普通索引,索引名与字段名同名,索引表达式就是对应的字段。如果要将索引定义为其他类型,须切换到【索引】选项卡,然后从【类型】下拉列表中选择索引的类型。此时可根据需要选择主索引、候选索引或惟一索引。4.4.3在表设计器中建立索引2.复合字段索引如果索引是由多个字段构成的,则称为复合字段索引。建立复合字段索引的方法是:(1) 在【索引】选项卡中单击【插入】按钮,此时会在屏幕上出现一个新行。(2) 在索引名栏中输入索引名。(3) 从索引类型下拉列表中选择索引类型。(4) 单击表达式栏右侧的按钮,打开表达式生成器。(5) 在表达式生成器中输入索引表达式,最后单击【确定】按钮。4.4.3在表设计器中建立索引例4.21用表设计器对例4.18作如下操作

(1) 打开

“成绩”数据表。(2) 选择【显示】|【表设计器】命令,选择【索引】选项卡。(3) 在【索引】选项卡中单击【插入】按钮,并在【索引名】栏中输入“SY2”。(4) 可在【表达式】栏中输入“计算机+英语+高等数学”或单击表达式栏右侧的按钮,弹出表达式生成器,在【表达式】栏中输入“计算机+英语+高等数学”,单击【确定】按钮。(5) 如果需要筛选条件,可单击【筛选】栏直接输入条件或单击【筛选】栏右侧的按钮,打开【表达式生成器】,输入筛选条件。如输入“计算机>=95”。(6) 如需进行“升序”排列,可单击【索引】选项【排序】中的按钮,最后单击【确定】按钮。(7) 选择【表】│【属性】命令,打开【工作区属性】对话框。在【索引顺序】下拉菜单中选择“成绩:Sy2”,单击【确定】按钮。4.4.4表记录的查找VisualFoxPro提供了两种查找记录的方法:一种是顺序查找法;另一种是利用索引文件查找,简称索引查找法。1.顺序查找命令命令格式:LOCATE[<范围>][FOR<条件1>][WHILE<条件2>]命令功能:在指定范围内,按照记录顺序查找满足条件的第一条记录。若找到,则记录指针指向该记录,置FOUND()函数为.T.,并停止查找;若未找到,则置FOUND()函数为.F.,也停止查找。当<范围>为NEXTn时,指针指向范围内最后一条记录;当<范围>为ALL时,指针指向表文件末尾,即最大记录号加1,并置为EOF()为.T.。缺省<范围>选项时默认为ALL。4.4.4表记录的查找例4.22在“学生”表中,查找英语专业的学生。USE学生LOCATEFOR专业="英语"BROWSE浏览窗口显示结果。指针定位于第一个专业为“英语”的记录。4.4.4表记录的查找2.继续查找命令LOCATE命令在找到第一个满足条件的记录后,就停止查找,如想继续查找满足条件的记录可使用CONTINUE命令。命令格式:CONTINUE命令功能:用于LOCATE命令后,在剩下的范围内继续顺序查找满足条件的记录。3.索引查找命令当数据表设置了主控索引后,其记录的顺序为逻辑顺序。我们可根据索引关键字进行查找,从而加快查找速度。命令格式:SEEK<表达式>命令功能:根据主控索引,查找与命令中<表达式>值相匹配的记录。如果查找成功,指针指向逻辑顺序中第一条满足条件的记录,并置FOUND()为.T.,EOF().为F.,RECNO()为该记录号;若查找失败,则记录指针指向表文件末尾,FOUND()为.F.,EOF()为.T.,RECNO()为表记录数加1。当主控索引的关键字是字符型时,命令中的表达式可以是该关键字值的全部,也可以是从它左边开始的一部分。当主控索引的关键字是数值型时,表达式必须等于关键字数值。4.4.4表记录的查找例4.23对“学生”表,查找姓李的学生。USE学生INDEXON姓名

TAGXMSEEK"李"DISPLAY显示结果如下:4.5表中数值参数的统计VisualFoxPro系统提供了多条对数值型字段进行统计的命令。4.5.1统计记录个数命令4.5.2求和命令4.5.3求平均值命令4.5.4分类求和命令4.5.1统计记录个数命令命令格式:COUNT[<范围>][FOR<条件1>][WHILE<条件2>][TO<内存变量名>]命令功能:对当前打开的表文件,统计<范围>内符合给定条件的记录个数。若有[TO<内存变量名>]选项,则将统计结果存入指定内存变量,否则只在屏幕上显示统计结果。缺省[<范围>]可选项时默认为ALL。例4.24统计“学生”表中,年龄在20岁及以上的人数。COUNTFORyear(DATE())-year(出生日期)>=20toa?a显示结果:64.5.2求和命令命令格式:SUM[<表达式清单>][<范围>][FOR<条件1>][WHILE<条件2>][TO<内存变量名>|TOARRAY<数组名>]命令功能:对当前打开的表文件中满足条件的记录进行纵向求和。若命令中缺省[<表达式清单>]可选项时,表示对表文件中所有数值型字段求和;若缺省[<范围>]可选项,默认为ALL;若命令中含有[TO<内存变量名>]可选项,则将求和结果存入对应的内存变量中;如果命令中含有[TOARRAY<数组名>]可选项,则将求和结果存入指定数组中,若数组不存在,系统会自动建立,若数组过小,系统会自动扩大数组。

4.5.3求平均值命令命令格式:AVERAGE[<表达式清单>][<范围>][FOR<条件1>][WHILE<条件2>][TO<内存变量名>|TOARRAY<数组名>]命令功能:对当前打开的表文件满足条件的记录进行纵向求平均。该命令对可选项的规定与SUM相同。例4.25统计出“成绩”表中计算机,英语,高等数学三门课程的总分及平均分,将三门课程的总分分别存入jsj、yy和gs三个内存变量中,平均分分别存入pjsj、pyy和pgs三个内存变量中。USE成绩SUM计算机,英语,高等数学

tojsj,yy,gs

AVERAGE计算机,英语,高等数学topjsj,pyy,pgs?jsj,yy,gs,pjsj,pyy,pgs显示结果为:1104.001121.001100.0092.0093.4291.67

4.5.4分类求和命令命令格式:TOTALON<关键字段>]TO<目的表文件名>[FIELDS<字段名清单>][<范围>][FOR<条件1>][WHILE<条件2>]命令功能:对当前打开的表文件满足条件的记录进行分类求和。执行该命令时,要求当前打开的表文件必须是已经按此命令中的“关键字段”进行了排序或索引。命令中的<字段名清单>项列出了需分类求和的字段名,它们必须是数值型字段。若命令中缺省此项,则对打开的表文件中的所有数值型字段分类求和。未求和的字段,生成的记录字段值等于具有相同关键字记录中的第一条记录的字段值;在求和字段上生成记录的字段值等于分类求和的结果。若某个字段的求和结果超过了该字段的宽度,则系统会截去一部分小数或采用科学计数法。如果还不够宽度,则以一串“*”号填满该字段。当缺省[<范围>]项时,系统默认为ALL。4.5.4分类求和命令例4.26对“学生”表,按班级统计出入学成绩总分数,并将结果存入“入学成绩汇总”表中。USE学生INDEXON班级编号

TAGSY5TOTALON班级编号

to入学成绩汇总

FIELDS入学成绩USE入学成绩汇总LIST班级编号,入学成绩显示结果为:记录号

班级编号

入学成绩1 01 24092 02 23963 03 24184.6文件操作命令本节介绍有关文件操作的命令,如文件的复制、删除、重命名等。4.6.1文件的复制命令4.6.2文件管理操作命令4.6.1文件的复制命令把一个文件的的全部或部分拷贝到一个新文件中叫文件的复制,文件的复制由COPY命令实现。根据需要,VisualFoxPro提供了多种形式的COPY命令。1.文件的复制(1) 复制各类文件命令命令格式:COPYFILE<源文件名>TO<目的文件名>命令功能:将源文件完整地复制到目的文件。在使用本命令时应注意以下几点:①

源文件名和目的文件名必须带上扩展名。②

被复制的源文件不能处于打开状态。③

若源文件是一个含有备注字段和结构化复合索引文件的表文件,在文件复制时,应分别进行复制。4.6.1文件的复制命令例4.27把“学生”表文件复制到名为“新学生1”的新表文件中COPYFILE学生.DBFTO新学生1.DBFCOPYFILE学生.FPTTO新学生1.FPTCOPYFILE学生.CDXTO新学生1.CDX(2) 复制数据表文件命令从打开的表文件中将部分记录或部分字段复制成一个新的表文件。命令格式:COPYTO<目的表文件名>[FIELDS<字段名清单>][<范围>][FOR<条件1>][WHILE<条件2>]命令功能:把源表文件中指定范围内满足条件的记录复制到目的表文件。若缺省[FIELDS<字段名清单>]则表示复制源表文件中的全部字段,否则只复制

温馨提示

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

评论

0/150

提交评论