第 4 章 表的基本操作
DESCRIPTION
第 4 章 表的基本操作. 4-1 表记录的定位操作 68 4-2 删除和恢复表中的记录 71 4-3 统计操作 77 4-4 索引的创建和使用 79 4-5 排序 86 4-6 多重工作区的使用 87. 4-1 表记录的定位操作. 4-1-1 记录指针 68 4-1-2 记录指针的移动范围 68 4-1-3 移动记录指针 68. 4-1 表记录的定位操作. 4-1-1 记录指针 68 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/1.jpg)
1
第第 44 章章 表的基本操作表的基本操作 第第 44 章章 表的基本操作表的基本操作
4-1 表记录的定位操作 68
4-2 删除和恢复表中的记录 71
4-3 统计操作 77
4-4 索引的创建和使用 79
4-5 排序 86
4-6 多重工作区的使用 87
![Page 2: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/2.jpg)
2
4-1 4-1 表记录的定位操作表记录的定位操作4-1 4-1 表记录的定位操作表记录的定位操作
4-1-1 记录指针 68
4-1-2 记录指针的移动范围 68
4-1-3 移动记录指针 68
![Page 3: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/3.jpg)
3
4-1 4-1 表记录的定位操作表记录的定位操作4-1 4-1 表记录的定位操作表记录的定位操作4-1-1 记录指针 68
当向表中输入记录时,系统会按照记录的输入次序自动为每条记录加上记录号。每打开一个表文件,都有一个用来指示记录号的指针,称为记录指针。记录指针指向的记录就叫当前记录。系统只允许对当前记录进行各种操作。当前记录并不固定在某条记录上,它随着命令的执行而改变。
![Page 4: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/4.jpg)
4
• 表文件刚被打开时,记录指针总是指向第一条记录,即当前记录为第一条记录。而在 LIST 命令执行后,记录指针指向最后一条记录的下一条记录,即尾标记。
![Page 5: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/5.jpg)
5
4-1-2 记录指针的移动范围 68
![Page 6: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/6.jpg)
6
• 4-1-3 移动记录指针68
• 方法一:用菜单方式移动记录指针 • 方法二:用命令方式移动记录指针
![Page 7: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/7.jpg)
7
方法一方法一方法一方法一【例 4.1 】打开“学生情况表”,分别移动指针到最
后一条记录、第 6 条记录、表中性别为“女”的第一条记录上。
![Page 8: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/8.jpg)
8
方法二方法二方法二方法二 1 .绝对定位移动 命令格式:GO/GOTO < 数值表达式 >/TOP/BOTTOM功能:把指针定位在指定的记录。
![Page 9: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/9.jpg)
9
【例 4.2 】打开“学生情况表”文件,用命令方式定位并显示表的最后一条记录、第 6 条记录的“学号”、“姓名”、“出生日期”和“籍贯”字段。
![Page 10: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/10.jpg)
10
方法二方法二方法二方法二2 .相对定位移动命令格式:SKIP [±< 数值表达式 >]功能:将当前记录指针从当前记录位置向
后(取“ +” ,或不取符号)或向前(取“ -” )移动若干条记录位置。若干条记录等于 < 数值表达式 > 的值。
![Page 11: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/11.jpg)
11
【例 4.3 】打开“学生情况表”文件,先把指针定位到第 5 条记录,然后再向下移动 2 条记录,最后再把指针从当前记录位置向上移动 4 条记录。
![Page 12: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/12.jpg)
12
方法二方法二方法二方法二3 .按条件定位移动命令格式:LOCATE [< 范围 >] FOR /WHILE < 条件 >功能:在打开的数据表中,把记录指针定
位到指定范围内且满足条件的第一条记录上。
![Page 13: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/13.jpg)
13
【例 4.4 】打开“学生情况表”文件,把指针定位到表中是女同学的记录上,并显示其姓名和性别字段。
![Page 14: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/14.jpg)
14
4-2 4-2 删除和恢复表中的记录删除和恢复表中的记录4-2 4-2 删除和恢复表中的记录删除和恢复表中的记录
4-2-1 逻辑删除表中的记录 72
4-2-2 恢复记录 74
4-2-3 物理删除表中的记录 75
![Page 15: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/15.jpg)
15
4-2-1 4-2-1 逻辑删除表中的记录逻辑删除表中的记录4-2-1 4-2-1 逻辑删除表中的记录逻辑删除表中的记录• 方法一:用鼠标在浏览窗口中做逻辑删除• 方法二:用菜单方式进行逻辑删除 • 方法三:用命令方式进行逻辑删除
![Page 16: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/16.jpg)
16
方法一方法一方法一方法一【例 4.5 】逻辑删除“学生情况表”中的
第 3 条和第 8 条记录。
![Page 17: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/17.jpg)
17
方法二方法二 方法二方法二 • 【例 4.6 】打开“学生情况表”,对其中
的女同学做逻辑删除。
![Page 18: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/18.jpg)
18
方法三方法三方法三方法三命令格式:DELETE [< 范围 >] [FOR/WHILE < 条件 >] 功能:为当前数据表中指定范围内满足条
件的记录加删除标记。
![Page 19: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/19.jpg)
19
• 【例 4.7 】用命令打开“学生情况表”,对表中的男性且是团员的同学做逻辑删除。
![Page 20: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/20.jpg)
20
4-2-2 4-2-2 恢复记录恢复记录4-2-2 4-2-2 恢复记录恢复记录• 方法一:用鼠标在浏览窗口中取消删除
标记• 方法二:用菜单方式取消删除标记 • 方法三:用命令方式取消逻辑删除标记
![Page 21: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/21.jpg)
21
方法二方法二方法二方法二• 【例 4.8 】【例 4.7 】对“学生情况表”
中的男团员做了逻辑删除,现恢复其中王军同学的记录,然后再恢复所有被逻辑删除的记录。
![Page 22: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/22.jpg)
22
方法三方法三方法三方法三命令格式:RECALL [< 范围 >] [FOR/WHILE < 条件 >]功能:取消当前表中指定范围内满足条件记
录的删除标记,恢复被逻辑删除的记录。
![Page 23: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/23.jpg)
23
• 【例 4.9 】打开“学生情况表”,先逻辑删除 1979 年及其以后出生的同学的记录,再恢复 1980 年出生的同学的记录。
![Page 24: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/24.jpg)
24
4-2-3 4-2-3 物理删除表中的记录物理删除表中的记录4-2-3 4-2-3 物理删除表中的记录物理删除表中的记录 物理删除就是将带有删除标记的记录真
正从表中清除或一次性地删除表中的全部记录,记录不可再恢复。因此,进行物理删除时要特别谨慎。
![Page 25: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/25.jpg)
25
• 方法一:用菜单方式物理删除记录 • 方法二:用命令方式删除带有逻辑删除
标记的记录 • 方法三:用命令方式一次性删除表中的
全部记录
![Page 26: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/26.jpg)
26
方法二方法二方法二方法二• 命令格式: PACK• 功能:将当前数据表中带有逻辑删除标
记的记录从表中的物理位置上真正删除,然后将所剩记录按顺序重新排列编号。
![Page 27: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/27.jpg)
27
• 【例 4.11 】在【例 4.10 】基础上用命令方式对第 9 条和第 10 条记录进行物理删除操作,不再追加被删除的记录。
![Page 28: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/28.jpg)
28
方法三方法三方法三方法三• 命令格式: ZAP• 功能:一次性删除数据表文件中的全部
记录,只保留表文件的结构。
![Page 29: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/29.jpg)
29
• 【例 4.12 】用 ZAP 删除“学生情况表”文件中的全部记录。
![Page 30: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/30.jpg)
30
4-3 4-3 统计操作统计操作4-3 4-3 统计操作统计操作
4-3-1 计数命令 77
4-3-2 求和命令 77
4-3-3 求平均值命令 78
4-3-4 分类汇总命令 78
![Page 31: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/31.jpg)
31
4-3-1 4-3-1 计数命令计数命令4-3-1 4-3-1 计数命令计数命令• 命令格式: COUNT [< 范围 >] [FOR/WH
ILE < 条件 >] [TO < 内存变量 >]• 功能:统计当前数据表中指定范围内、
满足给定条件的记录数。
![Page 32: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/32.jpg)
32
• 【例 4.13 】统计“学生情况表”中女生的人数,并存入内存变量 x 中,显示 x的值。
![Page 33: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/33.jpg)
33
4-3-2 4-3-2 求和命令求和命令4-3-2 4-3-2 求和命令求和命令命令格式: SUM [< 范围 >] [< 字段表达式表 >] [FOR/
WHILE < 条件 >] [TO < 内存变量表 >/ARRAY< 数组名 >]
功能:对当前数据表中指定范围内、满足给定条件的记录根据指定的数值型字段表达式按列累加求和。
![Page 34: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/34.jpg)
34
• 【例 4.14 】统计“课程表”表中所有课程的总学时数,并存入内存变量 y 中。
![Page 35: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/35.jpg)
35
4-3-3 4-3-3 求平均值命令求平均值命令4-3-3 4-3-3 求平均值命令求平均值命令命令格式: AVERAGE [< 范围 >] [< 字段表达式表
>] [FOR/WHILE < 条件 >][TO < 内存变量表 >/ARRAY< 数组名 >]
功能:对当前数据表中指定范围内、满足给定条件的记录,根据指定的数值型字段表达式按列累加求和,再求平均值。
![Page 36: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/36.jpg)
36
• 【例 4.15 】统计“课程表”表中所有课程的平均学时数,并存入内存变量 y 中。
![Page 37: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/37.jpg)
37
4-3-4 4-3-4 分类汇总命令分类汇总命令4-3-4 4-3-4 分类汇总命令分类汇总命令• 分类汇总就是对表中同一类的数据进行统计汇
总,也称分组求和。• 命令格式: TOTAL ON <关键字 > TO < 新表文
件名 > [FIELDS < 字段名表 >] [< 范围 >] [FOR/WHILE < 条件 >]
• 功能:在当前数据表指定范围内和满足条件的记录中,分别对 <关键字 > 值相同的记录的数值型字段值累加求和,并将结果作为新的数据表文件中的相应字段之值。
![Page 38: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/38.jpg)
38
• 【例 4.16 】对“学生选课表”表中的学分和成绩按“学号”进行分类汇总,即求每个学生各门课程的总学分和总成绩,将结果存入一个名为“学分汇总”的数据表文件。
![Page 39: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/39.jpg)
39
4-4 4-4 索引的创建和使用索引的创建和使用4-4 4-4 索引的创建和使用索引的创建和使用
4-4-1 什么是索引 79
4-4-2 索引的类型 80
4-4-3 创建索引 80
4-4-4 索引的使用 83
4-4-5 删除索引 85
![Page 40: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/40.jpg)
40
4-4-1 4-4-1 什么是索引什么是索引4-4-1 4-4-1 什么是索引什么是索引• 索引是进行快速显示、快速查询数据的重
要手段。
• 索引是对数据表而言的,一个表可建立以不同字段为关键字的索引,不同的索引按其作为关键字的字段对记录进行排序(升序或降序)。从而加快对记录的查询、显示、过滤等操作。因此用户可根据对表中记录的处理要求来建立索引。
![Page 41: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/41.jpg)
41
• 索引实际上是一种逻辑排序,也就是说它不改变数据表中数据的物理顺序,而是另外建立一个记录号列表。它类似于书的目录,通过书的目录,读者很容易找到某章节的内容(类似于作为关键字的字段)所在的页码。
![Page 42: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/42.jpg)
42
• 表一旦按索引表达式建立索引后,就产生一个相应的索引文件,其文件名与表同名,但扩展名不同。当表和相关的索引文件被打开,则对表操作时,记录的顺序将按索引表达式的值的逻辑顺序显示和操作。
• 在 VFP 中,可以为一个表建立多个索引,每一个索引确定了一种表记录的逻辑顺序。
![Page 43: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/43.jpg)
43
4-4-2 4-4-2 索引的类型索引的类型4-4-2 4-4-2 索引的类型索引的类型• 在 VFP 中,索引有 4 种类型:主索引、候选索引、普通索引、惟一索引。
![Page 44: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/44.jpg)
44
• 主索引 (Primary Index) :是在指定的索引字段或表达式中不允许出现重复值的索引。主索引主要用于在永久关系中的父表或被引用表里建立参照完整性,它能确保输入字段值的惟一性,并且由该字段决定处理记录的顺序,一个数据库表只能有一个主索引。如果在已经包含了重复数据字段中指定主索引, VFP 将返回出错提示信息。如果表中已经含有一个主索引,那么再建立索引则只能选用候选索引或普通索引了。
![Page 45: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/45.jpg)
45
• 候选索引 (Candidate Index) :候选索引不允许指定的索引表达式在表中有重复值,也就是说它的索引表达式的值是惟一能够标示每个记录处理顺序的值。候选索引功能上与主索引一样,只是一个数据库表或自由表可以有多个候选索引。同主索引一样,如果在包含有重复数据的字段或表达式的表中指定候选索引,VFP 将返回一个出错提示信息。
![Page 46: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/46.jpg)
46
• 普通索引 (Regular Index) :普通索引能决定记录处理顺序,但它允许字段中输入重复值而并不要求数据的惟一性。在每个表中可以建立多个普通索引。
![Page 47: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/47.jpg)
47
• 惟一索引 (Unique Index) :惟一索引是为了保持与以前 FoxPro版本兼容而设立的。它的“惟一性”是索引项的惟一,而不是字段值的惟一。它以指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。在一个表中可以建立多个惟一索引。
![Page 48: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/48.jpg)
48
4-4-3 4-4-3 创建索引创建索引4-4-3 4-4-3 创建索引创建索引1 .利用表设计器对表建立索引 在建立新表的同时或建立新表之后,都
可以为其建立索引。
![Page 49: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/49.jpg)
49
【例 4.17 】在“学生情况表”中,以“学号”字段为索引表达式建立主索引。
![Page 50: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/50.jpg)
50
【例 4.18 】在【例 4.1 】基础上已建立了以“姓名”字段为索引表达式的普通索引,现要求以“年级”和“性别”两个字段为索引表达式建立普通索引,并选降序。
![Page 51: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/51.jpg)
51
2 .用命令建立索引命令格式:INDEX ON 索引表达式 TO 索引文件名
/TAG 索引文件名 [OF 索引文件名 ][FOR 条件 ][COMPACT] [ASCENDING/DESCENDING][UNIQUE/CANDIDATE] [ADDITIVE]
![Page 52: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/52.jpg)
52
4-4-4 4-4-4 索引的使用索引的使用4-4-4 4-4-4 索引的使用索引的使用• 建立索引的目的是通过使用索引提高对
表、数据库的有效操作。• 在 VFP 系统中,一个表可以指定几个字
段名或字段表达式建立索引,每一个索引都表示一个表中记录的一种处理顺序。
![Page 53: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/53.jpg)
53
1 .利用菜单方式,打开索引,显示记录顺序
【例 4.20 】在【例 4.18 】中,已对“学生情况表”,按“年级”和“性别”两个字段建立了普通索引,要求显示排序后的结果。
![Page 54: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/54.jpg)
54
![Page 55: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/55.jpg)
55
2 .用命令方式打开索引,显示记录顺序与表名相同的结构索引在打开表时都已自动打开,但对于非结构索引必须在使用之前打开索引文件。命令格式: SET INDEX TO 索引文件列表
![Page 56: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/56.jpg)
56
• 【例 4.21 】表“学生情况表”已建立结构复合索引文件“学生情况表 .cdx” ,在其中依次先后有“学号”、“姓名”和“年级和性别”索引项,要求按“姓名”索引项显示表中记录顺序。
![Page 57: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/57.jpg)
57
4-4-5 4-4-5 删除索引删除索引4-4-5 4-4-5 删除索引删除索引 当某个索引不再使用时,就可以把它删除。
1 .用“表设计器”删除索引 【例 4.22 】删除“学生情况表”中以“年级
和性别”为索引表达式建立的普通索引。
![Page 58: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/58.jpg)
58
2 .用命令删除索引命令格式:DELETE TAG 索引名如果要删除全部索引可以使用命令: DELETE TAG ALL
![Page 59: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/59.jpg)
59
4-5 4-5 排序排序4-5 4-5 排序排序
4-5-1 什么是排序 86
4-5-2 用 SORT 命令建立排序文件 86
![Page 60: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/60.jpg)
60
4-5-1 4-5-1 什么是排序什么是排序4-5-1 4-5-1 什么是排序什么是排序• 索引可以使用户按照某种顺序浏览或查找表中的记录,这种顺序是逻辑的,是通过索引关键字实现的。而排序是根据表的某些字段重新排列记录,是一种物理排序。排序后将产生一个新表,其记录按新的顺序排列,但数据与原表相同。
![Page 61: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/61.jpg)
61
4-5-2 4-5-2 用用 SORTSORT 命令建立排序文命令建立排序文件件
4-5-2 4-5-2 用用 SORTSORT 命令建立排序文命令建立排序文件件
命令格式:SORT TO 新表文件名 ON < 字段名 1> [/A| /D]
[/C] [,< 字段名 2> [/A| /D] [/C]][ASCENDING| DESCENDING] [FOR < 条件 >] [FIELDS < 字段名表 >]
![Page 62: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/62.jpg)
62
• 【例 4.24 】对“学生情况表”按以下要求排序:
![Page 63: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/63.jpg)
63
4-6 4-6 多重工作区的使用多重工作区的使用4-6 4-6 多重工作区的使用多重工作区的使用
4-6-1 工作区的概念 87
4-6-2 工作区号和别名 87
4-6-3 选择工作区号 88
4-6-4 用 USE 命令直接指定工作区并打开数据表文件 88
4-6-5 数据表的物理连接 89
![Page 64: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/64.jpg)
64
4-6-1 4-6-1 工作区的概念工作区的概念4-6-1 4-6-1 工作区的概念工作区的概念 在 VFP 中,每打开一个数据表文件,
就是把表文件从外存调入内存,在内存中占用一个存储区域,此存储区域就称为工作区。 VFP 系统允许最多可以同时打开 32767 个数据表,即提供了 32767个工作区。每一个工作区只能打开一个数据表文件,如果再打开另一个数据表文件,则系统自动关闭前一个已打开的数据表文件。
![Page 65: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/65.jpg)
65
反之,一个数据表文件只能在一个工作区中打开,如果在没有关闭该数据表文件时,要在其他工作区中打开它,系统会显示“文件正在使用”的出错信息提示框。如果要同时打开多个数据表文件,则需指定多个工作区分别打开。无论打开多少工作区,任一时刻,都只能选择一个工作区进行工作,此工作区称当前工作区。
![Page 66: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/66.jpg)
66
4-6-2 4-6-2 工作区号和别名工作区号和别名4-6-2 4-6-2 工作区号和别名工作区号和别名 在 VFP 中,系统提供了 32767 个
工作区,每个工作区都有一个编号,称为工作区号,编号从 1 到 32767 。系统默认编号为 1 的工作区为当前工作区,即启动 VFP 系统,打开一个数据表文件时,该表文件自动被调入 1 号工作区。
![Page 67: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/67.jpg)
67
• 别名是指给工作区取的一个除工作区编号以外的名字。在 VFP 中,对前 10 个工作区除使用 1~10 为编号外,其别名还可以依次用 A~J10 个字母来表示。可以在一个工作区中打开一个数据表文件的同时给这个工作区定义一个别名。
![Page 68: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/68.jpg)
68
• 命令格式: USE < 数据表文件名 > ALIAS < 别名 >
• 功能:打开指定的数据表文件,并给该文件指定一个别名。
![Page 69: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/69.jpg)
69
4-6-3 4-6-3 选择工作区号选择工作区号4-6-3 4-6-3 选择工作区号选择工作区号当需要同时对多个数据表进行处理时,须
使用选择工作区的命令。命令格式: SELECT < 工作区号 / 别名 /0
>功能:选择指定的工作区为当前工作区。
![Page 70: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/70.jpg)
70
• 【例 4.26 】用命令在 1 区打开“学生情况表”,在 2 区打开“学生选课表”,在 3 区打开“课程表”,在 4 区打开“学分汇总”。
![Page 71: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/71.jpg)
71
4-6-4 4-6-4 用用 USEUSE 命令直接指定工命令直接指定工作区并打开数据表文件作区并打开数据表文件
4-6-4 4-6-4 用用 USEUSE 命令直接指定工命令直接指定工作区并打开数据表文件作区并打开数据表文件
•在打开数据表的同时为数据表指定一个工作区。
•命令格式: USE < 表文件名 > IN <工作区号 >
•功能:在指定的工作区中直接打开指定的数据表文件。
![Page 72: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/72.jpg)
72
4-6-5 4-6-5 数据表的物理连接数据表的物理连接4-6-5 4-6-5 数据表的物理连接数据表的物理连接•前面介绍过 APPEND FROM < 源表
文件名 > 命令,此命令是指数据表的纵向连接,除此以外数据表还可以横向连接,即物理连接。物理连接是指将两个数据表连接生成一个新的数据表文件,新表文件中的字段从两个数据表中选取。
![Page 73: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/73.jpg)
73
命令格式:JOIN WITH < 别名 >|< 工作区号 > TO< 新表文件名 >FOR< 条件 > [FIELDS < 字段名表 > ]
![Page 74: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/74.jpg)
74
•功能:在当前数据表文件和 < 别名 > 指定的工作区中的数据表文件中,把满足条件的记录按指定的字段名连接起来,生成一个新的数据表 .DBF 文件。
![Page 75: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/75.jpg)
75
• 【例 4.28 】把“学生情况表”文件和“学生选课表”文件进行横向连接,生成一个新的数据表文件名为 XSXB ,保存在“ D:\NEW BOOK”目录中,新表文件中包含学号、姓名、课程号、成绩 4个字段,连接的条件是把两个数据表中学号相同的记录放到新表中,并浏览数据表 XSXB 的记录。
![Page 76: 第 4 章 表的基本操作](https://reader033.vdocuments.site/reader033/viewer/2022061414/5681351f550346895d9c8215/html5/thumbnails/76.jpg)
76