当前位置:首页 >> IT/计算机 >>

VFP3 表的创建和使用


VFP

第三章

表的创建和使用

3.1 表
一、表的概念 概念:以文件形式存储的一张二维表。 概念
扩展名:.dbf 表备注扩展名:.fpt

?列:字段(Field),描述数据的某个特征; ?行:记录(Record),多个字段的集合 分类:自由表、数据库表 分类 二、字段的基本属性 1、字段名 字段名:描述某实体的特征属性 字段名
?可以用中文字符,建议使用英文;字段个数不超过255 ? ; 255



2、字段的数据类型 数据类型(Type) 数据类型 3、字段宽度 字段宽度(Width):字段容纳数据的最大字节数 字段宽度 ?整型、备注型、通用型 包含引用信息) :4字节 备注型、 备注型 通用型( ?货币型、日期型、日期时间型、双精度型:8字节 ?逻辑型:1字节 小数位数:针对数值型、浮点型和双精度型字段 4、小数位数 小数位数

Ex:要求一个表文件的数值型字段具有5位小数,那么该字段的宽度最
少应当定义成 。A.5位 B.6位 C.7位 D.8位

return

3.2表结构的创建和修改 表结构的创建
方式:表设计器/SQL命令 1、表设计器


例: ▲表结构的显示 LIST STRUCTURE DISPLAY STRUCTURE

2、用CREATE TABLE-SQL命令 *格式: CREATE TABLE 表文件名(字段名1 类型 (宽度,小数位数), ; 字段名2 类型 (宽度……))

如:CREATE

TABLE JIAOSHI (; GH C(5),XM C(8),XB C(2),XIMING C(18),; GL N(2,0),CSRQ D, HF L, JBGZ N(7,2), JL M)

*使用 NULL 值:
在 CREATE TABLE 命令中使用NULL或 NOT NULL(默认)子句 (空值:表示“没有值”或没有确定值. 空值不同于数值0、空字符串、或逻辑假.F. )

*二进制的字符型和备注型字段:
在字段说明之后加上NOCPRANS关键字

修改表结构
1.用表设计器修改 MODIFY STRUCTURE 2.用ALTER TABLE-SQL名令修改 n添加字段
ALTER TABLE XS ADD COLUMN BJMC C(12)
n

重命名字段
ALTER TABLE XS RENAME COLUMN BJMC TO BJ

n

删除字段
ALTER TABLE XS DROP COLUMN BJ

相关函数:FIELD( ),FCOUNT( )

3.3记录的处理 3.3记录的处理 记录的追加 1.立即输入记录 2.浏览状态下追加
*注意:在“显示”菜单中选中“追加方式” 注意 显示”菜单中选中“追加方式”

记录的处理

3.使用INSERT-SQL命令
INSERT INTO KC(KCDH,BXK,XF); VALUES(“09”,.F.,2) *注意 什么情况下表字段列表可以省略 注意:

4.从其他表追加至当前表
APPEND FROM 表名

记录的浏览 1.浏览/编辑窗口 2.BROWSE命令

记录的处理

BROWSE FIELDS 字段名 字段名2,… [FOR <条件 字段名1,字段名 条件>] 字段名 条件

3.DISPLAY和LIST命令
DISPLAY [范围][字段名 字段名 字段名1,字段名 字段名2,… FOR <条件 ] 条件> 条件

列头

列分割线

指示当前 记录指针

浏 览 方 式
删除标记区 窗口分割条

编 辑 方 式

“学生情况”的浏览窗口

记录的定位
记录开始标志 文件头 (表结构等信息)

1.记录相关函数
.EOF( ) .BOF( ) .RECNO( )
记录指针初始值为1; 记录指针初始值为 最大为记录总数+1 最大为记录总数

第1号记录 第2号记录 记录指针

.RECCOUNT( )

第N号记录

记录结束标志

记录的定位 2.记录的定位方式 记录的定位方式
绝对、相对、条件定位

3.记录定位的实现 记录定位的实现
①界面操作方式
注意:作用范围[scope] 注意 RECORD n:第n条记录。 NEXT n: 从当前记录开始以下的N条记录。 REST: 从当前记录开始到文件末尾的所有记录。 ALL: 全部记录。

②命令方式
*GO *SKIP *LOCATE …… CONTINUE 注意:记录指针移动后当前指针位置 注意:

记录的修改
1.在浏览窗口中编辑修改记录
界面方式:BROWSE或EDIT

2.批量记录的修改
界面方式:替换字段 命令方式:UPDATE-SQL;REPLACE 如: update js set jbgz=jbgz*1.2 where gl>=30 replace all jbgz with jbgz*1.2 for gl>=30 更新的表不必事先打开; 注: update更新的表不必事先打开 更新的表不必事先打开 replace更新的表必须事先打开 更新的表必须事先打开; 更新的表必须事先打开 注意带不带where、范围、for区别 区别. 注意带不带 、范围、 区别 3.单个记录(当前记录)的修改 如: replace jbgz with jbgz*1.2

4.输入空值NULL方法 思考:对js表:工龄在10年以下(不含10年) 基本工资加20;工龄在10-19年 基本
工资加35;工龄在20年以上(含20年) 基本工资加50

记录的删除
步骤:标记要删除的记录;彻底删除带标记的记录 步骤 1.标记要删除的记录(逻辑删除) 界面方式: 命令方式:①DELETE FROM 表名[WHERE<条件>] ②DELETE [范围] [FOR <条件>] 命令①删除记录时,表不必事先打开 注: 命令 时 表不必事先打开; 命令②删除记录时,表必须事先打开 命令 时 2.彻底删除记录(物理删除) 命令:PACK,ZAP(注意两命令区别 及 Set Safety on|off 命令作用) 注意两命令区别 3.恢复带删除标记的记录 命令:RECALL [范围] [FOR <条件>] 4.对带删除标记记录的访问 (1)测试记录的删除标记 DELETED( ) (2)控制带删除标记记录的访问 SET DELETE ON|OFF(忽略/允许(默认))

筛选记录
1.界面方式
“表”菜单---“属性”---对话框中---“数据过滤器”

2.命令方式 nSET FILTER TO [条件表达式] n在其它命令中加FOR、WHILE子句

筛选字段
SET FIELDS TO 字段名 字段名 字段名1,字段名 字段名2,… n SET FIELDS TO ALL
n

3.4表的使用 表的使用
*使用表之前,必须把表打开,且一张表必须占用一个工作区 使用表之前,必须把表打开, 使用表之前

1.工作区:指用以标志一张打开的表的区域
*工作区编号 一个工作区某时刻只能打开一张表;但可在不同工作区打开同一张表。 *一个工作区某时刻只能打开一张表;但可在不同工作区打开同一张表。

2.工作区中表的别名
USE 表文件名 ALIAS 别名 ALIAS([工作区号])返回指定工作区的表别名 返回指定工作区的表别名

3.当前工作区:正在使用的工作区,为默认工作区
*改变当前工作区 改变当前工作区 SELECT 工作区号 表别名 工作区号/表别名 *select 0 选择未被使用的编号最小的工作区为当前工作区 *SELECT(0) 测试当前工作区号 4.对非当前工作区的表进行操作 在命令中强行指定工作区( 工作区) 在命令中强行指定工作区( use 表名 in 工作区) used()函数 函数

5.打开表
(1)通过界面操作 文件菜单、数据工作期、 文件菜单、数据工作期、USE ? (2)使用命令 USE 表名 &&关闭当前工作区表,打开新表 关闭当前工作区表, 关闭当前工作区表 (3)多次打开一张表(在不同工作区中 在不同工作区中) 在不同工作区中 USE 表名 AGAIN

6.关闭表
(1)界面操作 (2)命令操作 ?关闭当前工作区中的表(use) ?关闭非当前工作区中的表(use in 工作区) ?关闭所有工作区中的表(close all(/tables all/databases)) 并选择工作区1为当前工作区 并选择工作区 为当前工作区 ?退出系统时,自动关闭表

7.表的独占与共享使用
(1)设置打开表时的默认独占与共享状态 工具” 选项” “工具”----“选项” 选项 命令:SET EXCLUSIVE ON/OFF(独占(默认)/公享 公享) 独占 公享 *此命令的设置,并不影响已打开表的状态 此命令的设置, (2)强行用一种方式打开表 USE 表名 SHARE/EXCLUSIVE *同一张表多次打开时,以第一次打开的方式为准。 同一张表多次打开时, *以下命令只能处理以独占方式打开的表: 以下命令只能处理以独占方式打开的表 insert [blank]、pack、modify structure、 reindex、 zap

8.利用数据缓冲访问表中的数据
(1)数据缓冲:多用户环境下对数据操作(更新、维护 更新、 更新 维护)的一种技术 (2)数据缓冲的类型 记录缓冲、 记录缓冲、表缓冲 锁定方式: 修改时加锁) 仅写入时加锁) 保守式(修改时加锁 、开放式(仅写入时加锁 修改时加锁 仅写入时加锁 缓冲类型值:1,2,3,4,5 (3)设置表的数据缓冲 界面方式:“工作区属性”对话框 命令方式:CURSORSETPROP() ()函数 () CURSORSETPROP(’BUFFERING’,缓冲类型值 [,工作区 工作区]) 缓冲类型值 工作区 (4)检测数据一致性
CURVAL( )、OLDVAL() 、 () 标明表的某字段是否 GETFLDSTATE( ) :标明表的某字段是否已被编辑 标明表的某字段是 已被编辑(2/1);

是否有追加的记录;当前记录的删除状态是否已更改 是否有追加的记录 当前记录的删除状态是否已更改 (5)缓冲区数据的修改
TABLEUPDATE( ):执行对缓冲区的修改 ( ):执行对缓冲区的修改 TABLEREVERT( ):放弃对缓冲区的修改 ( ):放弃对缓冲区的修改

3.5 表的索引
3.5.1 记录的顺序
▲物理顺序:记录的存储顺序(顺序找,速度慢) 逻辑顺序:记录的处理顺序(快速) ▲表的排序:把表文件中的记录按照某个字段值的 大小顺序重新排列形成新的表文件 格式:SORT TO <表名> ON <字段名1> [/A][/D] 格式 [,<字段名n> [/A][/D]] [<范围>] [FOR <条件>] [FIELDS <字段名列表>] USE xs 例:

SORT TO STUDENT1 ON xm/D USE STUDENT1 LIST
缺点: 缺点: 1)排序造成了数据冗余,浪费存储空间 2)如果对表文件进行增、删、改操作时,要重新进行排序

