VisualFoxPro数据库操作第4章VisualFoxPro数据库操作数据库任务1数据库表和自由表任务2索引与排序任务3多工作区操作任务5数据完整性任务4任务1数据库阶段1创建数据库阶段2打开数据库阶段3修改数据库阶段4关闭数据库阶段5删除数据库阶段1创建数据库创建数据库有两种方法,即使用【数据库设计器】创建和在命令窗口中执行命令创建。(1)执行【文件】【新建】菜单命令,系统将自动弹出【新建】对话框。(2)还可以在命令窗口中使用命令创建,其格式为:CREATEDATABASE[数据库文件名]。阶段2打开数据库(1)在VisualFoxPro环境中,执行【文件】【打开】菜单命令,系统将自动弹出【打开】对话框,然后选择要打开数据库,然后单击【确定】按钮,即可打开所选择的数据库。(2)打开数据库的命令格式为:OPENDATABASE[数据库文件名|?][NOUPDATE][EXCLUSIVE|SHARED]阶段3修改数据库数据库的修改操作,是通过【数据库设计器】来完成的,打开一个数据库会自动打开【数据库设计器】工具条,通过【数据库设计器】工具条可以对数据库进行数据对象的建立、修改和删除等操作。也可以在【数据库设计器】中,单击鼠标右键进行相关的操作。用命令打开【数据库设计器】的格式为:MODIFYDATABASE[数据库文件名|?][NOWAIT][NOEDIT]阶段4关闭数据库将要关闭的数据库设置为当前数据库,然后,执行【文件】【关闭】菜单命令,或者单击【数据库设计器】右上角的关闭图按钮。用命令关闭【数据库】的格式为:CLOSEDATABASE阶段5删除数据库VisualFoxPro的数据库文件中,并不真正含有数据库表及其他数据库对象,数据库文件中只是记录了相关文件的信息。而这些真正的数据库表及其他数据库对象都是独立地存放在磁盘上的。通常,在删除数据库文件后,并没有删除数据库中的表及其他文件对象。用命令删除【数据库】的格式为:DELETEDATABASE[数据库文件名|?][DELETETABLES][RECYCLE]任务2数据库表和自由表阶段1创建表阶段2输入数据阶段3打开与关闭表阶段4修改表结构阶段5浏览和显示表阶段6定位记录阶段7删除记录阶段8替换记录的数据阶段1创建表创建表之前,首先要定义表的结构,包括字段名、字段类型、字段宽度、小数位数等。阶段2输入数据向表输入数据可以在创建表时向表中输入数据,也利用追加方式向表中输入数据。阶段3打开与关闭表1.打开表打开表通常有两种方式,一种是通过菜单来完成,另一种是通过命令来完成。其命令格式为:USE表名[NOUPDATE][EXCLUSIVE|SHARED]2.关闭表为了保证更新后的内容能够完整地写入所操作的表中,在对表操作完成后,应当及时关闭该表,可以通过使用USE命令关闭该表。阶段4修改表结构在需要对表结构进行调整时,可以对表结构进行修改,修改表结构可以在打开表之后,执行菜单命令【显示】【表设计器】,系统将弹出【表设计器】对话框。此时,用户就可以在该对话框内进行表结构的修改。修改表结构的命令格式为:MODIFYSTRUCTURE阶段5浏览和显示表1.浏览表浏览表的内容有两种方式,即【编辑】方式和【浏览】方式,其对应的命令分别是BROWSE和EDIT。2.显示表在VisualFoxPro的主窗口中,可以将表的全部或部分记录显示出来。其命令格式为:LIST|DISPLAY[[FIELDS]字段名表][范围][FOR条件]阶段6定位记录在VisualFoxPro6.0中,当表打开时,当前记录为第一条记录。可以对表中的数据进行定位查找,记录指针所指的记录即为当前被操作的记录,该记录称为当前记录。记录的定位,可以通过菜单命令完成,也可以通过在命令窗口输入命令来完成。1.GO命令作用:直接定位记录。命令格式为:GO记录号|TOP|BOTTOM各参数含义如下:(1)记录号:选项直接按记录号的物理位置定位。(2)TOP:指向表头。(3)BOTTOM:指向表尾。2.SKIP命令作用:相对定位记录。当记录指针相对当前位置移动时,利用SKIP命令向前或向后移动若干条记录位置。命令的格式为:SKIP[记录数]3.LOCATE命令作用:记录的查询定位。按查询条件定位记录的指针。命令的格式为:LOCATE[范围]FOR条件表达式阶段7删除记录在VisualFoxPro中,可以对不用的记录进行删除,删除记录分为逻辑删除和物理删除两种。1.逻辑删除逻辑删除记录,顾名思义,不真正地将记录删除而是在记录前添加删除标记。但是如果将记录彻底删除,必须要在该记录前添加删除标记。2.物理删除物理删除就是将逻辑删除的记录彻底从磁盘上删除。彻底删除记录必须先逻辑删除,然后再做物理删除且被删除的记录将不能恢复。物理删除的命令是PACK,或者执行【表】【彻底删除】菜单命令来完成。若要将表中的所有记录全部删除,可执行ZAP命令一次性物理删除表中全部记录。3.恢复记录物理删除的记录是不可恢复的,但是被逻辑删除的记录是可以恢复的。恢复的命令是RECALL命令格式为:RECALL[范围][FOR条件表达式]当RECALL不带任何命令选项时,恢复当前被删除的记录阶段8替换记录的数据替换记录的数据,可以通过执行【表】【替换字段】菜单命令,也可以通过在命令窗口中输入命令进行替换其命令格式为:REPLACE[范围]字段名1WITH表达式1[,字段名2WITH表达式2,…][FOR条件]任务3索引与排序阶段1索引的分类阶段2建立索引阶段3使用索引阶段4记录排序阶段1索引的分类在VisualFoxPro6.0中,共有四种索引类型,分别是:主索引、候选索引、普通索引和唯一索引1.主索引主索引是指定字段或表达式中不允许出现重复值的索引,主索引可以起到主关键字的作用,即其索引表达式的值是惟一能够标识每个记录处理顺序的。一个表只能有一个主关键字,所以一个表只能创建一个主索引。2.候选索引候选索引和主索引具有相同的特性,一个数据表中可以建立多个候选索引。候选索引要求字段值具有“唯一性”。3.普通索引普通索引的特点是:既可以允许字段中出现重复值,也可以在索引项中出现重复值。一个数据表中可以建立多个普通索引。4.唯一索引唯一索引与其他索引不同的是其“唯一性”是指索引项的唯一,不是字段值的唯一。在一个数据表中可以建立多个唯一索引。阶段2建立索引建立索引的方式通常有两种:一种是利用表设计器建立;另一种是通过在命令窗口中输入命令建立。1.利用表设计器建立索引(1)打开【学生成绩管理】数据库,选择【学生档案】表,执行【显示】【表设计器】菜单命令。(2)在【表设计器】窗口的字段选项卡,单击【学号】和【年龄】字段的索引标识,设置索引标记,如下图所示。(3)在【表设计器】窗口中,单击【索引】选项卡,可以根据需要设置或输入索引类型、索引名、索引表达式。(4)单击【确定】按钮,即可完成建立索引的操作,如下图所示。2.利用命令创建索引利用命令方式可以创建普通索引、候选索引和惟一索引。建立索引的命令是INDEX,其格式为:IN0DEXON索引表达式TOIDX索引文件名|TAG索引名OF[CDX复合索引文件名][FOR条件表达式][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]阶段3使用索引索引文件的特点是必须先打开再使用。单索引和非结构复合索引文件必须由用户打开,结构复合索引文件可以随着表的打开而自动打开。在索引文件打开后,当要使用某个具体索引项进行查询时,首先要指定索引标识,可以利用菜单方式完成,也可以利用SETORDER命令完成。1.利用菜单方式指定索引【学生档案】表包括索引名为【学号】的主索引,索引名为【姓名】的候选索引,索引名为【年龄】的普通索引。利用菜单为【学生档案】表指定索引顺序为【年龄】。(1)打开【学生档案】表,在建立完索引后,进入表的浏览窗口,如图所示。(2)在VisualFoxPro6.0中,执行菜单命令【表】【属性】,系统将自动弹出【工作区属性】对话框,如图所示。(3)在【工作区属性】对话框中,单击【索引顺序】下拉列表,选择索引顺序为【年龄】,单击【确定】按钮,则表中的数据按【年龄】值升序显示,如图所示。2.利用命令方式指定索引在索引文件打开的情况下,用SETORDER命令指定索引的格式:SETORDERTO索引名|索引序号[ASCENDING|DESCENDING]USE学生SETORDERTO年龄BROWSE阶段4记录排序记录的排序是根据不同的字段对当前表的记录做出不同的排列,从而产生一个排序过的新表。排序的命令是SORT,其格式为:SORTTO文件名ON字段1[/A|/D][/C][,…][FIELDS字段名表][范围][FOR条件]任务4数据完整性阶段1实体完整性阶段2域完整性阶段3参照完整性阶段1实体完整性在VisualFoxPro6.0中,实体完整性是保证表中记录“唯一”的特性,即在一个表中不允许有重复的记录出现。保证实体完整性的方法是利用主关键字或候选关键字来保证表中的记录“唯一”。在VisualFoxPro6.0中,将主关键字称为主索引,将候选关键字称为候选索引,主索引和候选索引具有相同的作用。若一个字段的值或几个字段的值能够唯一标识表中的一条记录,则称为候选关键字。阶段2域完整性域完整性是对某一具体应用所涉及的数据提出的约束性条件,数据类型的定义属于域完整性的范畴,此外,还可以用一些域约束规则来进一步保证域完整性。域的完整性还可以靠域约束规则来进行约束,域约束规则也称作字段有效性规则。在插入或修改字段值时被激活该结束条件时,可以立即给出提示。有效性规则包括【规则】、【信息】和【默认值】,这些规则的设定是在【表设计器】的字段组合框中来完成的。建立字段有效性规则的一般步骤如下:(1)首先,选择要定义字段有效性规则的字段。(2)然后,在【字段有效性】规则选择卡中,分别输入和编辑【规则】、【信息】和【默认值】等项目。阶段3参照完整性参照完整性是将表与表之间建立起某种约束关系,因此,在建立参照完整性之前首先要建立表之间的联系。1.建立表之间的联系表与表之间的联系实质上就是基于索引建立的一种永久关系,这种联系被作为数据库的一部分保存在数据库中。当在【查询设计器】或【视图设计器】中使用表时,将以这个永久性联系作为表之间默认的连接条件保持数据库表与表之间的联系。2.设置参照完整性约束在数据库中的表之间建立永久联系之后,还可以设置其参照完整性。对于具有永久联系的数据库表,在设置其参照完整后,每当对一个表插入、删除或修改数据时,将自动参照引用相互关联的另一个表中的数据,以检查对表的数据操作是否正确。任务5多工作区操作阶段1多工作区的概念阶段2多工作区的用法阶段1多工作区的概念多工作区是为了控制有关系的表之间记录指针的相互关联,在使用临时联系时,需要临时同时打开多个表,这种情况下的操作就是多工作区操作。选择工作区的命令是:SELECT工作区号|工作区别名其各参数的含义如下:(1)工作区号:工作区号的取值范围是1~32767之间的正整数。(2)工作区别名:可以是系统定义的别名,即1~10号工作区的别名分别为字母A~J;可以将表名作为工作区的别名;也可以用命令重新定义别名,使用ALIAS命令实现。阶段2多工作区的用法VisualFoxPro6.0默认情况下,所有的表的操作都在1号工作区进行。工作区的区号还可以取值为0,表示选择尚未被使用的最小工作区号。下面是几种切换工作区的方法:(1)用字母表示USE成绩SELEE(2)在1号工作区打开表CLOSEALLSELECT1(3)选择的工作区号是未被使用的最小区号3USE成绩SELE0本章小结本章从如何进行数据库的创建、打开、修改、关闭和删除操