1、1第第4章章 自由表的建立与操作自由表的建立与操作王兰王兰2011.9.232主要内容主要内容n建立表建立表 n向表中加入记录向表中加入记录 n数据的显示和修改方式数据的显示和修改方式 n控制字段和记录的访问控制字段和记录的访问 n数据表中记录的定位数据表中记录的定位 n删除和恢复表中的数据删除和恢复表中的数据n快速修改表中的数据快速修改表中的数据 34.1 建立表建立表 4.1.1 定义表的结构定义表的结构 在在Visual FoxProVisual FoxPro系统中,一张二维表对应一个系统中,一张二维表对应一个数据表,称为表文件(数据表,称为表文件(TableTable)。)。定义数据表
2、的结构,就是定义数据表的字段个数、定义数据表的结构,就是定义数据表的字段个数、字段名、字段类型、字段宽度及是否以该字段建立索字段名、字段类型、字段宽度及是否以该字段建立索引等。引等。一张二维表由表名、表头、表的内容三部分组成,一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。记录三要素构成。4表表4-1信息中心专门人才基本情况表文件的结构信息中心专门人才基本情况表文件的结构 字段名字段名 字段类型字段类型字段宽度字段宽度小数点小数点索引否索引否编编 号号字符型字符型8主主 索索 引引 姓姓 名
3、名字符型字符型8普通索引普通索引性性 别别字符型字符型2出生日期出生日期日期型日期型8候选索引候选索引 工资现状工资现状数值型数值型102党党 员员 否否逻辑型逻辑型1工作简历工作简历备注型备注型4照照 片片通用型通用型454.1.2 利用表设计器创建表利用表设计器创建表 两种方法,分别是:两种方法,分别是:一、系统菜单法。一、系统菜单法。二、使用二、使用create命令。命令。6利用表设计器创建表的操作步骤利用表设计器创建表的操作步骤文件文件新建新建新建文件新建文件 表的名字表的名字表设计器表设计器字段名字字段名字字段类型字段类型字段宽度字段宽度字段索引字段索引保存保存7二、二、create
4、命令命令l 使用使用create命令创建表,命令为命令创建表,命令为 create rcda l 使用使用create table命令可直接创建表及定义结命令可直接创建表及定义结构,命令为:构,命令为:Create Create Table (类型类型(长度长度),类型类型(长度长度)Create table rcda(编号编号 character(8),姓名姓名 character(8),;性别性别 character(2),出生日期出生日期 data,工资现状工资现状 numeric(10,2),;工作简历工作简历 memo,照片照片 general)84.1.3 表的打开与关闭表的打开与
5、关闭 打开:打开:Use .dbf In /Again Alias Exclusive/Noupdate Shared In:指定打开表的工作区号;:指定打开表的工作区号;Again:可以在某一工作区中打开已在其他工作区中打开的表。可以在某一工作区中打开已在其他工作区中打开的表。Alias:打开表的同时定义表的别名;:打开表的同时定义表的别名;Exclusive:以独占方式打开表;:以独占方式打开表;Noupdate shared:以只读方式打开表。:以只读方式打开表。关闭:关闭:close all 关闭所有打开的表;关闭所有打开的表;close tables 关闭当前数据库中所有打开的表;关
6、闭当前数据库中所有打开的表;close tables all 关闭所有数据库中所有打开的表及自由表。关闭所有数据库中所有打开的表及自由表。9修改表结构的操作步骤修改表结构的操作步骤-菜单菜单文件打开表的名字表设计器增加删除修改保存4.1.4 利用表设计器修改表结构利用表设计器修改表结构修改表结构的操作步骤修改表结构的操作步骤-命令命令命令格式:命令格式:modify structure命令功能:修改当前数据库中当前表的结构。命令功能:修改当前数据库中当前表的结构。在表在表“rcda”中插入一个新字段中插入一个新字段“党员否党员否”?104.1.5 利用表向导创建表利用表向导创建表 使用表向导创
7、建表,就是把已有的表作为使用表向导创建表,就是把已有的表作为“样样本本”,在向导的引导下,通过筛选、修改操作完成新,在向导的引导下,通过筛选、修改操作完成新表的创建过程。表的创建过程。例:把表例:把表“rcda”作为表作为表“样本样本”,创建一个新的,创建一个新的数据表数据表“rcda1”。其中:表其中:表“rcda1”的结构含的结构含“编号编号”、“性别性别”、“工资现状工资现状”和和“照片照片”字段,这些字段的属性与表字段,这些字段的属性与表“rcda”中的中的“编号编号”、“性别性别”、“工资现状工资现状”和和“照片照片”字段相同。字段相同。11操作步骤如下:操作步骤如下:(1)“文件文
8、件”菜单菜单“新建新建”得到如下图所示得到如下图所示12(2)选择选择“表表”,再按,再按“向导向导”按钮,进入表按钮,进入表向导的步骤向导的步骤1窗口,如下图所示:窗口,如下图所示:13(3)选择样表选择样表“rcda”,按,按“加入加入”按钮。按钮。14(4)点击点击“下一步下一步”,确定是否将表添加到数,确定是否将表添加到数据库中。据库中。15(5)点击点击“下一步下一步”,对已选字段进行修改和,对已选字段进行修改和确认确认166)点击点击“下一步下一步”,为表建立索引,现在可,为表建立索引,现在可建可不建。建可不建。17(7)点击点击“下一步下一步”18(8)点击点击“完成完成”,输入
9、新建表的名字,输入新建表的名字“rcda1”,然后保存。然后保存。194.2 向表中加入记录向表中加入记录 4.2.1 创建表时立即输入数据创建表时立即输入数据 在创建表时,如果表中所有字段的属性已定义在创建表时,如果表中所有字段的属性已定义完成,可按完成,可按“确定确定”按钮保存表结构,同时打开按钮保存表结构,同时打开“系统系统”窗口,显示窗口,显示“现在输入数据吗?现在输入数据吗?”对话。对话。选择选择“是是”按钮,可以立即进入表按钮,可以立即进入表“浏览浏览”或表或表“编辑编辑”窗口,在该窗口便可完成表中数据的输入。窗口,在该窗口便可完成表中数据的输入。204.2.2 以追加方式输入数据
10、以追加方式输入数据 在创建表结构时,如果没有选择立即方式向表在创建表结构时,如果没有选择立即方式向表输入数据,可以用追加数据方式向表输入数据。输入数据,可以用追加数据方式向表输入数据。两种方式:两种方式:一、菜单方式一、菜单方式 二、命令方式二、命令方式 Append Blank blankAppend Blank blank表示空白记录。表示空白记录。21以追加方式输入数据的操作步骤以追加方式输入数据的操作步骤显示浏览追加显示浏览追加编辑22编号编号姓名姓名性别性别出生日期出生日期工资现状工资现状党员否党员否工作简历工作简历照片照片bj10001刘伟箭刘伟箭男男1960.08.232000.
11、00T(略略)(略略)bj11002刘简捷刘简捷男男1958.12.311800.00T(略略)(略略)gz05001藤波海藤波海男男1956.04.141160.00F(略略)(略略)gz05002杨行东杨行东男男1949.03.301260.00F(略略)(略略)jl04001林惠繁林惠繁女女1969.02.038000.00T(略略)(略略)jl04010黄晓远黄晓远男男1970.08.12 10000.00F(略略)(略略)sy02030李鹏程李鹏程男男1946.02.083000.00F(略略)(略略)sy02035王国民王国民男男1935.05.205000.00F(略略)(略略)
12、sh01001金银桥金银桥女女1969.01.242000.00F(略略)(略略)sh01002林立荞林立荞女女1964.08.164500.00F(略略)(略略)234.2.3 备注型数据的输入备注型数据的输入 在在“编辑编辑”窗口或窗口或“浏览浏览”窗口,把光标移到备窗口,把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。注型字段下双击,即可进入备注字段的编辑窗口。在这个窗口内,可以输入或修改备注型数据。在这个窗口内,可以输入或修改备注型数据。4.2.4 通用型数据的输入通用型数据的输入 在在“编辑编辑”窗口或窗口或“浏览浏览”窗口,把光标移到通窗口,把光标移到通用型字段下双击,即可
13、进入通用型字段的数据编辑用型字段下双击,即可进入通用型字段的数据编辑窗口。窗口。将上表中的将上表中的”通用型通用型“数据和数据和”备注型备注型“数据输入到表数据输入到表中。中。244.3 数据的显示和修改方式数据的显示和修改方式 4.3.1 用编辑方式显示和修改数据用编辑方式显示和修改数据 在表在表“编辑编辑”窗口,可以采用窗口,可以采用“编辑编辑”方式显示方式显示和修改表中的数据。和修改表中的数据。4.3.2 用浏览方式显示和修改数据用浏览方式显示和修改数据 在表在表“浏览浏览”窗口,可以采用窗口,可以采用“浏览浏览”方式显示和方式显示和修改表中的数据。修改表中的数据。4.3.3 用两种方式
14、同时显示和修改数据用两种方式同时显示和修改数据 在表在表“浏览浏览”窗口,左下角有一个小竖黑条。窗口,左下角有一个小竖黑条。254.3.4 用用BrowseBrowse命令和命令和ListList命令浏览、修改数命令浏览、修改数据据 Browse Browse Fields Fields For For 命令功能:在浏览窗口中显示或修改当前表。命令功能:在浏览窗口中显示或修改当前表。其中,其中,fields:指对包含字段名表所列的字段进行操作。:指对包含字段名表所列的字段进行操作。for:指对满足条件的记录进行操作。:指对满足条件的记录进行操作。例:在表例:在表”浏览浏览“窗口,浏览表窗口,浏
15、览表”rcda“中的全部数据。中的全部数据。Use rcda exclusiveBrowse last264.3.4 用用BrowseBrowse命令和命令和ListList命令浏览、修改命令浏览、修改数据数据List/Display Fields For To Printer To File 命令功能:在显示器上按系统格式显示当前表中的数据。命令功能:在显示器上按系统格式显示当前表中的数据。其中:其中:to printer:显示结果在显示器和打印机上同时输出。:显示结果在显示器和打印机上同时输出。to file:显示结果在显示器输出,同时写入数据表中。:显示结果在显示器输出,同时写入数据表中
16、。例:在显示器上显示表例:在显示器上显示表”rcda“中的所有男同志的数据。中的所有男同志的数据。Use rcda exclusive list for 性别性别=”男男“274.4 控制字段和记录的访问控制字段和记录的访问4.4.1 限制对字段的访问限制对字段的访问 限制字段的访问,可以通过设置限制字段的访问,可以通过设置“字段选择器字段选择器”来完成。操作方法是:来完成。操作方法是:打开要使用的表,在打开要使用的表,在“工作区属性工作区属性”窗口,利窗口,利用用“字段选择器字段选择器”筛选出有用的字段,筛选出有用的字段,步骤:步骤:”显示显示“-”-”浏览浏览“-表表属性属性-工作区窗口工
17、作区窗口-字段筛选字段筛选 或在对记录操作的命令中选择或在对记录操作的命令中选择“Fields Fields”短语短语。限制对字段的访问,实质上是限定表中数据的限制对字段的访问,实质上是限定表中数据的”列列“数。数。28限制对字段的访问的操作步骤限制对字段的访问的操作步骤文件 打开 表的名字显示浏览表属性字段筛选字段选择器保存294.4.2 限制对记录的访问限制对记录的访问 在对记录进行访问时,用户可以根据需要限定表中记在对记录进行访问时,用户可以根据需要限定表中记录的使用范围,只对某一时期或某一问题的有用数据进行录的使用范围,只对某一时期或某一问题的有用数据进行操作。操作。限制记录的访问方法
18、是:在限制记录的访问方法是:在“工作区属性工作区属性”窗口,选窗口,选择择“数据过滤器数据过滤器”文本框,输入记录的筛选条件;或按文文本框,输入记录的筛选条件;或按文本框后面的按钮,进入本框后面的按钮,进入“表达式生成器表达式生成器”窗口,在这一窗窗口,在这一窗口输入记录的筛选条件,再确认限制访问的记录即可结束口输入记录的筛选条件,再确认限制访问的记录即可结束操作。操作。限制对记录的访问。实质上市限定数据表中的限制对记录的访问。实质上市限定数据表中的”行行“数。数。30限制对记录的访问的操作步骤限制对记录的访问的操作步骤文件 打开表的名字显示浏览表属性数据过滤器浏览保存31数据表中的定位的操作
19、步骤数据表中的定位的操作步骤文件 打开表的名字显示浏览表转到记录第一个定位确定或或一、菜单方式一、菜单方式324.5 数据表中记录的定位数据表中记录的定位 二、命令方式二、命令方式 (1)(1)Go Top 确定当前表中第一个记录为当前记录。确定当前表中第一个记录为当前记录。(2)(2)Go Bottom 确定当前表中最后一个记录为当前记录。确定当前表中最后一个记录为当前记录。(3)Go(3)Go 确定当前表中记录号与确定当前表中记录号与 值相同的记录为当前记值相同的记录为当前记录。录。(4)Skip(4)Skip 将当前表中记录指针相对移动若干个记录,当将当前表中记录指针相对移动若干个记录,
20、当 的值大于的值大于0 0时,向下移动;否则,向上移动。时,向下移动;否则,向上移动。33二、命令方式二、命令方式(5)Locate(5)Locate For For 确定当前表中指定确定当前表中指定 内内,第一个满足第一个满足 的记录为当前记录。的记录为当前记录。(6)Continue(6)Continue 只能与只能与locatelocate一同使用,将满足一同使用,将满足locatelocate条件的下一个记录确定当前记录。条件的下一个记录确定当前记录。34Use rcda.dbf exclusiveBrowse lastGo bottomBrowse lastGo 5Browse la
21、stSkip+1Browse lastLocate all for.not.党员否党员否Browse lastSkip-1Browse lastLocate all for 性别性别=“女女”Browse lastGo topBrowse last354.6 删除和恢复表中的数据删除和恢复表中的数据 4.6.1 逻辑删除表中的记录逻辑删除表中的记录 逻辑删除就是给暂时不使用的记录加一个删除逻辑删除就是给暂时不使用的记录加一个删除标记。另外,对需要彻底删除的记录,也必须要先标记。另外,对需要彻底删除的记录,也必须要先做逻辑删除后再做物理删除。做逻辑删除后再做物理删除。Delete Delete
22、For For 4.6.2 恢复表中逻辑删除的记录恢复表中逻辑删除的记录 对加上逻辑删除标记的记录,如果还想恢复其对加上逻辑删除标记的记录,如果还想恢复其使用权,可对其进行恢复记录的操作。使用权,可对其进行恢复记录的操作。Recall Recall For For 364.6.3 物理删除表中的记录物理删除表中的记录 物理删除就是把无效的记录彻底从磁盘中删除掉。物理删除就是把无效的记录彻底从磁盘中删除掉。若要想彻底删除表中部分无效的数据,必须先做逻若要想彻底删除表中部分无效的数据,必须先做逻辑删除后再做物理删除,若要想彻底删除表中全部辑删除后再做物理删除,若要想彻底删除表中全部无效的数据,也可
23、直接做物理删除。无效的数据,也可直接做物理删除。PackPack Zap Zap 374.7 快速修改表中的数据快速修改表中的数据(1)Edit/Chang(1)Edit/Chang命令命令 Edit/Chang Edit/Chang Fields Fields For For 修改当前表中指定修改当前表中指定 ,满足,满足 的记录中的记录中的指定字段的数据。的指定字段的数据。(2)Replace(2)Replace命令命令Replace Replace With With 1 With With n With With For For 修改当前表中指定修改当前表中指定 ,满足,满足 的记录的
24、记录中的指定字段的数据,用表达式的值替换对应的字段值。中的指定字段的数据,用表达式的值替换对应的字段值。38例:例:(1)use rcda.dbf exclusive browse last(2)edit all fields 性别性别,姓名姓名 for 性别性别=”女女“.and.姓名姓名=“金银桥金银桥”将其性别改为男将其性别改为男(3)browse(4)chang all fields 姓名姓名 for substr(姓名姓名,1,2)=“林林”将姓名为将姓名为”林立荞林立荞“的记录修改为的记录修改为”林立骄林立骄“(5)bowse(6)replace all 工资现状工资现状 with 工资现状工资现状+1000 browse