1. 工作区
工作区:
指用来标识一张打开的表的区域。一个工作区在某一时刻只能打开一张表,但可以同时在多个工作区打开多张表,一张可以在多个工作区中多次被打开。每个工作区都有一个编号。
表的别名:
在工作区中打开表时为该表所定义的名称。可以自定义别名,否则系统默认就以表名作为别名。若一张表在多个工作区中被打开,系统默认在表名后依次加_a 、_b…。
自定义别名的格式: USE <表名> ALIAS <别名>
当前工作区:
正在使用的工作区。可以通过“数据工作期窗口”或用 SELECT命令把任何一个工作区设置为当前工作区。
SELECT 命令格式: SELECT <工作区号>|<别名>
要操作非当前工作区中的表,可以把其它工作区选为当前工作区,或在命令中强行指定工作区。
命令格式: IN <工作区号>|<别名>
ALIAS([工作区号])函数:
测试指定工作区中的表的别名,无参数时指当前工作区表的别名。
SELECT([别名])函数:
测试指定别名的表所在的工作区号,无参数时指当前工作区的区号。
2. 表的打开和关闭
|
打开表的途径 |
关闭表的途径 | ||
| 文件 菜单中的 打开 | 工具栏上的 打开 | 数据工作期 窗口中 关闭 | USE |
| 数据工作期 窗口中 打开 | USE <表名> | USE IN <别名>|<工作区号> | CLOSE ALL |
| USE <表名> IN <工作区号> | USE <表名> AGAIN | CLOSE DATABASE | CLOSE TABLE |
| USE <表名> ALIAS <别名> | 退出 VFP系统,则关闭所有的表 | ||
3. 表的独占与共享使用
独占使用: 一张表只能被一个用户打开。VFP6.0在默认状态以独占方式打开。
共享使用: 一张表可以被多个用户同时打开。
系统的默认打开方式可以通过工具菜单中的选项…来设置,或 用命令:
SET EXCLUSIVE OFF && 默认打开方式为共享
SET EXCLUSIVE ON && 默认打开方式为独占
或强行打开:USE cj SHARED && 以共享方式打开cj表
USE cj EXCLUSIVE && 以独占方式打开cj表
4. 利用缓冲访问表中的数据
数据缓冲:
先将对表记录的修改存放在缓冲区中,用户决定是否用缓冲区中的数据更新表文件。它是VFP6.0在多用户环境下用来保护对表记录所做的数据更新和数据维护操作的一种技术。
数据缓冲的类型:
记录缓冲:
当记录指针移动或关闭表时,缓冲区自动更新表中的相应记录。
表缓冲:当发出更新表的命令或关闭表时更新表。
缓冲锁定方式:有两种:开放式 和 保守式。
3.5 表的索引
1. 基本概念
记录的顺序 :
物理顺序:即表中记录的存储顺序。用记录号表示。
逻辑顺序:表打开后被使用时记录的处理顺序。
索 引:
指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。
索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。
注意:1)用多个字段建立索引表达式时,表达式的计算结果将影响索引的结果;
2)不同类型字段构成一个表达式时,必须转换数据类型。
索引标识(索引名):
即索引关键字的名称。必须以下划线、字母或汉字开头,且不可超过10个字。
索引类型:主索引、候选索引、普通索引、唯一索引。
主索引:
组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。
候选索引:
在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。
普通索引:
也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。
唯一索引:
参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。
2. 索引的作用
|
用途 |
采用的索引类型 |
| 排序记录,以便显示、查询或打印 | 使用普通索引、候选索引或主索引 |
| 在字段中控制重复值的输入并对记录排序 | 对数据库表使用主索引或候选索引,对自由表使用候选索引 |
| 准备设置表关系 | 依据表在关系中所起的作用,使用普通索引、主索引或候选索引 |
3.索引文件的种类
|
索引文件种类 |
特征 |
关键字数目 |
限制 |
|
结构复合索引文件 .CDX |
使用和表文件名相同的基本名,随表的打开自动打开。可以看成表结构的一部分。 | 多关键字表达式,称为标识。 | 有效表达式限制在 240 个字符之内。 |
|
非结构复合索引文件 .CDX |
必须明确地打开,使用和表名不同的基本名。其中不能创建主索引 | 多关键字表达式,称为标识。 | 有效表达式限制在 符之240 个字内。 |
|
独立索引文件 .IDX |
必须明确地打开,文件的基本名由用户定义。一般作为临时索引文件。 | 单关键字表达式。 | 有效表达式限制在 100 个字符之内。 |
结构复合索引文件(扩展名为.CDX)的特点:
.在创建索引标识时自动创建。
.在打开表时自动打开。
.在同一索引文件中能包含多个排序方案,或索引关键字。
.在添加、更改或删除记录时自动维护。
4. 创建结构复合索引
VFP中创建索引文件有两种方式:表设计器方式和命令方式。
(1)表设计器方式
打开表文件 →从显示菜单中选择表设计器 → 在表设计器中单击索引 → 输入索引名并选择索引类型 → 选择索引的方向(按升序或降序排列记录) → 在表达式框中输入作为排序依据的索引关键字 → 在筛选框中输入筛选表达式 → 单击确定,完毕。
(2) 命令方式
|
命令 |
功能 |
|
INDEX ON <索引关键字段> TAG <索引标识>[FOR 条件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE] |
用INDEX ON 命令建立一个索引文件 |
| ALTER TABLE <表名> ADD PRIMARY KEY <关键字段名> TAG <索引标识名> |
用SQL命令创建主索引 |
| ALTER TABLE <表名> ADD UNIQUE <关键字段名> TAG <索引标识名> |
用SQL命令创建候选索引 |
注意:
1)备注型字段和通用型字段不能作为索引关键字段;
2)不要建立无用的索引,以免降低系统性能;
3)及时清理已无用索引标识,提高系统效率。
4)在复合索引的多个索引中,某一时刻只有一个索引对表起作用。
5. 索引的修改和删除
修改: 打开表设计器,在索引对话框中进行所需修改;
或 用命令重新建立一个相同标识名而索引表达式不同的索引。
删除: 打开表设计器,在索引对话框中删除不需要的索引标识即可;
或 用命令: DELETE TAG ALL | 索引标识1 [, 索引标识2 ] …
删除不需要的索引标识,ALL表示全部标识。
6. 索引的使用
|
功能 |
命令格式 |
| 打开表的同时指定主控索引 | USE <表名> ORDER <标识名> |
| 为已打开的表确定主控索引 | SET ORDER TO <标识名> [ASCENDING | DESCENDING] ] |
| 搜索某张已建立索引的表 | FIND <表达式> |
| 搜索表中首次出现的记录 | SEEK <表达式> [ <索引标识名>] |
| SEEK <表达式> |