3.5 表的索引
3.5.2索引概念 3.5.2索引概念 索引
1、索引:索引序号+记录号 索引:索引序号+
▲索引的优点 优点: 优点

速度快;容量小;多角度 ▲索引文件和表文件分别进行存储,并不改变表中 记录的物理位置 索引关键字(Index Key) (1)索引关键字 ▲字段/字段表达式 ▲建立索引的依据(按索引表达式的结果) 索引标识(Tag) (2)索引标识(Tag) ▲索引关键字的名称(索引名) ▲命名:必须以下划线、字母或汉字开头 ▲ <=10字节

3.5 表的索引
2、索引的类型
–主索引(Primary indexs)
? 主索引只能在数据库表 数据库表的结构复合索引文件中创建 数据库表 ? 在数据库表 数据库表中,每张表只能创建一个主索引 数据库表 ? 组成主索引关键字的字段或表达式 字段或表达式,在表的所有记录 字段或表达式 中不能有重复的值(如:XH可以,XM不可以) ? 自由表 自由表不能建立主索引

–侯选索引(Candidate indexs)
? 在指定的关键字段或表达式中不允许有重复值的索引 ? 一张表中可以建立多个侯选索引 ? 侯选索引可用于数据库表和自由表

3.5 表的索引
2、索引的类型
–普通索引(Regular indexs)
? 可以决定记录的处理顺序,但是允许关键字段或表达式 的值出现重复 ? 对一张表可以创建多个普通索引(如:XM,GL)

