VFP6.0第3章Visual Foxpro数据表的操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺省<文件名>表示关闭当前工作区中已经打开 的表。
14
(1)用EXCLUSIVE选项,则以独占方式打开表。 用SHARED选项,则以共享方式打开表,此时表结 构和表数据只读,不能编辑修改。 (2)已打开的一个表有一个指针与其对应,指针 所指的记录称为当前记录。表刚打开时,记录指针 指向第一个记录。 (3)表操作结束后及时关闭,以便将内存中的数 据保存到表中。
15
③关闭表的其它方法 ①CLEAR ALL:关闭所有的表,并选择工作区1,释放 所有内存变量、用户定义的菜单和窗口,不释放系统 变量。 ②CLOSE ALL:关闭所有打开的数据库和表,并选择 工作区,关闭各种设计器和项目管理器。 ③CLOSE DATABASE [ALL]:关闭当前数据库和其中的 表,若无打开的数据库,则关闭所有自由表,并选择 工作区1。带ALL则关闭所有数据库和其中的表,以及 所有已经打开的自由表。
第3章 Visual Foxpro数据表的操作
3.1 数据表的建立 3.1.1 Visual Foxpro 6.0中的命令 1.命令的组成 一条命令通常由命令动词和若干个短语组成。命令动
词表明该命令执行什么操作,短语用于说明命令的 操作对象、操作条件等,短语有时又称为子句。 2.命令的书写格式 Visual FoxPro 6.0命令的一般格式为: 命令动词[<范围>][[FIELDS]<字段名表>] [FOR<条件>]|[WHILE<条件>]
18
对通用型字段的输入,当光标位于该字段时, 双击鼠标左键或按下Ctrl+PgDn键进入编辑器,此 时可选定【编辑】菜单的【插入对象】命令,插入 图形、电子表格或声音等多媒体数据文件,然后关 闭编辑器,此时gen变为Gen(表示该字段非空)。
若要删除通用型字段的数据,选择编辑菜单的 “清除”命令。
17
3.输入数据 (1)创建表时立即输入数据。 (2)以追加方式输入数据。 (3)备注型数据输入。
对备注型字段的输入,当光标位于该字段时, 双击鼠标左键或按下Ctrl+PgDn键进入编辑器,输 入 完 字 符 型 数 据 后 关 闭 编 辑 器 , 此 时 memo 变 为 Memo(表示该字段非空)。 (4)通用型数据的输入
4
3.命令的使用
(1) 命令动词必须写在命令的最前面,而各短语的前后顺序可 以任意排列。
例如:LIST FIELDS 学号,姓名,性别 FOR YEAR(出生日 期)=1963
LIST FOR YEAR(出生日期)=1963 FIELDS 学号,姓名, 性别
以上两条命令执行结果相同。
(2) 命令动词与短语之间,短语与短语之间,短语的各部分之 间必须用空格分隔开。
命令方式关闭表 格式:USE
13
3.2 表的基本操作
3.2.1 数据表的打开和关闭 1.菜单方式打开表 注意:若要对表进行编辑修改操作,则必须选定 【独占】复选框 2.命令方式打开表 USE [<文件名> [EXCLUSIVE | SHARED]]
在当前工作区中打开或关闭表。打开时,若该 表有备注型或通用型字段,则自动打开同名的.FPT 文件。
26
功能:在当前打开表的指定记录中,将有关字段的值 用相应的表达式值来替换。若<范围>与<条件>等选项 都缺省,只对当前记录的有关字段进行替换。该命令 对<范围>内符合<条件>的记录用<表达式i>的值来替 换<字段i>。 说明: ADDITIVE:把对备注字段的替代内容追加到备注字段 原内容的后面。 ADDITIVE只对替换备注字段有用。 如果省略ADDITIVE,则用表达式的值改写备注字段原 有内容。
22
3.2.3 表记录的定位 记录指针用来定位记录,表打开时,记录指针
总是指向第一个记录。记录指针指向的记录称为当 前记录。RECNO()函数的值就是当前记录的记录号。 1.菜单方式定位记录
打开要使用的表,在”显示”菜单下,选择”浏 览”;打开”表”菜单,选择”转到记录” 2.命令方式定位记录 (1)绝对定位(GO)
29
例3.8 打开XSCJ表,向其中追加空白记录,用 REPLACE命令往该记录的学号字段填入 “2005020104”,姓名字段填入“胡军”。 use xsqk append blank repl 学号 with "2005020104",姓名 with "胡军"
注意:若一条命令中同时有FOR与WHILE子句, 则优先处理后者(WHILE子句)。
3
(5) FIELDS子句。FIELDS子句确定需要 操作的字段。该子句的保留字FIELDS在 某些命令(如LIST)中可以缺省,而〈字 段名表〉用来列出需要的字段,LIST命 令将按筛选得到的记录依次算出表达式 的值,并显示出来。 FIELDS子句缺省时显示除备注型、 通用型字段外的所有字段。
8
9
(3)字段宽度 只有字符型、数值型和浮点型等三种类型的
字段宽度可以改变,其它类型字段有唯一确定的 宽度,不能改变。
在建立表结构时,应根据要存储数据的实际 需要设定合适的宽度。
字符型字段宽度定义时应考虑所存放字符串 的最大长度. 例如,描述人的姓名字段,考虑到中国人的姓名 绝大多数为三个汉字,再顾及到少数人的四个汉 字,可以取姓名字段的宽度为8。
记录数据输入结束,按Ctrl+W保存退出,若放弃 已经输入的数据按Ctrl+Q。
19
3.2.2 表记录的显示
1.菜单方式
2.命令方式格式 格式1: BROWSE [FIELDS<字段名表 >][FOR|WHILE<条件>] 格式2:LIST/DISPLAY [<范围>][[FIELDS]<字 段名表>][FOR|WHILE <条件>][OFF][TO PRINTER[TO FILE<文件名>] 功能:显示已打开的表文件的记录内容,其中 BROWSE命令执行时打开“浏览”窗口。
16
④CLOSE TABLES [ALL]:关闭当前数据库中所有的表, 但不关闭数据库。若无打开的数据库,则关闭所有自 由表。带ALL则关闭所有数据库中所有的表和所有自 由表,但不关闭数据库。 除以上命令之外,还可通过退出Visual FoxPro来关 闭已打开的表。选定【文件】菜单中的【退出】命令, 或在【命令】窗口键入命令QUIT。
10
在定义数值型和浮点型字段宽度时,应考虑到正 负号和小数点,带小数的数值型字段宽度计算如 下:
字段宽度=1(正负号)+整数位数+1(小数点) +小数位数
例如,数值型字段宽度为7,小数位数为2位, 则能存放的最大数值为 9999.99,最小数值为999.99。
11
(4)索引 指定是否以该字段为关键字建立索引,索引主
1
说明:
(1) 命令动词。命令动词是VFP的命令的名字, 用来表示命令的操作,如“LIST”, “DISPLAY”等。
(2) 范围子句。用来确定执行该命令涉及的记录, 范围有4种限定方法。
ALL
所有记录
NEXT〈N〉 从当前记录起的N个记录
RECORD〈N〉 第N个记录
REST 从当前记录起到最后一个记录止的所有 记录
缺省范围子句时通常默认为ALL,例如LIST命令; 但也有例外,DISPLAY命令在缺省范围子句时 默认范围为当前记录。
2
(3) FOR子句。FOR子句的〈条件〉为逻辑表达 式,它指定选择记录的条件。若命令中还含有 范围子句,则在指定范围中筛选出符合条件的 记录。
(4) WHILE子句。该子句也用于指明操作条件, 但它仅在当前记录符合〈条件〉时开始依次筛 选记录,一旦遇到不满足条件的记录时就停止 操作。
23
格式:GO[TO][RECORD] <数值表达式> TOP|BOTTOM 功能: 将记录指针直接定位到指定的记录上. 例3.5 绝对定位命令的使用 use xsqk disp go 4 disp go top disp
24
(2)相对定位(SKIP) 格式:SKIP[<数值表达式>] 功能:从当前记录开始移动记录指针,<数值表达式 >表示移动记录的个数。 说明:负值表示向文件头移位ቤተ መጻሕፍቲ ባይዱ否则表示向文件尾 移位,<数值表达式>缺省时等同于1。
(3) 命令动词、各短语中的关键字及函数名都可以简写为前4 个字符,而且英文字母不区分大小写。如MODIFY可以写成 MODI或modi。
(4) 一条命令的长度可达8192个字符,当一行写不下时,可 在适当位置输入续行符“;”并按回车键换行,继续输入该 命令。
5
3.1.2 数据表的建立
Visual Foxpro 6.0将表分成数据库表和自 由表两种。自由表通常单独使用,与其他表的数 据之间没有联系,也不从属于任何数据库。
数据库表从属于某一数据库,一个数据库通 常有若干张表,表与表之间有关联。
表文件由两部分组成:“表结构”和“记录 数据”。
6
1.表结构的设计 二维表的各列称为字段,表的结构描述通
过对表中各个字段的属性定义来实现。 设计表结构即定义该表所包含的字段名,
类型,宽度,小数位数,索引和NULL。
表文件名 表文件名可使用不超过255个字符(字母、
27
例3.7 用REPLACE命令将学号“2005020102”的学生 的所有成绩都加5分。 close all use xscj replace 成绩 with 成绩+5 for 学号 =“2005020102”
(2)菜单方式
步骤:
①打开一个表
② “显示”→“浏览”
③ “表”→“替换字段(R)…”
28
3.2.5 表记录的添加
1.菜单方式追加表记录
打开表,进入“浏览”窗口,单击“表”菜单中 的“追加新记录”,若连续追加多条记录,选择 “显示”菜单中的“追加方式”。
2.命令方式追加表记录
格式: APPEND [BLANK]
功能:在当前使用的表文件后面追加记录。
使用BLANK子句能在表末尾追加一条空白记录, 留待以后添入数据。若缺省BLANK子句就会出现记录 编辑窗口,窗口内有空白的记录等待用户输入数据
汉字、数字或下划线)的名称,第一个字符必 须是字母、汉字或下划线。表文件的扩展名 为.dbf或.DBF,
7
(1)字段名 用来标识字段,以字母或汉字开头,由字母、汉 字、数字和下划线组成,但最多10个字符。
注意,同一个表中的字段名不能相同。 (2)字段类型
Visual FoxPro定义了13种字段数据类型,常用的 字段类型见下表所示。
21
例3.2 显示数据表XSCJ.DBF中的记录
use xscj list list to xscjt.txt 例3.3 显示表XSCJ.DBF中学号为”2005011202”的
学号与课程号记录信息. use xscj list fields 学号,课程号 for 学号="2005011202“ 例3.4显示数据表XSQK.DBF中的记录 Use xsqk Disp disp next 3 fields 姓名,性别
要用于记录排序。 (5)NULL
指定该字段可接收空值。
2.表结构的建立 (1)设置默认目录
方便用户对文件的操作和管理,一般将其放在 固定的文件夹中。 a.菜单操作方式 b.命令操作方式 set default to d:\vfp
12
(2)表结构的建立 a.菜单操作方式建立自由表 b.命令方式创建 格式1: CREATE<表名> 功能:打开表设计器,创建表。 格式2:CREATE TABLE<表名>(<字段名><字段 类型>(<字段宽度>[,<小数位数>)]…) 功能:不打开表设计器,在CREATE TABLE命令中 指定字段来购造表的结构。
20
说明: ①有“off”时,不显示记录号;有“to print”时,
显示内容送打印机打印;有“TO FILE<文件名>”则 表示将显示的内容存入指定的文件中保存起来。 ②<范围>缺省时,DISPLAY命令默认为当前记录,LIST 命 令 默 认 值 为 ALL 。 并 且 当 表 中 记 录 较 多 时 , DISPLAY是分页显示,而LIST命令以滚动方式显示。
例3.6相对定位命令的使用
clear
use xscj
skip 5
disp
8
skip -2
disp
list next 3
25
3.2.4 表记录的修改 1.在“浏览”窗口修改表记录 2.用REPLACE命令直接修改表记录 (1)命令方式 格式: REPLACE[<范围>] <字段1> WITH <表达式1> [ADDITIVE] [,<字段2> WITH <表达式 2>[ADDITIVE]……] [FOR <条件1>]|[WHILE <条件 2>]
14
(1)用EXCLUSIVE选项,则以独占方式打开表。 用SHARED选项,则以共享方式打开表,此时表结 构和表数据只读,不能编辑修改。 (2)已打开的一个表有一个指针与其对应,指针 所指的记录称为当前记录。表刚打开时,记录指针 指向第一个记录。 (3)表操作结束后及时关闭,以便将内存中的数 据保存到表中。
15
③关闭表的其它方法 ①CLEAR ALL:关闭所有的表,并选择工作区1,释放 所有内存变量、用户定义的菜单和窗口,不释放系统 变量。 ②CLOSE ALL:关闭所有打开的数据库和表,并选择 工作区,关闭各种设计器和项目管理器。 ③CLOSE DATABASE [ALL]:关闭当前数据库和其中的 表,若无打开的数据库,则关闭所有自由表,并选择 工作区1。带ALL则关闭所有数据库和其中的表,以及 所有已经打开的自由表。
第3章 Visual Foxpro数据表的操作
3.1 数据表的建立 3.1.1 Visual Foxpro 6.0中的命令 1.命令的组成 一条命令通常由命令动词和若干个短语组成。命令动
词表明该命令执行什么操作,短语用于说明命令的 操作对象、操作条件等,短语有时又称为子句。 2.命令的书写格式 Visual FoxPro 6.0命令的一般格式为: 命令动词[<范围>][[FIELDS]<字段名表>] [FOR<条件>]|[WHILE<条件>]
18
对通用型字段的输入,当光标位于该字段时, 双击鼠标左键或按下Ctrl+PgDn键进入编辑器,此 时可选定【编辑】菜单的【插入对象】命令,插入 图形、电子表格或声音等多媒体数据文件,然后关 闭编辑器,此时gen变为Gen(表示该字段非空)。
若要删除通用型字段的数据,选择编辑菜单的 “清除”命令。
17
3.输入数据 (1)创建表时立即输入数据。 (2)以追加方式输入数据。 (3)备注型数据输入。
对备注型字段的输入,当光标位于该字段时, 双击鼠标左键或按下Ctrl+PgDn键进入编辑器,输 入 完 字 符 型 数 据 后 关 闭 编 辑 器 , 此 时 memo 变 为 Memo(表示该字段非空)。 (4)通用型数据的输入
4
3.命令的使用
(1) 命令动词必须写在命令的最前面,而各短语的前后顺序可 以任意排列。
例如:LIST FIELDS 学号,姓名,性别 FOR YEAR(出生日 期)=1963
LIST FOR YEAR(出生日期)=1963 FIELDS 学号,姓名, 性别
以上两条命令执行结果相同。
(2) 命令动词与短语之间,短语与短语之间,短语的各部分之 间必须用空格分隔开。
命令方式关闭表 格式:USE
13
3.2 表的基本操作
3.2.1 数据表的打开和关闭 1.菜单方式打开表 注意:若要对表进行编辑修改操作,则必须选定 【独占】复选框 2.命令方式打开表 USE [<文件名> [EXCLUSIVE | SHARED]]
在当前工作区中打开或关闭表。打开时,若该 表有备注型或通用型字段,则自动打开同名的.FPT 文件。
26
功能:在当前打开表的指定记录中,将有关字段的值 用相应的表达式值来替换。若<范围>与<条件>等选项 都缺省,只对当前记录的有关字段进行替换。该命令 对<范围>内符合<条件>的记录用<表达式i>的值来替 换<字段i>。 说明: ADDITIVE:把对备注字段的替代内容追加到备注字段 原内容的后面。 ADDITIVE只对替换备注字段有用。 如果省略ADDITIVE,则用表达式的值改写备注字段原 有内容。
22
3.2.3 表记录的定位 记录指针用来定位记录,表打开时,记录指针
总是指向第一个记录。记录指针指向的记录称为当 前记录。RECNO()函数的值就是当前记录的记录号。 1.菜单方式定位记录
打开要使用的表,在”显示”菜单下,选择”浏 览”;打开”表”菜单,选择”转到记录” 2.命令方式定位记录 (1)绝对定位(GO)
29
例3.8 打开XSCJ表,向其中追加空白记录,用 REPLACE命令往该记录的学号字段填入 “2005020104”,姓名字段填入“胡军”。 use xsqk append blank repl 学号 with "2005020104",姓名 with "胡军"
注意:若一条命令中同时有FOR与WHILE子句, 则优先处理后者(WHILE子句)。
3
(5) FIELDS子句。FIELDS子句确定需要 操作的字段。该子句的保留字FIELDS在 某些命令(如LIST)中可以缺省,而〈字 段名表〉用来列出需要的字段,LIST命 令将按筛选得到的记录依次算出表达式 的值,并显示出来。 FIELDS子句缺省时显示除备注型、 通用型字段外的所有字段。
8
9
(3)字段宽度 只有字符型、数值型和浮点型等三种类型的
字段宽度可以改变,其它类型字段有唯一确定的 宽度,不能改变。
在建立表结构时,应根据要存储数据的实际 需要设定合适的宽度。
字符型字段宽度定义时应考虑所存放字符串 的最大长度. 例如,描述人的姓名字段,考虑到中国人的姓名 绝大多数为三个汉字,再顾及到少数人的四个汉 字,可以取姓名字段的宽度为8。
记录数据输入结束,按Ctrl+W保存退出,若放弃 已经输入的数据按Ctrl+Q。
19
3.2.2 表记录的显示
1.菜单方式
2.命令方式格式 格式1: BROWSE [FIELDS<字段名表 >][FOR|WHILE<条件>] 格式2:LIST/DISPLAY [<范围>][[FIELDS]<字 段名表>][FOR|WHILE <条件>][OFF][TO PRINTER[TO FILE<文件名>] 功能:显示已打开的表文件的记录内容,其中 BROWSE命令执行时打开“浏览”窗口。
16
④CLOSE TABLES [ALL]:关闭当前数据库中所有的表, 但不关闭数据库。若无打开的数据库,则关闭所有自 由表。带ALL则关闭所有数据库中所有的表和所有自 由表,但不关闭数据库。 除以上命令之外,还可通过退出Visual FoxPro来关 闭已打开的表。选定【文件】菜单中的【退出】命令, 或在【命令】窗口键入命令QUIT。
10
在定义数值型和浮点型字段宽度时,应考虑到正 负号和小数点,带小数的数值型字段宽度计算如 下:
字段宽度=1(正负号)+整数位数+1(小数点) +小数位数
例如,数值型字段宽度为7,小数位数为2位, 则能存放的最大数值为 9999.99,最小数值为999.99。
11
(4)索引 指定是否以该字段为关键字建立索引,索引主
1
说明:
(1) 命令动词。命令动词是VFP的命令的名字, 用来表示命令的操作,如“LIST”, “DISPLAY”等。
(2) 范围子句。用来确定执行该命令涉及的记录, 范围有4种限定方法。
ALL
所有记录
NEXT〈N〉 从当前记录起的N个记录
RECORD〈N〉 第N个记录
REST 从当前记录起到最后一个记录止的所有 记录
缺省范围子句时通常默认为ALL,例如LIST命令; 但也有例外,DISPLAY命令在缺省范围子句时 默认范围为当前记录。
2
(3) FOR子句。FOR子句的〈条件〉为逻辑表达 式,它指定选择记录的条件。若命令中还含有 范围子句,则在指定范围中筛选出符合条件的 记录。
(4) WHILE子句。该子句也用于指明操作条件, 但它仅在当前记录符合〈条件〉时开始依次筛 选记录,一旦遇到不满足条件的记录时就停止 操作。
23
格式:GO[TO][RECORD] <数值表达式> TOP|BOTTOM 功能: 将记录指针直接定位到指定的记录上. 例3.5 绝对定位命令的使用 use xsqk disp go 4 disp go top disp
24
(2)相对定位(SKIP) 格式:SKIP[<数值表达式>] 功能:从当前记录开始移动记录指针,<数值表达式 >表示移动记录的个数。 说明:负值表示向文件头移位ቤተ መጻሕፍቲ ባይዱ否则表示向文件尾 移位,<数值表达式>缺省时等同于1。
(3) 命令动词、各短语中的关键字及函数名都可以简写为前4 个字符,而且英文字母不区分大小写。如MODIFY可以写成 MODI或modi。
(4) 一条命令的长度可达8192个字符,当一行写不下时,可 在适当位置输入续行符“;”并按回车键换行,继续输入该 命令。
5
3.1.2 数据表的建立
Visual Foxpro 6.0将表分成数据库表和自 由表两种。自由表通常单独使用,与其他表的数 据之间没有联系,也不从属于任何数据库。
数据库表从属于某一数据库,一个数据库通 常有若干张表,表与表之间有关联。
表文件由两部分组成:“表结构”和“记录 数据”。
6
1.表结构的设计 二维表的各列称为字段,表的结构描述通
过对表中各个字段的属性定义来实现。 设计表结构即定义该表所包含的字段名,
类型,宽度,小数位数,索引和NULL。
表文件名 表文件名可使用不超过255个字符(字母、
27
例3.7 用REPLACE命令将学号“2005020102”的学生 的所有成绩都加5分。 close all use xscj replace 成绩 with 成绩+5 for 学号 =“2005020102”
(2)菜单方式
步骤:
①打开一个表
② “显示”→“浏览”
③ “表”→“替换字段(R)…”
28
3.2.5 表记录的添加
1.菜单方式追加表记录
打开表,进入“浏览”窗口,单击“表”菜单中 的“追加新记录”,若连续追加多条记录,选择 “显示”菜单中的“追加方式”。
2.命令方式追加表记录
格式: APPEND [BLANK]
功能:在当前使用的表文件后面追加记录。
使用BLANK子句能在表末尾追加一条空白记录, 留待以后添入数据。若缺省BLANK子句就会出现记录 编辑窗口,窗口内有空白的记录等待用户输入数据
汉字、数字或下划线)的名称,第一个字符必 须是字母、汉字或下划线。表文件的扩展名 为.dbf或.DBF,
7
(1)字段名 用来标识字段,以字母或汉字开头,由字母、汉 字、数字和下划线组成,但最多10个字符。
注意,同一个表中的字段名不能相同。 (2)字段类型
Visual FoxPro定义了13种字段数据类型,常用的 字段类型见下表所示。
21
例3.2 显示数据表XSCJ.DBF中的记录
use xscj list list to xscjt.txt 例3.3 显示表XSCJ.DBF中学号为”2005011202”的
学号与课程号记录信息. use xscj list fields 学号,课程号 for 学号="2005011202“ 例3.4显示数据表XSQK.DBF中的记录 Use xsqk Disp disp next 3 fields 姓名,性别
要用于记录排序。 (5)NULL
指定该字段可接收空值。
2.表结构的建立 (1)设置默认目录
方便用户对文件的操作和管理,一般将其放在 固定的文件夹中。 a.菜单操作方式 b.命令操作方式 set default to d:\vfp
12
(2)表结构的建立 a.菜单操作方式建立自由表 b.命令方式创建 格式1: CREATE<表名> 功能:打开表设计器,创建表。 格式2:CREATE TABLE<表名>(<字段名><字段 类型>(<字段宽度>[,<小数位数>)]…) 功能:不打开表设计器,在CREATE TABLE命令中 指定字段来购造表的结构。
20
说明: ①有“off”时,不显示记录号;有“to print”时,
显示内容送打印机打印;有“TO FILE<文件名>”则 表示将显示的内容存入指定的文件中保存起来。 ②<范围>缺省时,DISPLAY命令默认为当前记录,LIST 命 令 默 认 值 为 ALL 。 并 且 当 表 中 记 录 较 多 时 , DISPLAY是分页显示,而LIST命令以滚动方式显示。
例3.6相对定位命令的使用
clear
use xscj
skip 5
disp
8
skip -2
disp
list next 3
25
3.2.4 表记录的修改 1.在“浏览”窗口修改表记录 2.用REPLACE命令直接修改表记录 (1)命令方式 格式: REPLACE[<范围>] <字段1> WITH <表达式1> [ADDITIVE] [,<字段2> WITH <表达式 2>[ADDITIVE]……] [FOR <条件1>]|[WHILE <条件 2>]