第三章:  Visual FoxPro 6.0 数据库及其操作

  关闭窗口       

3.5 数据表的维护

     3.5.1 修改表结构
  
3.5.2 添加记录
  
3.5.3 编辑记录
  
3.5.4 删除记录
  
3.5.5 复制数据表
  
3.5.6 数据表与数组之间的数据交换
 

3.5.1 修改表结构

数据表结构的修改包括增加或删除字段,修改字段名、类型、宽度,增加、删除或修改索引。

1. 项目管理器方式

打开项目管理器,将数据库中的表展开,选择要修改结构的表,单击“修改”按钮,或双击要修改的表后,进入表设计器窗口。

( 1 )修改已有的字段

直接修改字段的名称、类型和宽度即可。

( 2 )增加新字段

①在原有字段后增加新字段

将光标移到最后,定义新的字段名、类型和宽度。

②在两个字段之间插入新字段

选中要插入新字段的行,然后单击“插入”按钮,便会插入一个新字段,原来的字段向下移一行。

( 3 )删除字段

选定要删除的字段,然后单击“删除”按钮。

( 4 )改变字段顺序

将鼠标移到字段行最左边的按钮上,按一鼠标,然后上、下拖动到合适位置处再松开鼠标。

表结构修改完毕后,单击“确定”按钮,退出表设计器。

2. 命令方式

格式: MODIFY STRUCTURE

功能:打开表设计器,显示并修改当前数据表的结构。

3.5.2 添加记录

1. 在浏览窗口中追加记录

在建立数据表结构时,如果没有选择“立即输入数据”,或者想在数据表中再增加一些记录,可以用追加的方式向表中输入数据。

( 1 )菜单方式

通过项目管理器或 BROWSE 命令打开浏览或编辑窗口,选择“显示 | 追加方式”命令,则在原有记录的末尾出现一个空记录。

( 2 )命令方式

格式: APPEND[BLANK]

功能:在当前数据表的尾部添加记录。

2. 插入记录

要在数据表的原有记录中间插入新记录,可以使用 INSERT 命令完成。

格式: INSERT[BEFORE][BLANK]

功能:在当前数据表的某个记录之前或之后插入一条记录。

3. 从其它文件中追加记录

如果当前数据表中要添加的记录已经在其它文件中存在,可以将这些记录从其它文件中追加到当前数据表记录的末尾。

( 1 )菜单方式

•  选择“文件 | 打开”命令,打开表;再从“显示”菜单中选择“浏览”或“编辑”命令,打开浏览或编辑窗口。

•  选择“表 | 追加记录”命令,出现“追加来源”对话框。在“类型”列表框中选择源文件的类型,在“来源于”文本框中输入来源文件名。

•  单击对话框中的“选项”按钮,打开“追加来源选项”对话框,单击“字段”按钮,出现“字段选择器”。单击“添加”按钮,将其添加至“选定字段”列表框。

④完成所有设置后,单击“确定”按钮。

( 2 )命令方式

格式: APPEND FROM< 源表文件名 >[FIELDS< 字段名表 >][FOR< 条件 >]

功能:将满足条件的记录按指定的字段从源表文件追加到当前数据表的末尾。

3.5.3 编辑记录

1. 在浏览窗口中编辑记录

( 1 )项目管理器方式

打开项目管理器,将数据库展开至表项,选择要编辑记录的表,单击“浏览”按钮,打开浏览窗口;然后用定位记录的方法找到要修改的记录,将光标定位在要修改的字段值上,直接修改即可。

( 2 )命令方式

格式: BROWSE[FIELDS< 字段名表 >][FREEZE< 字段名 >]

[NOAPPEND][NOMODIFY][FOR< 条件表达式 >]

功能:打开浏览窗口,显示表文件的记录,并进行全屏幕编辑和修改。

2. 批量修改记录

( 1 )菜单方式

打开数据表,使其显示在浏览或编辑窗口中,然后选择“表 | 替换字段”命令,出现“替换字段”对话框。在“字段”下拉列表框中选择当前数据表中要替换的字段,在“替换为”文本框中输入要替换指定字段内容的表达式,在“替换条件”栏中根据需要指定记录范围和条件。

( 2 )命令方式

格式: REPLACE[< 范围 >][< 字段 1>WITH< 表达式 1>] [ADDITIVE]

[< 字段 2>WITH< 表达式 2>][ADDITIVE] …

[FOR< 条件 >][WHILE< 条件 >]

功能:对当前数据表中指定范围内满足条件的记录进行批量修改。

3.5.4 删除记录

1. 记录的逻辑删除

记录的逻辑删除有以下三种方法。

( 1 )鼠标操作

打开项目管理器,将数据库展开至表项,选中要操作的表,单击“浏览”按钮,打开浏览窗口。单击要逻辑删除的记录的第一个字段前硕的空白处,使其颜色变黑,表示此记录已被逻辑删除了。

( 2 )菜单方式

打开浏览窗口,选择“表 | 删除记录”命令,出现“删除”对话框。根据需要分别设置“作用范围”、“ FOR ”条件或者“ WHILE ”条件,然后单击“删除”按钮,即进行了逻辑删除。

( 3 )命令方式

格式: DELETE[< 范围 >][FOR< 条件 >][WHILE< 条件 >]

功能:给当前数据表文件中满足条件的记录加删除标记。

2. 逻辑删除记录的恢复

( 1 )鼠标操作

在浏览窗口中,单击逻辑删除标记,取消黑色方框,即恢复了已删除的记录。

( 2 )菜单方式

打开浏览窗口,选择“表 | 恢复记录”命令,出现“恢复记录”对话框。根据需要分别设置“作用范围”、“ FOR ”条件或者“ WHILE ”条件,然后单击“恢复记录”按钮,即可将满足条件的记录恢复。