–唯一索引(Unique indexs)
? 参加索引的关键字段或表达式在表中允许有重复值, ? 在索引对照表中,具有重复值的记录仅存储其中的第一 个(如:XB)

3.5 表的索引
3、索引文件的种类
索引本身并不改变表中数据的物理顺序 –结构复合索引 结构复合索引(.CDX) 结构复合索引
? 与表文件同名,在创建时由系统自动给定 ? 结构复合索引文件与表文件同步打开、更新、关闭 与表文件同步打开、更新、 与表文件同步打开

–非结构复合索引(.CDX)
? 文件名由用户给出 ? 非结构复合索引文件中不能创建主索引 ? 不会与表文件同步打开、更新、关闭 与表文件同步打开、更新、 与表文件同步打开

–独立索引(.IDX)
? 只存储一个索引(‘候选、普通、唯一’之一) ? 不会随表文件打开而自动打开 不会随表文件 文件打开而自动打开 ? 如已经起主控作用则随表文件同步更新、关闭 如已经起主控作用则随表文件同步更新、 表文件同步更新

3.5.3 创建结构复合索引文件
? 创建结构复合索引文件
– 表设计器
? “表设计器”——“索引”选项卡

–Index命令 Index命令 Index
INDEX ON <字段索引表达式 TAG <索引标识名 索引表达式> 索引标识名> 索引表达式 索引标识名 [FOR <条件表达式>ASCENDING|DESCENDING][UNIQUE CANDIDATE UNIQUE|CANDIDATE UNIQUE CANDIDATE] 例:sele 0 use xs index on xh tag xsxh cand

