1.55k likes | 1.7k Views
第三章 自由表( Free Table ). 3.1 表结构的创建和修改. 3.2 表 数据的输入. 3.3 表的打开、关闭、显示和定位. 3.4 记录数据 的修改和删除. 3.5 表 的排序、索引和查询. 3.6 表 的计算、汇总. 3.7 多表的 关联、连接和更新. 3.8 其它 有关命令操作. 3.9 结构化查询语言 SQL. 第三章 自由表( Free Table ). 本章学习 VFP 的自由表文件 .DBF 的建立和操作,分为二种方式来学习:
E N D
第三章 自由表(Free Table) 3.1 表结构的创建和修改 3.2 表数据的输入 3.3 表的打开、关闭、显示和定位 3.4 记录数据的修改和删除 3.5 表的排序、索引和查询 3.6 表的计算、汇总 3.7 多表的关联、连接和更新 3.8 其它有关命令操作 3.9 结构化查询语言SQL
第三章 自由表(Free Table) 本章学习VFP的自由表文件.DBF 的建立和操作,分为二种方式来学习: 菜单方式——用鼠标选择菜单项进行数据的管理和使用,即面 向对象的操作方法 命令方式——在命令窗口输入命令语句进行数据的管理和使用
3.1 表文件结构的建立和修改 • 一、表的结构的建立 • 结构(字段) • 表文件 • 数据(记录) • 建立表文件必须先定义好表的结构,即定义字段的三个参数: • 1.字段名——由汉字、字母、0—9的数字、“—”下划线组成。 如:学号、NAME、XH-1等。 • 2.字段类型: • (1)字符型(Character)字段(C):存贮所有能打印的ASCⅡ字符及空格符及所有汉字系统的可打印的汉字和各种符号,即任何文本(Text)。 • (2)数值(Numeric)型字段(N):存贮可参与加减乘除运算的0—9的数值。
(3)逻辑型(Logical)字段(L):存放.真.或.假.两个逻辑值。输入T(t)或Y(y)为真,输入F(f)或N(n)为假。如,姓别:男或女,婚姻:真或假。(3)逻辑型(Logical)字段(L):存放.真.或.假.两个逻辑值。输入T(t)或Y(y)为真,输入F(f)或N(n)为假。如,姓别:男或女,婚姻:真或假。 (4)日期型(Date)字段(D):存贮日期数据。VFP规定输入和显示的默认格式为YYYYMMDD,对应年月日(年取4位)。可用SET DATE等设置命令改变为YY.MM.DD等多种格式。日期型字段可进行日期运算。 (5)备注型(Memo)字段(M):用以存贮大量的文字信息,表文件中如果包含有备注字段,则除了该表表文件外,还有一个与表文件同名扩展名“.FPT”的备注型文件,用来存放备每一条记录的注型字段的内容,而备注型字段本身只存放其内容在备注型文件中的地址。因此备注型字段除了能进行编辑、显示和打印外,不能进行其它操作。它是不定长度的长字符串输入,如:报告、文章、简介、说明等。 (6)通用型(General)字段(G):它类似一个备注型字段,但主要用来支持Microsoft的对象链接和嵌入OLE(Object linking and embedding)。通用数据型字段的内容也存贮在所分配的.FPT备注文件中,它可以包括任何类型的链接或嵌入的对象。
比如,可以链接或嵌入任何文本、图象、照片、声音、图表、二进制文件或由支持OLE的应用程序所建立的其它对象进入通用数据型字段。比如,可以链接或嵌入任何文本、图象、照片、声音、图表、二进制文件或由支持OLE的应用程序所建立的其它对象进入通用数据型字段。 (7)日期时间型(Date Time)字段(T):既可以存贮日期,也可以存贮时间或者两者兼有的值。其值是以“yyyymmddhhmmss”字符格式存贮的,即年月日时分秒的形式。可用设置命令设置格式。 (8)浮点数值型(Float)字段(F):或叫浮动型字段,与N型字段相同,是数值类型,以ASCⅡ码形式表示。主要用于科学运算应用程序(因它要求精确运算)。以IEEE(Institute of Electrical and Electronics Engineers)所描述的二进制浮点表示型式存贮 (9)双精度数据型(Double)字段(B):双精度比值型数据(Numeric) 精确。Double数据型是真正的浮点数(双精度的),一般用于科学计算。
(10)整数型 (Integer) 字段(I):使用没有小数值的整数。 (11)货币型(Currency)字段(Y):表示货币量的数据而代替用数值型(N)数据表示货币。它的值的范围是-2337203685477.5808至22337203685477.5807。值的前面应有美元符号“$” 。如$388.88等。 (12)二进制 (binary)字符型字段:存放想维持的、不用通过代码页转变的任何字符数据。它的值的范围是任何字符。 (13)二进制(Binary)备注型字段:存放想维持的、不用通过代码页转变的任何备注字段数据。它的范围仅受现存内存限制。
3.字段宽度——字段中能够存放的最大字符数或数字的最大位数 字符型字段不得大于254个字符,否则用备注型字段存贮。 数字型字段(N)的宽度=整数位数+小数位数+1(小数点) 逻辑型字段宽度为1, 日期型、日期时间型、货币型、双精度数据型字段宽度为8 备注型、通用型、整数型以及二进制备注型(Binary)字段宽 度为4。 浮点数值型字段(F)的宽度=整数位数+小数位数+1(小数点)二进制字符型(Binary)为1到254个字节。 4.小数位:字段的类型是数字型(N)和浮点型(F),就须给出小数位数。
二、建立表结构的命令 格式:CREATE [<文件名>|?] 功能:建立一个新的表文件,文件的扩展名是.DBF。 如:CREATE STU.DBF 进入表设计器,可定义表的结构(三个参数)了。见P40。
例1:建立文档管理系统的表结构,DF.DBF 字段名 类型 宽度 小数位 (1)登录号 字符型(C) 9 (2)登录时间 日期型(D) 8 (3)关键词 字符型(C) 11 (4)行文者号 字符型(C) 10 (5)文档名 字符型(C) 50 (6)行文者名 字符型(C) 0 (7)行文地 字符型(C) 50 (8)登出刊物 字符型(C) 20 (9)行文时间 日期型(D) 8 (10)页数 数字型(N) 3 (11)涉及金额 数字型(N) 11 4 (12)处理情况 字符型(C) 50 (13)摘要 备注型(M)4
方法:1、在命令窗口键入create DF.DBF 2、用鼠标单击:文件菜单笺(主菜单)—新建(弹出的子菜单)—表(对话框)—新文件。
例2:建立学生成绩档案STU2.DBF。字段有学号,姓名,性别,体育,高数,计算机基础,英语,平均成绩,总分,排名,备注。例2:建立学生成绩档案STU2.DBF。字段有学号,姓名,性别,体育,高数,计算机基础,英语,平均成绩,总分,排名,备注。 用二种方式来建立:(1)窗口用命令建立 (2)用菜单方式建立 实际练习1
三、表结构的修改命令 格式:MODIFY STRUCTURE 功能:显示表文件结构,并允许修改此表的结构。 练习:修改表文件STU2.DBF。 MODIFY STRU 实际练习2
3.2 表数据的输入 一、建立表结构时输入 建立表结构后,VFP系统会提示:“现在输入数据记录吗?”,如果选择是“Y”,系统则打开一个表窗口,在此窗口中,显示出表文件记录的全部字段,依次输入这些字段的数据,记录就存在了。当完成输入时,用鼠标单击此窗口右上角带×的按钮关闭窗口,便可退出完成,该表文件的数据就以记录的形式保存。 *备注型字段的数据输入方法 二、追加记录命令 APPEND 命令格式:APPEND [BLANK] 作用:在当前表的尾部(无论表中有无记录)追加新一条记录(或一条空记录)。 --正在操作的表。 当前表
三、在表中插入记录命令INSERT 格式:INSERT [BEFORE] [BLANK] 功能:在表文件中插入一条新录。 四、用BROWSE命令追加数据记录 格式:BROWSE 作用:打开了浏览窗口,可增加、修改、查阅记录。 实际练习3
3.3 表的打开、关闭、显示和定位 一、打开和关闭表文件命令 格式1:USE [<文件名>] 功能:打开<文件名>指定的表文件,该表如有备注型字段,则自动同时打开相应的备注文件。 格式2:USE 功能:关闭当前打开的表文件。 格式3: close all 功能: 关闭所有打开的文件。
二、表的显示和列表 建立表后,用户根据需要经常要对表进行各种查询显示和打印。 1.显示表的记录 LIST命令 格式:LIST [OFF] [<范围>][[FIELDS]<表达式表>] [WHILE<条件>][FOR<条件>][TO PRINT|TO FILE<文件>] 功能:连续显示表文件的内容。 说明:用户可根据自己的需要确定上面的任选项,组合LIST命令的各种功能、形式。 选项功能: 表示不显示记录号 [OFF]
指定对哪些记录进行操作。 范围包括: RECORD n 第几号记录 NEXT n 当前记录开始的几个记录(n可是一个表达式) REST 自当前记录开始至文件末尾的所有记录。 ALL 所有的记录。不选[<范围>]则隐含范围为ALL。 [<范围>] 每个表达式可以是字段名表,也可以是一般的表达式,但之间用“,”分隔。 [[FIELDS]<表达式>] 从当前记录开始查找,当出现第一个不满足条件的记录时则停止查找。这种方式一般用于经过排序或索引的表文件。 WHILE<条件>]
从<范围>内的第一个记录开始, 显示所有条件满足的 记录 ,直到范围内的记录搜索完毕(与WHILE<条件>]的区别)。 注:<条件>是逻辑表达式,它只有真和假两个值,条件满足为真(.T.),条件不满足为假(,F.)。 [FOR<条件>] [TO PRINT]:在打印机上打印出来。 [TO FILE<文件>]:将结果输出到用<文件>指定的磁盘文件。 例如1:查看STU1表中所有计算机基础成绩大于或等于80分的学生的信息 LIST ALL FOR 计算机基础>=80
例如4:查看STU2表中所有就读方式为统招的男生的学号,姓名。例如4:查看STU2表中所有就读方式为统招的男生的学号,姓名。
DISPLAY命令 命令格式:DISPLAY [OFF][<范围>][[FIELDS]<表达式>][WHILE<条件>][FOR<条件>][TO PRINT|TO FILE<文件>] DISPLAY 与LIST命令功能不同点: (1) VFP的DISPLAY命令每显示一个窗口的信息暂停一次。按任意键继续显示,而LIST显示不暂停。 (2) DISPLAY命令省略范围选择项时,仅显示当前记录,而LIST命令则显示所有记录。 例3:显STU2表的第4条记录的内容。
2.显示表的结构 格式:LIST STRUCTURE [TO PPRINT|TO FILE<文件>] 菜单方式:显示——表设计器(并可修改) 3.显示表工作状态 格式:LIST STATUS [TO PRINT|TO FILE<文件>]
三、记录的定位 打开表时,指针总是指向第一条记录。但可随着操作指针要移动,或用命令移动指针,改变当前记录。 定位命令是最直接的一种。即用GOTO命令或SKIP命令移动指针。 格式1:GO[TO] [ RECORD <n>] 定位到记录号为n的记录 GO[TO] TOP 定位到第1条记录 GO[TO] BOTTOM 定位到最后一条记录
例5: USE stu1 GO BOTTOM DISPLAY
GO TOP DISPLAY GO 3 disp
格式2:SKIP [±n] 功能:以当前记录为基准前移(-)或后移(+)N条记录。 说明:不选任选项,则默认n=+1。 注意:SKIP命令是相对移动,GOTO命令是绝对移动。 SKIP命令上移不能超过首记录,下移不能超过末记录。
3.4 记录数据的修改和删除 一、修改表数据 1、 EDIT修改命令 格式:EDIT 功能:显示需修改的记录。 例7
2、浏览修改命令BROWSE 格式:BROWSE[FIELDS<字段名表>][LOCK<数值表达式>][FREEZE<字段名>] 功能:BROWSE可打开一个全屏幕编辑窗口, 可浏览、修改、删除、追加记录。 说明: [LOCK<数值表达式>]指定屏幕左边锁定字段的个数,当屏幕左右平移时,这些锁定的字段保持在原来的位置不动,便于用户对照。 [FREEZE <字段名>] 使光标冻结在这个字段上,用户只能修改该字段的数据,其它字段只能显示不能修改,提高了数据的安全性和操作效率。
[FOR<表达式>]按指定条件进行判断,当<表达式>的值为真时,方可显示记录。[FOR<表达式>]按指定条件进行判断,当<表达式>的值为真时,方可显示记录。 例 8: use STU1 browse lock 1 freeze 数学
3、表运算替代命令 格式:REPLACE [<范围>] <字段名1> WITH <表达式1>[,<字段2> WITH <表达式2>[ADDITIVE]…][FOR<条件>][WHILE<条件>] 功能:用表达式的值代替命令中与之相对应的字段的内容,对满足<条件>和<范围>的记录可成批自动、快速地修改。 例1:use stu1
4、修改通用(General)字段 VFP支持微软公司的Windows对象链接和嵌入(OLE),MODIFY GENERAL命令可在任何活动表的当前记录编辑、修改装有OLE对象通用(General)字段。 格式:MODIFY GENERAL<通用字段> 菜单操作:直接用鼠标双击通用(General)字段, 打开了指定的通用字段的编辑窗口,用户可进行修改等操作.
二、删除表记录 1、给记录加删除标记 格式:DELETE [<范围>][WHILE<条件>][FOR<条件>] 功能:给要删除的记录作删除标记。 说明:本命令只给记录作删除标记.记录末删除,仍在表中. 命令操作时“*”即为删除标记,用菜单编辑窗口活动时,窗口中记录左边的方块钮,当为黑色时即是加了删除标记, 白色为恢复记录.
2、恢复加删除标记的记录 格式:RECALL [<范围>] [FOR<条件>] [WHILE<条件>] 功能:取消记录的删除标志。
3、彻底删除 格式:PACK 功能:删除当前表中加有删除标记的所有记录。 注:从当前表中删除记录后不可恢复。
4、表记录全部删除命令ZAP 格式:ZAP [IN<工作区号>|<表别名>] 功能:将所有的记录从表中删去,只留下表的结构。 说明:执行ZAP命令等于先执行DELETE ALL,然后再执行PACK。
以上的所有操作都可在浏览表后,操作主菜单中“表”进行。以上的所有操作都可在浏览表后,操作主菜单中“表”进行。
3.5 表的排序、索引和查询 物理整理 一、表的排序:对表记录进行物理整理,生成一个新表文件。 格式:SORT TO <文件名> ON <字段名1> [/A][/D][/C][,<字段名2>[/A][/C][/D]]… [<范围>] [FIELDS<字段表>] [FOR<条件>] [WHILE<条件>] 功能:按关键字段的值从小到大(升序/A)或从大到小(降序/D)将表的记录重新排列,生成一个新的表文件(.DBF)。 说明:(1)新表文件的结构与原表结构一样。 (2)选项>[/A]是升序,[/D]是降序。如有[/C]选是指按字典排列,大小写一样:0——9,Aa——Zz;如无[/C]选是指按ASC‖码顺序排列:0——9,A——Z,a——z。
(3)使用排序表文件时,必先打开。如添加了新记录,必须重新排序,生成一个新表文件。(3)使用排序表文件时,必先打开。如添加了新记录,必须重新排序,生成一个新表文件。 例1:
二、表的索引:对表记录进行逻辑整理,生成一个索引文件。二、表的索引:对表记录进行逻辑整理,生成一个索引文件。 1、索引的类型 逻辑整理 . IDX文件:只包含一单个索引。 压缩文件,选COMPACT] 类型 非压缩文件 . CDX文件 (复合索引文件) : 包含多个索引,每个索引叫 一个索引标识。 结构复合索引文件,其文件名与表名相同,打 开表时自动打开。 独立复合索引文件
2、索引文件的建立 建立.IDX索引文件: 格式1: INDEX ON <关键字表达式> TO <文件名> [COMPACT] [ADDITIVE] 功能:对当前表中各记录<关键字表达式>的值的大小,以升序进行记录逻辑上的重新排序,并将逻辑顺序存入TO后指定的索引文件名的索引文件中。 例2:
建立.CDX索引文件 格式2:INDEX ON <关键字表达式> TAG <标识名> [OF<文件名>] [FOR <条件>] 功能:对当前表根据关键字表达式的值以升序进行记录的逻辑排序,并将逻辑顺序存入与表文件名同名或[OF<文件名>]所指的复合索引文件的一个标识中。