您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Visual FoxPro程序设计教程
VisualFoxPro程序设计教程教师:冯伟E-mail:26134019@qq.com第2章数据库及其操作数据库的基本概念VisualFoxPro中数据库的概念是一个逻辑上的概念,通过一组系统文件将相互关系的数据库表及其相关的数据库对象统一组织和管理,所以在VisualFoxPro中应该将.dbf文件称为数据库表或表,而不再称之为数据库。在建立数据库时,相应的数据库名称实际是扩展名为DBC的文件名,与之相关的还会自动建立一个扩展名为DCT的数据文件和一个扩展名为DCX的索引文件。这三个文件是提供VisualFoxPro管理数据库时使用的。数据库建立后是一个空的数据库,没有任何数据,也不能输入数据,接着还需要建立数据库表和其它数据库对象然后才能够输入数据和实施数据库操作。2.1数据库建立的三种方式在VisualFoxPro中数据库建立的方式可以分为三种,分别是:使用项目管理器建立数据库通过新建对话框建立数据库使用命令交互方式建立数据库命令:CREATEDATABASE[数据库名称]2.2打开数据库的三种方式打开数据库的方式和建立数据库的方式类似,也有三种通过项目管理器打开数据库通过打开对话框打开数据库通过命令交互方式打开数据库命令:OPENDATABASE[FileName|?][EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]2.3修改数据库在VisualFoxPro中修改数据库实际上是在数据库设计器中完成的,数据库设计器显示数据库包含的所有表,视图和联系。修改数据库的三种方式:从项目管理器中修改数据库从打开对话框中打开数据库进行修改用命令方式打开数据库进行修改命令:MODIFYDATABASE[DATABASENAME|?][NOWAIT][NOEDIT]2.4数据库表的建立在关系数据库中的关系就叫做表,在一个数据库中的数据是由表的集合够成的,表的扩展名为DBF。数据库的管理最终是对表的管理。表是对数据进行有效的加工、管理、使数据更能显示出它的价值,由于表可以独立于程序,因而表使得数据得以共享,同时使数据得到充分的利用。表可以分为自由表和数据库表两种1、建表(1)用界面建表1)用菜单打开表设计器2)用命令打开表设计器格式:CREATE表名功能:打开表设计器创建表3)用向导创建表2、表的打开、关闭及相关操作1、表的打开(1)用界面打开表(2)用命令打开表格式:USE表名功能:打开表2、浏览表(1)在项目管理器中浏览表(2)用命令浏览表格式:browse功能:浏览表3、关闭表(1)用界面关闭表(2)用命令关闭表格式:USE功能:关闭当前表4、给表添加记录首选选择浏览你要添加记录的表使用命令添加记录格式:APPEND或APPENDBLANK功能:APPEND是用交互式方式添加表的记录,而APPENDBLANK是在表设计器中给表添加一行空格的部分可以供用户直接输入数据使用表菜单中的“追加新纪录”可以给表添加一条新的记录快捷键:CTRL+Y使用INSERT[BEFORE][BLANK]命令功能:在表的任意位置插入一条记录,如果不使用BEFORE,则是在当前记录的后面插入一条新纪录。如果使用,则是当前记录的前面插入一条新纪录。BLANK:是否插入一条空白记录。5、删除表中记录删除表中的记录:1、逻辑删除:只是将记录加了删除标记2、物理删除:将具有删除标记的记录真正从表中删除(1)逻辑删除与恢复1)用界面为记录加删除标记或去掉删除标记2)用命令为记录加删除标记与去掉删除标记逻辑删除命令格式:DELETE[FOR条件]功能:对满足条件的记录加删除标记,若范围省略,默认范围为当前记录即NEXT1.记录恢复命令格式:RECALL[FOR条件]功能:为符合条件的记录去掉删除标记,若范围省略,默认范围为当前记录即NEXT1.(2)物理删除记录:1)用界面进行物理删除2)用命令进行物理删除格式:PACK功能:将带有删除标记的记录,从表中真正删除3)物理删除表中所有记录格式:ZAP功能:将表中所有记录删除,只保留表的结构6、修改记录(1)用界面修改记录1)显示-》浏览2)在命令窗口上用命令EDIT或CHANGE(2)用命令修改记录格式:REPLACEFILENAME1WITHeExpression1[,FILENAME2WITHeExpression2]…[FOR[Expression]]功能:在指定范围内将符合条件的记录中的相关字段用相关表达式来替换。若省略范围,默认范围为NEXT1REPALCEALLFILENAMEWITHeExpression功能:将所有记录的值用相关表达式来替换7、显示表中记录的命令格式:LIST[[FILE]FieldList][FOR[Expression]][OFF][TOPRINTER[PROMRT]|TOFILEFileName]DISPLAY[[FILE]FieldList][FOR[Expression]][OFF][TOPRINTER[PROMRT]]|TOFILEFileName]功能:FieldList这个参数是将要显示的字段用逗号隔开,如果不加这个参数,默认显示所有字段,Expression是条件表达式,TOPRINTER是将结果输出到打印机,如果加上PROMRT是打印之前对打印机进行设置,TOFILE是将结果用文件保存LIST和DISPLAY的区别在于LIST显示全部记录,而DISPLAY只显示当前记录8、记录指针的移动1、用界面方式移动记录指针2、用命令方式移动记录指针1)绝对移动:格式:GOBOTTOM|TOP|记录号功能:实现记录指针的绝对移动。当用TOP子句时指针指向第一条记录;当用BOTTOM子句时指针指向最后一条记录。当用记录号子句时指针指向记录号确定的记录2)相对移动:格式:SKIP[[+|-]N]功能:N可为正、负整数,当N为正数时指针从当前记录向表尾方向移动N条记录。当N为负数时,指针从当前记录向表头方向移动N条记录,当省略N时,默认N为1.3)条件移动格式:LOCATEFOR[Expression]功能:将记录定位到满足条件的记录的第一条位置9、索引若要按特定的顺序定位、查看或操作表中记录,可以使用索引。在VF中可以使用索引对表中的记录进行排序,在检索的时候按照某一个规则去检索,比如在一个学生表中,有成绩字段,我们可以按照成绩字段的值由高到低进行检索1、主索引在指定字段或表达式中不允许出现重复值的索引。建立主索引的字段可以看做是主关键字。一个表只能有一个主关键字,所以一个表只能创建一个主索引。2、候选索引一个表当中可以有多个候选索引,这是候选索引和主索引最大的区别,建立候选索引的字段叫做候选关键字3、唯一索引唯一索引是为了保持同早期版本的兼容性,它的“唯一性”是指索引项的唯一,而不是字段值的唯一。也就是说如果一个表中某个字段建立了唯一索引,如果这个字段当中有相同的值,唯一索引只会检索出第一个值,后面的值不会再检索表中出现4、普通索引普通索引不仅允许字段中出现重复值,并且索引项中也允许出现重复值。在一个表中可以建立多个普通索引。单项索引和复合索引单项索引基于一个字段的索引称为单项索引复合索引基于多个字段的索引称为复合索引用命令建立索引格式:INDEXONeExpressionTOIDXFileName|TAGTagName[OFCDXFileName][FORlExpression][COMPACT][ASCENDING][DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]功能:eExpression是索引表达式,它可以是字段名,或包含字段名的表达式TOeExpression建立一个单独的索引文件,扩展名为.idx。该项是为了和早期版本兼容,现在一般只是建立一些临时的索引时才使用TAGTagName[OFCDXFileName]中的TagName给出索引名,CDXFileName指定索引文件名,默认的索引文件名与表同名,但扩展名不一样FORlExpression给出索引过滤条件,该短语一般不使用COMPACT指明当使用TOIDXFileName建立一个压缩的.idx文件时复合索引总是压缩的;ASCENDING或DESCENDING指明建立升序或降序索引,默认是升序的;UNIQUE指定建立唯一索引CANDIDATE指明建立候选索引ADDITIVE与建立索引本身无关,说明现在建立索引时是否关闭以前的索引,默认是关闭已经使用的索引,使新建立的索引称为当前索引。打开索引列表和使用索引格式:SETINDEXTOindexFileList功能:打开非结构复合索引,可以一次性打开多个格式:SETORDERTO[nIndexNumber|[TAG]TagName]功能:使用某个特定索引时用命令进行打开,nIndexNumber是使用索引序号打开,既创建索引的先后顺序,TagName是使用索引名进行打开,推荐使用索引名打开10、数据完整性1、实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。在VF中利用主关键字或候选关键字来保证表中记录唯一,既保证实体唯一性。VF中将主关键字称为主索引,将候选关键字称作候选索引。2、域完整性域完整性就是通过数据类型和取值范围去定义某个字段的有效性。3、约束规则约束规则又称为字段有限性规则,在插入或修改字段值时被激活,主要用于数据输入正确性的检验。注意:“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则视字段的类型而定。参照完整性和表之间的关联当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确,以保证插入的新的记录的合法性更新规则、删除规则和插入规则更新规则级联:用新的连接字段值自动修改子表中的所有相关记录限制:若子表中有相关的记录,则禁止修改父表中连接字段的值忽略:不作参照完整性检查,既可以随意更新父记录的连接字段的值删除规则级联:自动删除子表中的所有相关记录限制:若子表中有相关的记录,则禁止删除父表中的记录忽略:不作参照完整性检查,即删除父表的记录时与子表无关插入规则限制:若父表中没有相匹配的连接字段值则禁止插入子记录忽略:不作参照完整性检查,即可以随意插入子记录9、自由表的操作自由表就是不属于任何数据库的表,自由表可以添加进数据库,也可以从数据库中将表移除产生自由表自由表创建的方式1)通过项目管理器添加自由表2)通过文件菜单或工具栏添加自由表3)通过命令添加自由表(不能打开数据库)CREATE[表名]将自由表添加到当前数据库中格式:ADDTABLETableName|?[NAMELongTableName]从数据库中将表移除格式:REMOVETABLETableName|?[DELETE][RECYCLE]10、选择工作区VisualFoxPro中可以同时对多个数据库进行操作,也可以同时对一个数据库中的多个表进行操作,平时我们系统默认的工作区是第一个工作区,我们只需要将表分放到不同的工作区便能同时对这些表进行操作格式:SELECTnWorkArea|cTableAlias功能:nWorkAre是一个大于0的数字,用于指定工作区号,最小的工作区号是1,最大的工作区号是32767,如果指定为0,选择的是编号最小的工作区。cTableAlias是用来指定工作区中的一个表11、表的别名每个表打开之后会有两个默认的别名,一个是表名自身,另一个工作区所对应的别名。在前10个工作区指定的默认别名是工作区字母A到J,工作区11到32767的别名是W11到W32767。USE命令中用ALIAS短语指定别名格式:USE表名IN工作区ALIAS别名12、表之间的关联前面我们讲过利用索引建立两个表之间的“永久联系”。“永久联系”在数据库设计器中显示为表索引间的连接线但是“永久联系”也不是万能的,他无法实现指针联动,
本文标题:Visual FoxPro程序设计教程
链接地址:https://www.777doc.com/doc-6148858 .html