–说明 说明
? 可在Index命令后跟OF 索引文件名 OF 索引文件名选项创建非结构复合索引 ? 不能对备注字段和通用字段建立索引 – 用多个字段建立索引表达式时应注意 用多个字段建立索引表达式时应注意:
? 表达式的计算结果 计算结果将影响索引的结果(XIMING+XB与XB+XIMING) 计算结果 ? 数值型字段求和建立的索引表达式(JBGZ+GL与STR(JBGZ)+STR(GL) ? 注意STR与DTOC类型转换函数

? 设置主控索引
主控索引:决定显示或访问表中记录的顺序的索引; 主控索引可以是:复合索引文件中的一个标识(主控标识) 1 .打开表的同时指定主控索引 use 表名 order [tag] 标识名 2 .打开表后再设置主控索引 窗口 /数据工作期 /属性/索引顺序 命令: SET ORDER TO [TAG] 标识名 注意: GO TOP、 GO BOTTOM与GO n的区别

? 取消主控索引
SET ORDER TO [0]

3.5.4 创建独立索引文件
Index命令 Index命令
<索引表达式 索引表达式> <独立索引文件名 独立索引文件名> INDEX ON <索引表达式> To <独立索引文件名> *说明:刚创建完时自动处于打开状态并起主控作用 说明: 注意: *注意:不能对备注字段和通用字段建立索引

设置主控索引
1.打开表的同时指定主控索引 use <表文件名> index <独立索引文件名> 2 打开表后再设置主控索引 use <表文件名> set index to <独立索引文件名>

取消主控索引
set index to

3.5.5 索引的修改和删除
? 索引的修改
– 表设计器
? “表设计器”——“索引”选项卡

– 命令
? INDEX 命令修改原索引

? 索引的删除
– 表设计器
? “表设计器”——“索引”选项卡

– DELETE TAG

[all] 欲删除的索引标识

3.5.6 索引的使用
? 利用索引快速定位记录
– SEEK 命令 ? SEEK 命令只能搜索索引关键字对应表达式值 只能搜索索引关键字对应表达式值
–应先设置主控索引或SEEK同时选择主控索引 –记录指针指向于成功搜索定位的第一条记录上 –如定位不成功,记录指针指向记录结束标志

? FOUND() EOF() FOUND()与EOF() EOF()函数
– FIND命令(注:该命令仅能查找数值、字符值) 注

– SEEK函数(相当SEEK、FOUND()连用)

? 索引函数
ORDER([工作区/别名]) 返回主控索引文件或标识 ▲TAG(n) 返回已打开的第n个索引文件或标识 ▲KEY(n)或SYS(14,n) 返回第n个索引的索引表达式 或



相关文章:
vfp表的创建和使用_图文.ppt
vfp表的创建和使用 - 江苏省普通高校计算机等级考试教程 Visual FoxPro 讲授 钟丹 第三章 表的创建和使用一 一、表的创建 对于关系数据库来...
VFP3表的操作_图文.ppt
VFP3表的操作 - Visual FoxPro6.0程序设计 1 第二章 表的建立与操作 学习要点 ? 表的操作 表结构、字段的数据类型、 创建/打开/关闭表, 工作区、数据工作期...
VFP3 表的创建和使用_图文.ppt
VFP3 表的创建和使用 - VFP 第三章 表的创建和使用 3.1 表一、表的
VFP第三章表的创建和使用3.2表的打开与关闭.txt
VFP第三章表的创建和使用3.2表的打开与关闭 - 3.2 表的打开与关闭 VFP 在使用一个表时,首 先必须把表打开。一个打 开的表必须占用一个工作 区。 3.2...
VFP第3章 数据表的创建及操作1_图文.ppt
VFP第3章 数据表的创建操作1_计算机软件及应用_IT/计算机_专业资料。计
vfp第3章数据表的建立和使用_图文.ppt
vfp第3章数据表的建立和使用 - 第三章 3.1 数据表的建立 3.2 数据表
VFP第3章 数据库与表的创建及使用_图文.ppt
VFP第3章 数据库与表的创建使用 - 主讲:王学军 电话:137739908
VFP第三章表的创建和使用3.3记录的处理.txt
VFP第三章表的创建和使用3.3记录的处理 - 3.3.1 记录的输入 P71
vfp第3章数据表的建立和使用_图文.ppt
vfp第3章数据表的建立和使用 - 第三章 3.1 数据表的建立 3.2 数据表
3表的创建与使用.doc
3表的创建与使用 - 第三章 表的创建和使用 3.1 VFP6.0 表 1. 表
VFP第三章表的创建和使用3.4-3.5 索引与常用函数.txt
VFP第三章表的创建和使用3.4-3.5 索引与常用函数 - 1. 索引(Ind
VFP第三章表的创建和使用3.1表结构.txt
VFP第三章表的创建和使用3.1表结构 - 第三章 表的创建和使用 对于关系型数据库来说,数据均以 二维表的形式被保存在表中。在 VFP中表分为两种类型:数据库表...
vfp数据库的创建和使用_图文.ppt
vfp数据库的创建和使用 - 第4章数据库的创建和使用 本章要点 ? ? ? ?
第3章 数据库与表的创建及使用(修改)答案.doc
第3章 数据库与表的创建使用(修改)答案_计算机软件及应用_IT/计算机_专业资料...考虑表移出数据库有可能被删除,所以勉强选 D 4.在 VFP 中,对于数据库表来说...
VFP第三章表.txt
VFP第三章表 - 第三章 表的创建和使用 对于关系型数据库来说,数据均以二维表 的形式被保存在表中。 在VFP中表分为两 种类型:数据库表和自由表,数据库表 ...
vfp第3章(理论)数据库表_图文.ppt
vfp3章(理论)数据库表 - 可视化程序设计Visual FoxPro 第3章 数据表与数据库 第3章 数据表与数据库 ? 一、数据库 ? 二、数据表 ? 表的索引...
第三章表的创建和使用.doc
VFP 允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的...3.2 表结构的创建和修改 1. 表结构的创建 创建表结构其实就是设计字段的基本...
vfp复习题3.doc
vfp 复习题 3 满分:49 分 姓名:___ 1、单项选择题(本题共计 20 分) 1、如果要对自由表某一字段的数据值建立唯一性保护机制(即表中所有字段的值不重复)...
第3章 表的创建和使用.doc
第3章 表的创建和使用 - 江苏省VFP二级课件及复习纲要... 第3章 表的创建和使用_IT认证_资格考试/认证_教育专区。江苏省VFP二级课件及复习纲要 ...
3、表的基本操作_图文.ppt
3表的基本操作 - 上节课复习: 1. 字段数据类型 逻辑 型 日期 型 备注型 通用型 2. VFP变量 ? ? 数据类型分为内存型和字段型 内存型变量的数值型其...
更多相关标签: