第 四 章表的基本操作
Visual FoxPro 6.0
第 四 章 表的基本操作
§ 4.1表的建立表:是指存放在磁盘文件中的一张二维表。
自由表,不属于任何数据库的表。
数据库表,包含在一个数据库中的表。
区分数据库表和自由表,实现两者的转换
( 1) 建立表结构建表分两步骤:
( 2)数据的输入一、创建表的结构建立表结构就是定义各个字段的属性(字段名、字段类型、字段宽度、小数位数等) 。
利用 表设计器 定义数据表的结构,操作方法有二种。
【 方法一 】
从 VFP系统的主菜单,打开“文件” →,新建” → 选择“表”
→,新建文件” → 输入新建的表名 → 在“表设计器”窗口,逐一定义表中所有字段名、类型、宽度和是否建立索引,完成对数据表结构的建立。
【 方法二 】
CREATE [ 〈 表文件名 〉 ]
通用型字段用于存储多媒体数据。
通用型字段数据的输入打开通用型字段窗口的命令,MODIFY GENERAL <通用字段 >
通用型字段的数据可通过剪贴板粘贴,或通过编辑菜单的插入对象命令来插入图形。
WINDOWS应用程序之间交换数据的两种方法:对象的链接与嵌入( Object Linking and Embedding,简称 OLE)
通用字段数据的编辑 使用图形编辑工具二、表数据的输入 (注意通用型字段的操作 )
通用型字段数据的删除 通过编辑菜单 → 清除
§ 4.2表的维护表结构维护通常利用 表设计器 来修改表的结构,
(1) 用菜单调出表设计器:
打开所需的表文件 → 从显示菜单中调出的表设计器
(2) 用命令调出表设计器:
USE <表文件名 >
MODIFY STRUCTURE
表记录的维护表记录的添加、修改、删除
§ 4.3表的维护命令
1,记录的定位
GO TOP|BOTTOM
GO <数值表达式 >
2.记录的移位
SKIP [<数值表达式 >]
3.插入新记录 (在 当前记录 前或后插入)
INSERT [BLANK] [BEFORE]
4.追加新记录 (在 表尾 追加)
APPEND [BLANK]
INSERT INTO 表名 [(字段 1[,字段 2,…])]VALUES( 表达式
1[,表达式 2,…])
APPEND FROM <文件名 > [常用子句 ] [其它子句 ]
5.逻辑删除 (加删除标记 )
DELETE [<范围 >] [for<条件 >]
如,dele all for 性别 =“男”
6.物理删除命令 (删除带有删除标记的记录 )
PACK
7.记录恢复命令 (去掉删除标记 )
RECALL [<范围 >] [for<条件 >]
如,recall all for 性别 =“男”
8.物理清除所有记录
ZAP
相当于 DELETE ALL + PACK
9.成批修改数据
REPLACE <字段名 1> WITH <表达式 1> [ADDITIVE][,<字段名 2>
WITH <表达式 2> [ADDITIVE]]…[ 范围 ][FOR <条件 >]
[WHERE<条件 >]
如,use sb
replace all 价格 with 价格 -1000
replace 备注 with ‘,’+ 编号 +名称 additive for 主要设备通过使用过滤器和字段表,可为一个表设置逻辑表,设置好后,
则对该表的任何操作都一直有效,直到撤消逻辑表为止。
一、过滤器设置,SET FILTER TO <条件 >
例,use sb
set filter to 价格 >1800
撤消,SET FILTER TO
二、字段表设置,SET FIELDS TO [[<字段名 1> [,<字段名 2>…]] |ALL
例,use sb
set fields to编号,名称,部门撤消,SET FIELDS OFF
§ 4.4逻辑表的设置
§ 4.5表的索引
1.索引的概念索引是一种逻辑排序方法,它不改变当前表的物理排列顺序,而是按关键字的升序或降序建立一个与当前表文件相对应的索引表,表中的指针指向原表的对应记录。
表文件中的记录被修改或删除时,索引文件可自动更新。
2.索引的种类
( 1)按扩展名分:
复合索引,CDX
单索引,IDX
( 2)按功能分:
普通索引:允许关键字重复值可作一对多永久关系中的“多方”
唯一索引:允许关键字重复值,但输出无重复值为与前版本兼容而设置候选索引:不允许关键字重复值,可用作主关键字,
可在永久关系中建立参照完整性主索引:不允许关键字重复值,仅用于数据库表,
可在永久关系中建立参照完整性一张表最多只能有一个主索引
( 3)索引的创建 P73
单字段的索引涉及多字段的索引
§ 4.6 数据工作期数据工作期是一个用来设置数据工作环境的交互操作窗口。可打开的表及其索引,建立多个表之间的关联等。
利用数据工作期来建立环境还有以下优点:
( 1)用命令来建立环境需有一定的经验,而数据工作期窗口对操作有向导作用,比较方便。
( 2)在数据工作期设置的环境可以作为视图文件保存起来,需要时将视图文件打开就能恢复它所保存的环境。
一、数据工作期窗口例 3-9
二、视图文件数据工作期设置的环境可以作为视图文件保存,以便在需要时恢复它所保存的环境。 文件名,VUE
1、视图文件的建立
( 1) 菜单操作
( 2) 命令操作 CREATE VIEW <视图文件名 >
2、视图文件的打开打开视图文件意味着恢复环境,相当于重新执行一系列先前设置的命令。
( 1) 菜单操作
( 2) 命令操作 SET VIEW TO <视图文件名 >
三、工作区
1、工作区,
VFP的工作区号,1~32767,其中 1-10 → A -J(工作区别名)
2、表别名
( 1) VFP自动使用文件名作为默认表别名。
( 2) 可用 USE <文件名 > ALIAS <别名 > 来指定表别名。
3、工作区的使用
SELECT <工作区号 >∣ <别名 > && 指定要打开表的工作区号
SELECT 0 && 选定当前尚未使用的最小号工作区
SELECT() && 返回当前工作区号别名,字段名 && 引用其它工作区中打开的表的字段
USE <表名 > IN <工作区号 >∣ <别名 > && 在指定的工作区打开表,
但不改变当前工作区四、表的关联
1、关联的概念所谓关联,就是令不同工作区的记录指针建立一种临时的联动关系,使一个表的记录指针移动时另一个表的记录指针能随之移动。
关联条件,
( 1)建立关联的两个表,一为父表,一为子表。父表记录指针的移动,会使子表记录指针自动移到满足关联条件的记录上。
( 2) 必须先为子表的字段表达式建立索引。
多一关系,父表有多条记录对应子表中的一条记录一多关系,父表的一条记录对应子表中的多条记录
2、在数据工作期窗口建立关联
( 1) 一般步骤 课本 P84页
( 2) 例 3-10
3、用命令来建立关联
( 1)建立关联 (一父表可与一个或多个子表关联 )
SET RELATION TO [<表达式 1> INTO <别名 1>,…,<表达式 N>
INTO <别名 N>] [ADDITIVE]
课本 P87页
( 2)解除关联,SET RELATION TO
( 3)说明一多关系,SET SKIP TO [<表别名 1>[,<表别 2>]…]
( 4)取消一多关系,SET SKIP TO
习题一,选择题
1.不能打开当前表编辑窗口的命令是( )。
A) append B) change C) edit D) replace,
2,对于自由表,1个字段名最少需要 1个字符,最多不能超过( )个字符。
A) 2 B) 5 C) 10,D) 254
3,基本上是由数码组成的学号或电话号码,设计结构时,一般采用 ( ) 数据类型 。
A) 字符型 B) 数值型 C) 备注型 D) 序号型
4,在表文件中,如果包含有 2个备注型字段和 1个通用型字段,则创建表文件后,VFP将自动建立 ( ) 个 FPT文件 。
A) 0 B) 1,C) 2 D) 3
5,在设计表结构时,允许用户定义字段宽度的数据类型是 ( ) 。
A) 数值型,B) 日期型 C) 逻辑型 D) 备注型
6.不能关闭当前表文件的命令是 ( ) 。
A) browse,B) use C) colse table D) clear all
7.如果要以独占方式打开 db2.dbf表,应使用的命令是 ( ) 。
A) use db2 all B) use db2 lock C) use db2 sharedD) use db2 exclusive
8,对于当前表来说,依次执行 List命令和? Eof( ) 命令后,最后显示的内容是 ( ) 。
A) 1 B) 10 C),T.,D),F.
9,物理删除当前表中所有记录的命令是 ( ) 。
A) delete all B) pack C) recall all D) zap
10,在当前表中,如果,金额 =数量 *单价,,则可用 ( ) 命令自动填写所有记录的,金额,字段值 。
A) browse金额 =数量 *单价 B) replace all je=sl*dj
C) replace all金额 with 数量 *单价 D) replace all je with sl*dj
11,如果在第 1,2,5工作区中分别打开一个表,则执行 use stu23 in 0命令后,stu23.dbf表打开在 ( ) 工作区中 。
A) 0 B) 1 C) 3,D) 6
12,对 82年出生而且是团员的记录 ( 出生日期,birth,D;是否团员,
member,L),建立筛选条件的命令是 ( ) 。
A) set filter to birth=1982 and member=.T.
B) set filter to year( birth) =1982 and member,
C) locate for birth=1982 and member=.T.
D) index on birth=1982 and member=.T,to stu9
13,项目文件的默认扩展名是 ( ) 。
A) item B) dbc C) dbf D) pjx,
14,如果要在项目中创建程序文件,应该选用 ( ) 选项卡 。
A) 数据 B) 文档 C) 类 D) 代码,
15,如果要打开,数据库设计器,工具栏,可以选择 ( ) 菜单?选择,工具栏,
进行操作 。
A) 文件 B) 显示,C) 格式 D) 工具
16,在,打开,对话框中,如果要在文件列表框中显示数据库文件,则应在 ( ) 列表框中选择,数据库 ( *.dbc),。
A) 搜寻 B) 文件名 C) 文件类型,D) 数据库名