1 / 53

13.1 数据库和表的建立

第十三 章数据库操作. 13.1 数据库和表的建立. 1. 数据库和表 在 VFP 中,数据以表的形式存储,表的每一列称为一个字段,每一行称为一条记录。. 表 13-1 gz.dbf 编号 姓名 基本工资 工龄工资 扣除 实发工资 101 刘安 1520.00 532.00 545.00 1507.00 102 陈林 1426.00 524.00 530.50 1420.50

melia
Download Presentation

13.1 数据库和表的建立

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十三 章数据库操作 13.1 数据库和表的建立 1. 数据库和表 在VFP中,数据以表的形式存储,表的每一列称为一个字段,每一行称为一条记录。 表 13-1 gz.dbf 编号 姓名 基本工资 工龄工资 扣除 实发工资 101 刘安 1520.00 532.00 545.00 1507.00 102 陈林 1426.00 524.00 530.50 1420.50 103 赵刚 1388.00 525.00 540.50 1373.50 201 刘达 1388.00 515.00 533.00 1370.00 202 陆海 1476.00 512.00 522.50 1466.50 203 李万 1698.00 527.00 560.00 1665.00

  2. 表:包含在某一数据库中的表称为数据库表,否则称为自由表。表:包含在某一数据库中的表称为数据库表,否则称为自由表。 数据库:数据库中包含了关于表、索引、关系、触发器等相关信息。 注意: (1)数据库表和自由表可以相互转换,自由表加入到某一数据库中便称该自由表为数据库表(失去原有的自由特性,并受到数据库的制约而获得新的特性)。 (2)单独使用表,可以为用户存储和查看信息提供很多帮助,但是如果把若干表组织到一个数据库中,用户就可以充分利用VFP提供的强大功能(存储一系列的表或视图;设置属性和数据验证规则;在表间建立关系等)使相关联的表协同工作。

  3. 2. 表结构设计 • 要创建表,首先需要决定新表的结构,即: • 表中包含什么类型的数据。 • 表中包含那些字段,每一字段的类型是什么(如果需要的话,还有长度)。 • 哪些字段可以接受空值。 • 是否使用约束,如果要用的话,在哪里用。 • 需要什么类型的索引,哪些字段应该作为主键和外键 决定了表的结构以后,就可以创建表。

  4. 字段属性: 字段个数以及各个字段的名字、类型、宽度等属性。 字段名:在VFP中,字段名必须是以汉字或字母开头,由字母、汉字、数字或下划线组成的字符串,最大长度为10个字节 。 字段类型:VFP系统提供了13种字段类型:字符型、数值型、浮点型、日期型、日期时间型、双精度型、整型、逻辑型、货币型、备注型、通用型、二进制字符型、二进制备注型。不同类型的数据在存储器中的存储方法不同,对其所能进行的运算也不同。但同一字段只能存放同一类型的数据。 字段宽度:是指某个字段中的内容可能取值的最大宽度。从而也决定了该字段的取值范围。 小数位数:如果一个字段的类型为数值型或浮点型,则该字段还有小数位,小数位的宽度不能超过相应字段的宽度。

  5. 基本数据类型: ⑴字符型(Character) 用于存放从键盘输入的可以显示或打印的字母、数字、汉字或标点符号等,长度不超过254个字节。这是最常使用的一种数据类型。 ⑵数值型(Numeric) 用于存放由数字、小数点、正负号组成的能参加数值运算的数据。字段长度介于1~20个字节之间,精度为16位。 ⑶浮点型(Float) 与数值型字段类似,浮点型字段用以存放能参加数值运算的浮点型数据,最大宽度也为20个字节,通常用于科学计算。由于浮点型字段和整型字段的内部结构不同,所以在进行运算时,它们的运算速度不同。

  6. ⑷日期型(Date) 用于存放日期型数据,在VFP中其默认格式为mm/dd/yyyy。也可设置为其它格式,如yyyy/mm/dd或dd/mm/yyyy,其中yyyy的取值范围是0000~9999,mm的范围是01~12,dd 的范围视月份而定。 ⑸日期时间型(Date Time) 日期时间型数据用于存放日期和时间,存储格式为:yyyy/mm/dd hh:mm:ss Am/Pm,其中yyyy/mm/dd的含义同日期型;hh:mm:ss 表示时间,hh表示小时(两个字节),mm表示分钟(两个字节),ss表示秒(两个字节),Am表示上午,Pm表示下午。

  7. ⑹逻辑型(Logical) 用于存放逻辑值,逻辑“真”用.T.或.Y.来表示,逻辑“假”用.F.或.N.来表示。 ⑺整型(Integer) 用于存放整数,占4个字节。 ⑻双精度型(Double) 可以提供更高的数据精度,占8个字节 ⑼货币型(Currency) 货币型数据是数值型的货币值,占8个字节,最多允许4位小数。

  8. ⑽备注型(Memory) 备注型字段的宽度为4个字节,但这4个字节并不存放真正的数据,而存放一个指向真正数据的指针。 ⑾通用型(General) 通用型字段一般用于存放OLE对象,具体内容可以是电子表格、文档、图片等。通用型字段与备注型字段类似,宽度为4个字节,但这4个字节并不存放真正的数据,而存放一个指向真正数据的指针。 ⑿二进制字符型数据(Character Binary) 二进制字符型数据和字符型数据的使用方法类似,只不过是以二进制方式将字符存储在文件中,最多可以存放254个字符。 ⒀二进制备注型数据(Memo Binary) 二进制备注型数据和备注型数据的使用方法类似,只不过以二进制方式将备注信息存储在备注文件中。

  9. 表 13-2 工资表数据库文件结构 字段名 字段类型 字段宽度 小数位 编号 C 4 姓名 C 8 基本工资 N 7 2 工龄工资 N 6 2 扣除 N 6 2 实发工资 N 7 2 根据以上要求,我们为“GZ”表设计表结构:

  10. 3. 自由表的创建与基本操作 自由表创建的三种方式:菜单方式、命令方式、项目管理器。 菜单方式创建自由表: ①单击“文件”,选择“新建”。 ②在“文件类型”中选择“表”,单击“新建文件”按钮,单击“新建表”按钮,系统弹出“创建”对话框,选择保存文件夹,输入所要创建的表的文件名。 ③系统打开“表设计器”窗口。 ④在“表设计器”窗口中定义表的结构。

  11. 字段属性的定义: 1)输入字段名:在“字段名”一栏里输入字段名。 2)选择字段类型:在“类型”列通过下拉列表框来选择字段的类型。 3)定义字段宽度:如果字段类型为日期型或者逻辑型、备注型、通用型,系统为该字段定义默认宽度,否则光标自动跳到“宽度”列,等待输入字段的宽度。 4)定义小数位数:如果字段类型为数值型或者为浮点型,还要确定字段的小数位数。 5)重复1)~4)步的设置,直到输完设计的所有字段

  12. ⑤确认输入无误后,单击“确定”按钮,出现“输入确认”对话框。如果现在要输入数据,单击“是(Y)”按钮。若不想输入,单击“否(N)”⑤确认输入无误后,单击“确定”按钮,出现“输入确认”对话框。如果现在要输入数据,单击“是(Y)”按钮。若不想输入,单击“否(N)” 录入完毕,按“Ctrl+W”命令(或单击窗口关闭按钮)存盘并返回命令窗口。

  13. 通过命令方式创建自由表 通过在命令窗口中使用CREATE命令来建立一个新的表结构。 命令格式:CREATE [文件名] 命令功能:创建一个新表,并将该文件存入磁盘。若缺省扩展名,系统默认为.DBF。 要通过命令方式建立工资表(GZ.DBF),过程如下。 ①在命令窗口里输入如下命令:CREATE F:\GZ.DBF(如图13.7)。 ②执行该命令后,屏幕上弹出“表设计器”窗口。输入表结构,其余步骤同前。

  14. 记录的编辑修改 ⑴查看表内容 : 查看表内容的最直接方法是使用“浏览”窗口。 ⑵添加新记录 : 若在表中快速加入新记录,可以将“浏览”窗口设置为“追加”方式(方法是单击“显示”,选择“追加方式”)。 ⑶编辑字段 : ⑷删除记录: 在VFP中,删除表中的记录需要两个步骤:逻辑删除、物理删除。

  15. 4. 创建数据库文件 把若干表组织到一个数据库中,可以存储一系列的表或视图,设置属性和数据验证规则,在表间建立关系,使相关联的表协同工作等。 建立数据库的过程如下: ①单击“文件”,选择“新建”,在“新建”对话框中选择“数据库”选项,单击“新建文件”按纽。 ②在“创建”对话框中,输入数据库文件的路径和名称单击“保存”按纽 ③弹出“数据库设计器”窗口。同时“数据库”菜新建表单项也自动增加到系统菜单中。

  16. 代码表 学生情况表文件结构 学习成绩表 字段名 字段名 字段 XH XM XH XM KM DM XB CJ CSRQ RXRQ XDM ZZMM JL 含义 字段含义 字段含义 学号 学号 系名 姓名 科目 代码 性别 成绩 出生日期 入学日期 系代码 政治面貌 简历 类型 数据类型 数据类型 字符 字符型 字符型 字符 字符型 字符型 字符 数值型 日期 日期 字符 字符 备注 宽度 总宽 宽度 5 5 20 10 3 20 2 4,1 8 8 3 4 4 现在我们创建一个新的与数据库无关联的“学生情况”表和两个数据库表。

  17. 将 自由表“学生情况”表加入到数据库中: ①单击“数据库设计器”工具栏中的“添加表”按钮,在“打开”对话框中选择建好的“学生情况”表,单击“确定”命令按钮关闭对话框。 创建数据库表: ①单击“数据库设计器”工具栏中的“新建表”按钮,在“新建表”对话框中单击“新建表”按钮,在“创建”对话框输入表名“学习成绩”,单击“保存”。 ② 弹出“表设计器”窗口,按照表13-4中列出的内容,输入“学习成绩”表的字段名、类型、宽度,输入完成后,单击“确定”命令按钮。 ③按照同样的步骤,输入表 “系代码”的内容。

  18. 表13-6字段标题 字段 Xh Xm Xb Csrq Rxrq Xdm Zzmm Jl 标题 学号 姓名 性别 出生日期 入学日期 系代码 政治面貌 简历 5. 使用数据库表的新功能 和自由表的“表设计器”相比,数据库表的“表设计器”增加了许多新属性,这些属性会作为数据库的一部分保存起来,并且一直为数据库表所拥有,直到表从这个数据库中移去为止。 为字段设置新的显示标题 在“数据库设计器”中选定“学生情况”表,选择工具栏中的“修改表”命令按钮。在“表设计器”中选定需要指定标题的字段,在“标题”框中,输入为字段选定的标题。

  19. 为字段设置默认值 为“XB”字段设置一个默认值“男”。 在表设计器中,选定“XB”字段, 在“默认值”文本框中输入“男” (必须带引号) 设置字段验证规则 在表设计器中选择“XB”字段为当前字段。 在“规则”文本框中输入:XB = “男”.or. XB = “女”, 在“信息”文本框中输入:"性别必须为男或女" 设置记录验证规则 记录验证规则和字段验证规则不同:字段验证是对某一字段的输入信息进行合法性进行判断。而记录验证强调的是字段之间必须满足一定的关系。 在打开的“学生情况”表的表设计器中,选择“表”选项卡,在“规则”框中,输入如下一行代码:RXRQ >=CSRQ 在“信息”框中输入说明信息"入学日期或出生日期输入错误。"

  20. 建立索引文件 ①打开“学生情况”表。 ②选择菜单“显示/表设计器”,打开“表设计器”对话框。 ③在“字段”选项卡中,将光标移至“XH”字段,用鼠标单击“索引”下的下拉列表框,选择“升序”或“降序”项。 ④再将光标移至“RXRQ”字段,重复以上操作。 ⑤在“索引”选项卡中,可以看到已建立的两个索引,通过“索引”选项卡,将“XH”的索引类型改为“主索引”。 ⑥将光标移至“索引名”下的空框内,输入“RXNL”(入学年龄),在“表达式”下的空框内输入YEAR(RXRQ)-YEAR(SCRQ),其中YEAR()函数用于计算出生年份和入学年份。 ⑦按“确定”按钮退出“表设计器”对话框。

  21. 13.2数据库与表的打开和关闭 1.数据库的打开与关闭 数据库的打开 命令格式:OPEN DATABASE [数据库名] 命令功能:打开指定的数据库文件。 OPEN DATABASE F:\DBF\STUDENT 数据库的关闭 命令格式:CLOSE DATABASE 命令功能:关闭当前打开的数据库文件,同时关闭这个数据库中已经打开的各种文件。

  22. 2.表文件的打开与关闭 命令格式:USE [表文件名] 命令功能:若指定“表文件名”,此命令打开相应的表文件,否则,此命令将关闭当前打开的表文件。 例13.2 USE GZ &&打开表文件 …… &&进行表操作 USE &&关闭当前打开的表文件

  23. 13.3记录的增改删 增加记录:是指在指定表中追加或者插入若干条记录。 删除记录:是指从表中删掉某些记录。 修改记录:是指对某些记录的指定的属性进行相应的修改。 1.记录指针 指针:是一个数值,代表当前所指记录的记录号。 当前记录:指针所指向的记录为当前记录。 注意:对表的许多操作都是以当前记录为基准,系统为用户提供了改变当前记录的操作,完成这个操作可使用指针移动命令,也可使用系统菜单。

  24. 指针的绝对移动命令:GO 命令格式:GO/GOTO [RECORD] N 命令功能:将记录指针指向第N个记录,使第N个记录为当前记录。 命令格式:GO/GOTO TOP 命令功能:将表文件的第一个记录作为当前记录。 命令格式:GO/GOTO BOTTOM 命令功能:将表文件的最末一个记录作为当前记录。

  25. 指针的相对移动命令:SKIP 命令格式:SKIP [±数字表达式] 命令功能:使指针从当前位置沿着记录排列顺序作相对移动,移动的记录个数等于数字表达式的值。 移动方向由“±”号决定。“+”表示向尾部方向移动(+可缺省),“-”表示向首部方向移动,当缺省数字表达式时,相当于SKIP +1。

  26. 2. 记录的输入 对于一个表文件,可以在建立表文件结构结束之后,立即向表文件中输入记录。也可以在以后通过输入命令来完成。 两种向表文件中输入记录的方式:表尾部追加记录;表中插入记录。 尾部追加记录 命令格式:APPEND [BLANK] 命令功能:在当前表文件的末尾添加一组记录。 说明: 若有BLANK可选项,只在当前表文件的末尾添加一条空白记录, 缺省时(无BLANK可选项)表示在当前表文件的末尾添加记录,并进入全屏幕编辑状态,直接从键盘录入记录的数据。

  27. 插入记录 插入记录是指在表文件的记录中间插入新的记录。 命令格式:INSERT [BEFORE][BLANK] 命令功能:在当前表文件中指定的位置插入一组记录,每插入一条记录,下面的各记录依次下移,记录号顺序增加1。 说 明: BEFORE可选项表示在当前记录前插入,缺省时则表示在当前记录的后面插入插入。BLANK可选项表示在指定的位置插入一条空记录。

  28. 3. 记录的修改 为了便于修改表中的内容,系统提供了4条基本的记录修改命令:BROWSE、CHANGE、EDIT和REPLACE。 BROWSE命令 BROWSE命令是一个功能强大的命令,它不仅具有很好的浏览功能,同时也可以修改记录数据,还可以向表文件中追加记录,而且还能删除表文件中的记录。 命令格式: BROWSE [范围] [FIELDS 字段名表] [FOR(条件表达式)] [PARTITION 数值表达式][NOAPPEND][NODELETE][LOCK 数值表达式][NOLINK] [NOEDIT]

  29. 可选项含义: [范围]:显示修改指定范围的记录,有四种选择: ALL 表示文件的全部记录 RECORD 〈表达式〉/N N表示序号为N的记录,表达式值为正整数。 NEXT N 表示从当前记录算起的N个记录。 REST 表示从当前记录到最后一条记录。 [FIELDS 字段名表]:显示修改记录的指定字段。 [FOR(条件表达式)]:选择满足条件的记录。

  30. [PARTITION 数值表达式]:将Browse窗口分割成左右两个窗口,用“数值表达式”指定分割线在Browse窗口中所在的列。 [NOAPPEND]:禁止用Ctrl+N追加新记录。 [NODELETE]:禁止用Ctrl+T删除记录。 [LOCK 数值表达式]:在左分区窗口中锁定“数值表达式”值个的字段数。 [NOLINK]:清除两个分区的关联,使各自的记录独立,一个分区的内容滚动时,另一分区的内容保持不变。 [NOEDIT]:禁止修改记录的数据。

  31. CHANGE 和 EDIT命令 CHANGE命令和EDIT命令主要是用于记录的编辑和修改,这两个命令在命令格式、命令功能以及使用方法上基本相同。 CHANGE命令是以垂直方向显示记录,每个字段占一行,一个记录占用编辑窗口的行数取决于字段个数。如果一个记录未占满编辑窗口,空余部分继续显示下一个记录

  32. CHANGE 和 EDIT命令 CHANGE命令和EDIT命令主要是用于记录的编辑和修改,这两个命令在命令格式、命令功能以及使用方法上基本相同。 CHANGE命令是以垂直方向显示记录,每个字段占一行,一个记录占用编辑窗口的行数取决于字段个数。如果一个记录未占满编辑窗口,空余部分继续显示下一个记录

  33. REPLACE命令 命令格式: REPLACE <字段名1> WITH <表达式1>[ADDITIVE][,<字段名2> WITH <表达式2>[ADDITIVE]…][<范围>][FOR<条件表达式>] 命令功能: 此命令是在指定的范围内,将满足条件的记录的指定字段内容用对应的表达式的值替换。 注意: 若选取ADDITIVE项,则将替换内容追加到备注字段中原有内容后,否则用替换内容覆盖备注型字段中原有的内容。当命令中省略“范围”和“FOR<条件表达式>”两个可选项时,REPLACE仅对当前记录起作用。

  34. 4. 记录的删除 要删除记录,一般先须给待删除的记录加上删除标记(逻辑删除);然后再将这些记录从表文件中删掉(物理删除)。 逻辑删除 命令格式:DELETE [范围] [FOR/WHILE(条件表达式)] 命令功能:在当前表文件中,给指定范围内满足条件的记录加上删除标记。 注意: DELETE命令执行后,系统并未真正地把记录从表文件中删去,仅是在记录号与第一个字段之间加了一个星号“*”。所以被删除的记录在需要时还可以用恢复命令“RECALL”进行恢复。

  35. 物理删除记录 物理删除记录是系统提供的另一种删除方式,用此命令删除的记录将从数据库中永远消失,且不可恢复。 命令格式:PACK 命令功能:删除当前表文件中所有带有删除标记的记录,并且重新调整数据记录号。 取消删除标记(记录恢复) 命令格式:RECALL [范围][FOR/WHILE(表达式)] 命令功能:用以取消由DELETE命令加在数据记录上的删除标记,使这些记录变成正常的记录。命令格式中的[范围]、(表达式)的含义和用法都与DELETE中的相同,即:只恢复带删除标记记录中满足条件的记录。 注意: RECALL命令不能恢复那些已用PACK或ZAP命令从表文件中删去的记录。

  36. 删除所有记录 命令格式:ZAP 命令功能:ZAP命令用来删除当前表文件中所有记录。 注意: 无论表文件中的记录是否带有删除标记,使用该命令后,表文件中的所有记录均会被删除,因此在删除之前需用户进一步确认。此命令执行后,当前表文件只剩下一个空的表结构。

  37. 13.4 记录的显示 对于已经建立的表文件,根据需要可以随时查看其中的数据。系统提供了两个常用的数据显示命令。 命令格式: LIST [OFF][范围][FIELDS 字段名表][FOR/WHILE(条件表达式)][TO PRINTER/ 文件名] 或 DISP[OFF][范围][FIELDS 字段名表][FOR/WHILE(条件表达式)][TO PRINTER/文件名] 命令功能:显示当前表中的记录。 LIST命令和DISPLAY命令的区别: LIST命令显示结果是滚屏显示。而DISPLAY命令是分屏显示,当缺省“范围”和条件时,LIST命令显示所有的记录,而 DISPLAY 命令只显示当前记录。

  38. 13.5修改表结构 对于已经建立的表文件,随着时间的推移,表结构可能发生变化,这时就需要进行表结构修改。 命令格式:MODIFY STRUCTURE 命令功能:修改当前表文件的结构。 对表结构进行的几种修改: ⑴调整字段次序:利用拖曳鼠标可以调整字段的排列次序。 ⑵添加新字段:单击“插入”按钮,设置新字段的字段名、字段类型、宽度等。 ⑶删除旧字段:选中所要删除的字段,单击“删除”按钮。 ⑷更改字段属性:把光标移到待修改处, 进行改动。

  39. 13.6表文件的排序和检索 表文件的排序 表文件的排序就是将一组记录按照用户指定的“关键字段”的值以递增或递减的次序重新排列,排序后产生一个新的表文件。 命令格式: SORT TO 新文件名 ON 字段名1 [/A] [/D] [,字段名2[/A] [/D]……] [FIELDS 字段名表][范围][FOR (表达式)] 命令功能: 把当前表文件中的记录按指定字段的值重新排序,生成一个新的表文件,原表文件不变。

  40. 表文件的索引 索引文件 索引文件是一些按关键字表达式值从小到大的顺序排列的逻辑指针的集合。索引文件的名称由用户给出,系统会自动加上扩展名.IDX。 索引文件记录了按顺序排列的关键字段的内容及其在原始表文件中所对应的记录序号。而且索引文件并不改变原来文件中记录的物理顺序。 当表文件按其索引文件打开时,则表文件记录按索引文件顺序展现给用户,记录在索引文件中的顺序称为记录的逻辑顺序。指针移动按记录的逻辑顺序进行。当无索引文件打开时,记录的逻辑顺序等于其物理顺序。

  41. 索引文件的建立 命令格式: INDEX ON 关键字表达式 TO 索引文件名 [FOR(条件表达式)] 关键字表达式:可以是一个字段,也可以是包含一个或多个字段的表达式。 索引文件的打开 由于索引文件是依赖表文件而存在的,所以索引文件不能单独使用。索引文件要起作用,必须处于打开状态。 打开索引文件有两种基本方法:一是在打开表文件的同时打开索引文件,二是使用打开命令打开已经建立的索引文件。 命令格式1:USE 文件名 INDEX 索引文件名 [,…,索引文件名] 命令格式2: SET INDEX TO 索引文件名 [,…,索引文件名]

  42. 索引文件的关闭 索引文件使用完毕,一般应将其关闭。关闭索引文件有下面几种命令: ⑴SET INDEX TO  关闭当前表文件打开的所有索引文件。 ⑵CLOSE INDEX 功能同⑴。 ⑶CLOSE DATABASE 闭所有数据库文件,同时关闭所有数据库打开的所有文件(包括表文件的索引文件)。 ⑷USE 关闭当前表文件,同时关闭该表文件打开的所有索引文件。 命令格式:REINDEX 命令功能:REINDEX命令用于重新建立打开的索引文件。

  43. 索引文件的重建 当用户使用APPEND、 EDIT,REPLACE和BROWSE等命令对同时打开索引文件的表文件进行修改时,所有打开的索引文件也将随之自动修改。但是未打开的索引文件不能随之自动修改,用户应对索引文件进行重建。 命令格式:REINDEX 命令功能:REINDEX命令用于重新建立打开的索引文件。

  44. 表记录的查询 快速查询 快速查询是指索引查询,即在打开相应的索引文件的情况下,迅速地查找到满足条件的记录。快速查询的命令有FIND和SEEK。 FIND命令: 命令格式:FIND 字符串/ FIND 数值 命令功能:FIND命令用于快速地对一个已经索引过的表文件进行查找,此命令执行后,记录指针将指向指定字符串或数值(索引项是数值字段时)与关键字值相等的第一个记录。 注意: 如果以内存变量作为FIND命令参数,这时“字符串”是内存变量,则变量应与&函数(宏替换)连用,即FIND &字符串。

  45. SEEK 命令: 命令格式:SEEK 表达式 命令功能:是在已索引的表文件中检索其关键字与指定表达式相符的第一个记录。 注意: 如果表达式是一字符串,它必须包括在单引号、双引号或方括号中。如果表达式为内存变量或一数值表达式,不必用&函数,可以直接使用。 顺序查询 顺序查询是指对表文件从头至尾顺次找出满足条件的记录,并将记录指针定位到相应的记录上。 命令格式:LOCATE [范围] [ FOR(条件表达式) ] 命令功能:对表文件进行顺序查找并定位于满足条件的第一个记录。如需继续查找满足条件的下一个记录,可以通过使用CONTINUE命令来完成。

  46. 13.7 数据统计和汇总 记录个数统计 命令格式:COUNT [范围] [FOR/WHILE(表达式) ] [TO 内存变量名] 命令功能:在当前表文件中,统计指定范围内的满足“表达式”指定条件的记录个数。 求和统计 根据二维表格的结构,可按两个方向求和,即:行求和、列求和。 ⑴行求和 当需要对同一记录中若干数值字段求和时,可利用REPLACE命令实现。

  47. ⑵列求和 命令格式:SUM [字段名表][TO 内存变量名表][范围][FOR/WHILE(表达式)] 命令功能:在当前表文件中指定的范围内,对满足条件表达式的记录中指定字段内容进行求和。  统计平均值 命令格式:AVERAGE [字段名表] [范围] [FOR/WHILE(表达式)] [TO 内存变量名表] 命令功能:在当前表文件所规定的范围内,求满足条件的记录中指定字段的平均值。并可将平均值存入内存变量中。

  48. 13.8 多表文件操作 选择工作区 工作区的基本概念 工作区也叫内存工作区,是指存储表文件的内存区。在一个工作区,可以打开一个表文件及有关其它文件,如备注文件、索引文件等。并且每个工作区都拥有自己独立的记录指针。在VFP中最多可以有32767个工作区。

  49. 当前工作区与非当前工作区: 计算机进行操作的表文件所在的工作区中称为当前工作区,在当前工作区打开的表文件称为当前表文件。而别的工作区称为非当前工作区,在这些工作区打开的文件称为非当前文件。 工作区号与别名: 每个工作区都有工作区号,工作区号为1~32767,其中1号工作区为默认工作区。 除工作区号外,工作区还有自己的别名,别名可以是系统别名(系统为每个工作区规定的固定别名)也可以是用户别名(用户为每个工作区定义的别名)。 1~10号工作区的系统别名是:A、B、C、D、E、F、G、H、I、J。对于11~32767号工作区,其对应的系统别名是:W11~W32767。

  50. 用户在某个工作区打开一个表文件时,将同时为此工作区建立一个用户别名。用户在某个工作区打开一个表文件时,将同时为此工作区建立一个用户别名。 定义用户别名的命令如下: 命令格式:USE 表文件名 [ALIAS 别名] 命令功能:打开表文件,并为该文件起一个别名。 工作区的选择 用户在任何时候都可用SELECT命令选择某一工作区为当前工作区。 命令格式:SELECT<工作区号>/<别名> 命令功能:把由工作区号或别名指定的工作区转变为当前工作区。 注意: ⑴此命令允许选用“0”号。如果指定“0”号,则表示选用当前未使用过的编号最小的工作区作为当前工作区。 ⑵在每个工作区内只能同时打开一个表文件及其相关文件。一个表文件不能同时在多个工作区打开。

More Related