第三章 visual foxpro数据库及其操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章visualfoxpro数据库及其操作第三章visualfoxpro数据库及其操作Visualfoxpro数据库及其建立建立数据库表表的基本操作索引数据完整性自由表多个表的同时使用一、visualfoxpro数据库及其建立在visualfoxpro中数据库可以说是一个逻辑上的概念和手段,它通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。数据库文件名:.dbc数据库备注文件名:.dct数据库索引文件名:.dcx1、建立数据库:常用的建立数据库的方法有三种:在项目管理器中建立数据库;从”新建”对话框建立数据库;用命令交互建立数据库;用命令交互建立数据库:creatdatabase数据库名说明:(1)使用命令建立数据库后,数据库已处于打开状态。(2)三种方式建立数据库都可能覆盖已存在的数据库-----注意与安全设置命令:setsafetyon/off状态有关2、使用数据库打开数据库的方式也有三种:在项目管理器中打开数据库从“打开”对话框打开数据库用命令打开数据库打开数据库的命令:opendatabase数据库名[exclusive|shared][noupdate][validate]说明:exclusive:以独占方式打开数据库.shared:以共享方式打开数据库.noupdate:以只读方式打开数据库validate:检查在数据库中引用的对象是否合法.注意:打开一个表并不一定要打开数据库;在同一时刻可以打开多个数据库,但只有一个是当前数据库;可通过set命令设置当前数据库:setdatabaseto[数据库名]3、修改数据库修改数据库不是对数据库文件(.dbc,.dct,.dcx)的修改,而是在数据库设计器中对各种数据库对象的建立、修改和删除操作.打开数据库设计器的方法:从项目管理器中打开从打开对话框中打开用命令打开数据库设计器modifydatabse数据库名[nowait][noedit]Nowait:只在程序中使用,在打开数据库设计器后程序继续执行,不需要关闭数据库设计器Noedit:只是打开数据库设计器,而禁止对数据库进行修改.4、删除数据库移去:从项目管理器中删除数据库,但并不从磁盘上删除相应的数据库文件(.dbc);删除:从项目管理器中删除数据库,并从磁盘上删除相应的数据库文件(.dbc);不管是移去还是删除数据库,都没有删除数据库中的表等对象。删除数据库的方式:(1)从项目管理器中删除;(2)使用命令;删除数据库的命令:deletedatabase数据库名[deletetables][recycle]其中:deletetables:表示在删除数据库文件的同时从磁盘上删除该库所包含的表(.dbf)recycle:表示将删除的数据库文件和表文件等放入回收站中,必要时,可以还原它们。二、建立数据库表1、在数据库中建立表:一个数据库中的数据就是表的集合,一个表对应于磁盘上的一个扩展名为.dbf的文件;若有备注型或通用型字段则还会有一个.fpt文件;建表涉及到的一些基本概念:字段名:汉字或西文字符字段类型和宽度:空值:就是缺值或不确定值,与0和空字符串等具有不同的含义;在数据库设计器中创建表使用命令创建表:opendatabase库名create表名打开表的命令:use表名2、修改表结构在数据库设计器中修改表结构:使用命令修改表结构:use表名modifystructure三、表的基本操作表的基本操作包括向表中添加新记录,删除无用的记录,修改有问题的记录、查看记录等。1、使用browse浏览器操作表use表名browse2、增加记录命令:append[blank]insert[before][blank]说明:如果在表上建立了主索引或候选索引则不能用以上的insert命令插入记录,必须用sql的insert命令.3、删除记录的命令:vf的记录删除分为逻辑删除和物理删除;(1)逻辑删除:delete[for表达式](2)恢复记录:recall[for表达式](3)物理删除有删除标记的记录:pack(4)物理删除表中的全部记录:zap4、修改记录的命令:(1)交互修改的edit和change命令(2)直接修改的replace命令(非交互)格式:replace字段名1with表达式,字段名2with表达式,….for条件5、显示记录的命令:list/display[fields字段表][for表达式][toprinter|tofile文件名]6、查询定位命令:(1)用goto命令直接定位;goto|go记录号|top|bottom(2)skip命令:skip记录数(3)用locate命令定位locatefor条件表达式将记录指针定位在满足条件的第一条记录上。Locate命令的常用结构:locatefor条件表达式dowhilefound()处理命令….continueenddo四、索引Visualfoxpro索引是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。注-----索引文件和表的.dbf文件分别存贮,并且不改变表中记录的物理顺序。创建索引是创建一个由指向.dbf文件记录的指针构成的文件.1、visualfoxpro中的索引Vf中的索引:主索引、候选索引、惟一索引和普通索引主索引:在指定字段或表达式中不允许出现重复值的索引。起到主关键字的主作用。一个表只能创建一个主索引。候选索引:具有与主索引相同的特性,起到候选关键字的作用。一个表可以建立多个候选索引。惟一索引:指索引项的惟一,而不是字段值的惟一。普通索引:不仅允许字段中出现重复值,并且索引项中也允许出现重复值。在表设计器中建立索引:用命令建立索引:indexon索引表达式to索引文件名|tag索引名[for条件表达式][ascending|descending][unique|candidate]说明:使用命令不可以建立主索引;从索引的组织方式来讲有三类索引:单独的.idx索引,是一种非结构索引采用非默认名的.cdx索引,也是非结构索引与表名同名的.cdx索引,是结构复合索引其中结构复合索引是vf中最普通、最重要的一种索引文件,其特性如下:(1)打开表时自动打开(2)在同一索引文件中能包含多个索引关键字(3)在添加、更改或删除记录时自动维护索引综上所述,以下均为结构复合索引的用法:使用索引:setorderto索引序号|tag索引名[ascending|descending]使用索引快速定位:seek索引关键字值[order索引序号|tag索引名][ascending|descending]删除索引:deletetag索引名|all五、数据完整性数据完整性是指保证数据正确的特性数据完整性一般包括实体完整性、域完整性和参照完整性;Vfp中实现这些完整性的机制:1、实体完整性与主键实体完整性是保证记录惟一的特性;在vfp中利用主关键字或候选关键字来实现实体完整性;2、域完整性与约束规则域完整性:指的是限定字段的取值类型、取值范围、字段有效性验证等。域约束规则:字段有效性规则,用于数据输入正确性的检验。在表设计器中建立字段有效性规则;(操作)3、参照完整性与表之间的关联***参照完整性:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。在vfp中实现参照完整性,首先要建立表之间的联系(关系)。最常见的联系类型是一对多的联系,通过连接字段实现联系.连接字段:在父表中一般是主关键字,在子表中是外部关键字.在数据库设计器中实现参照完整性:首先建立表之间的联系:步骤:在父表中建立主索引;在子表中建立普通索引;通过父表的主索引和子表的普通索引建立起两个表之间的联系。其次建立参照完整性:步骤:清理数据库设置参照完整性规则(包括:更新规则,删除规则,插入规则)参照完整性规则:(1)更新规则:规定了当更新父表中的连接字段值时,如何处理相关的子表中的记录;级联:用新的字段值自动修改子表中的所有相关记录。限制:若子表中有相关的记录,则禁止修改父表中的连接字段值。忽略:可以随意更新父表的连接字段值。(2)删除规则:规定了当删除父表中的记录时,如何处理子表中的相关记录;级联:则自动删除子表中的所有相关记录;限制:若子表中有相关的记录,则禁止删除父表中的记录;忽略:删除父表的记录时与子表无关;(3)插入规则:规定了当在子表中插入记录时,是否进行参照完整性检查。限制:若父表中没有相匹配的连接字段值则禁止插入记录;忽略:可以随意插入子记录说明:当设定了参照完整性规则后,以前的vf的各种插入或追加记录的方法不能完成指定操作了,需要使用SQL的insert命令插入操作。六、自由表自由表:不属于任何数据库的表。数据库表与自由表相比,具有如下特点:数据库表可以使用长表名,在表中可以使用长字段名;可以为数据库表中的字段指定标题和添加注释;可以为数据库表的字段指定默认值和输入掩码;数据库表的字段有默认的控件类;可以为数据库表规定字段级规则和记录级规则;数据库表支持主关键字、参照完整性和表之间的关联;支持insert、update、delete事件的触发器1、将自由表添加到数据库在项目管理器中或数据库设计器中将自由表添加到数据库中;使用命令:addtable表名|?[name长表名]注意:一个表只能属于一个数据库;2、从数据库中移出表当数据库不再使用某个表,而其他数据库要使用该表时,必须将该表从当前数据库中移出,成为自由表在项目管理器中或数据库设计器中将数据库表移出数据库;使用命令:removetable表名|?[delete][recycle]说明:一旦某个表从数据库中移出,那么与之关联的所有主索引、默认值及有关的规则都随之消失.七、多个表的同时使用在vfp中一次可以打开多个数据库,在每个数据库中可以打开多个表;多工作区的概念:每个工作区中可以打开一个表,若要打开多个表,则只需要在不同的工作区中打开不同的表即可.指定工作区的命令:select工作区号|表别名也可以在use命令中直接指定在哪个工作区中打开表:use表名in工作区号表的别名:每个表打开后都有两个默认的别名,一个是表名自身,一个是工作区所对应的别名(a—j,w11—w32767);此外,还可以在use命令中指定别名:use表名in工作区号alias表别名使用不同工作区的表:(1)在某些命令中使用短语:in工作区号|别名例:seek‘9921104’order学号in学生(2)表名|表别名.字段名表名|表别名-字段名例:?学生.学号,学生-姓名表之间的关联:***与建立参照完整性时的表之间的联系相区别:表之间的关联----临时联系建立参照完整性时的表之间的联系----永久联系永久联系是基于索引建立的,存贮在数据库中,每次使用表时不需要重建,但不能控制不同工作区中记录指针的关系;临时联系的建立:setrelationto索引关键字into工作区号|别名其中工作区号|别名表示要与当前工作区中的表建立联系的表所在工作区的区号或别名例、opendatabase学生管理use学生in1order学号use成绩in2order学号setrelationto学号into成绩临时联系的取消:setrelationto-----取消当前表到所有表的临时联系setrelationoffinto工作区号|表别名----取消当前表到某个表的临时联系八、排序:索引的顺序是逻辑的----表中记录的存贮顺序未改变排序操作是物理的----表中记录的存贮顺序发生改变物理排序的命令:***sortto表名on排序关键字1[/a|/d][/c],…..For条件fields字段列表

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功