( 3 )命令方式

格式: RECALL[< 范围 >][FOR< 条件 >][WHILE< 条件 >]

功能:取消记录的逻辑删除标记,恢复被逻辑删除的记录。

3. 记录的物理删除

( 1 )将带逻辑删除标记的记录物理删除

•  菜单方式

打开浏览窗口,选择“表 | 彻底删除”命令,在对话框中单击“是”按钮,所有带逻辑删除标记的记录就从当前表文件中彻底清除了。

②命令方式

格式: PACK

功能:把当前数据表中带逻辑删除标记的记录从磁盘中彻底删除。

( 2 )记录的一次性删除

使用 ZAP 命令可以一次性将当前数据表中的所有记录从表文件中删除,仅保留表结构。

格式: ZAP

功能:将数据表中的所有记录从表文件中删除,仅保留表结构。

3.5.5 复制数据表

为了防止数据丢失或损坏,应该定期对数据表进行备份,以防不测。另外,有的时候需要根据已建立的数据表间接建立其它数据表文件,这时可进行数据表的复制操作。

1. 数据表文件的复制

( 1 )菜单方式

①选择“文件 | 打开”命令或使用 USE 命令,打开要复制的表文件。

②选择“文件 | 导出”命令,打开“导出”对话框,选择复制的文件类型,输入复制后的目标文件名。如果执行该操作时没有打开数据表,可以在“来源于”文本框中输入被复制的源文件。

如果要复制的不是整个数据表,而是数据表中的部分内容,可以单击“选项”按钮,打开“导出选项”对话框,选择要复制的记录以及要复制的字段。

③单击“确定”按钮,则当前表文件或表文件中指定的记录或指定的字段内容就被复制到目标位置。

( 2 )命令方式

格式: COPY TO < 新表文件名 >[< 范围 >][ FIELDS< 字段名表 >]

[FOR< 条件 >][WHILE< 条件 >]

功能:将当前数据表文件的内容全部或部分复制到新文件中。

说明:无任何选项时,将复制一个与当前数据表文件的结构和内容完全相同的新表文件。如果指定 < 范围 > 、 < 字段名表 > 或 < 条件 > ,则将指定的记录或字段复制到新表文件中。

2. 数据表结构的复制

用 COPY STRUCTURE 命令可将一个数据表的结构复制到新表中。

格式: COPY STRUCTURE TO< 新表文件名 >[FIELDS< 字段名表 >]

功能:将当前表文件的结构全部或部分复制到新的数据表文件中。

说明:如果带 < 字段名表 > 选项,则仅将指定的字段复制到新表文件中;否则,将源数据表的整个结构复制到新表文件中。复制产生的新表文件是一个只有结构而没有记录的空表文件。

3. 数据表文件的更名

( 1 )项目管理器方式

若表文件属于一个项目,可以在项目管理器中对其重命名。方法是:选中要重命名的表,选择“项目 | 重命名文件”命令;或者右击要重命名的表,从快捷菜单中选择“重命名”,出现“重命名文件”对话框,输入新的文件名即可。

( 2 )命令方式

格式: RENAME< 源表文件名 > TO< 新的表文件名 >

功能:将源表文件名改成新的表文件名。

说明:

①源表文件名和新表文件名中必须带扩展名。

②可以使用通配符对一组文件进行更名。

3.5.6 数据表与数组之间的数据交换

1. 将表的当前记录复制到数组

格式: SCATTER [FIELDS< 字段名表 >][MEMO]

TO< 数组名 >|MEMVAR

功能:将当前数据表中的当前记录按字段顺序复制到指定的数组或内存变量中。

说明:

① FIELDS< 字段名表 > 指定要传送的字段内容。若省略该选项,则是将当前记录的所有字段值传送给数组元素或内存变量。

②带 MEMO 选项,表示可以将备注型字段的内容复制到数组中;否则,备注型字段不被复制。

③ TO< 数组名 > 指出数据传递到的数组,当前记录的字段内容将按顺序分别复制到该数组的各个元素中,且从数组的第一个元素开始存放。若指定的 < 数组名 > 不存在或已定义的数组元素的个数少于字段个数,则系统将自动建立或重新定义该数组;若已定义的数组元素的个数多于字段个数,则多余的数组元素内容将不被复制。

④使用 MEMVAR 选项表示将字段内容传递到一组内存变量中,且一个字段对应产生一个内存变量,内存变量的名字、类型、宽度与相应的字段变量相同。带 MEMO 选项时,接收备注型字段的内存变量类型为字符型,宽度与备注型字段的实际内容相同。

2. 将数组复制到表的当前记录

格式: GATHER FROM< 数组 >|MEMVAR

[FIELDS< 字段名表 >][MEMO]

功能:从数组的第 1 个元素开始,将各元素的值顺序复制到当前记录的指定字段中。

说明:

① MEMVAR 表示将同名的内存变量值复制到当前记录的指定字段中,若没有内存变量与指定字段同名,则该字段内容将不被复制。

②带 FIELDS< 字段名表 > 选项表示只将数组或内存变量的值复制到指定的字段中;否则复制到当前记录的所有字段中。

③带 MEMO 选项表示可以将数组或内存变量的值复制到备注型字段,否则不对备注型字段复制。

④数组必须已经定义过,并且各数组元素的类型与相应的字段类型相同。

⑤如果字段个数多于数组元素的个数,则后面多余的字段将不被复制;如果数组元素的个数多于字段个数,则多余的数组元素将被忽略。

 

关闭窗口      
 
版权所有西北师范大学数学与信息科学学院