资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Visual FoxPro 程序设计,主讲:毛 平,南京理工大学泰州科技学院,Dept.of Computer Sci.&tech.of NJUSTTZ,1,Visual FoxPro 程序设计主讲:毛 平1,第3章 数据库与表的创建及使用,2,第3章 数据库与表的创建及使用2,学习目标,掌握表记录的输入方法,掌握表记录的筛选方法,掌握表记录的定位、更新、删除、复制方法,3,学习目标掌握表记录的输入方法3,3.3 表的创建与使用,记录的处理,记录的输入,表结构创建后立即输入,在浏览窗口中追加记录,用INSERT-SQL命令追加记录,INSERT INTO TableName,(,FileName1,FileName2,),VALUES(eExp1,eExp2),例:,INSERT INTO xs(xh,xdh)VALUES(990510,02“),4,3.3 表的创建与使用记录的处理4,记录的处理,记录的输入,使用APPEND与APPEND FROM命令追加记录,APPENDBLANKin,nWorkArea,|,cTableAlias,APPEND FROM,FileName,Fields,Fieldlist,For lExpDELIMITED|XLS,备注型字段与通用型字段的数据输入,备注型:memo 无内容 Memo 有内容,通用型:gen 无内容 Gen 有内容,5,记录的处理5,记录的处理,浏览窗口,在表的浏览窗口中,用户可以对表记录进行多种操作。,BROWSEFields,FieldList,For,lExp,FREEZE,FieldName,NOAPPENDNODELETE,NOMODIFYTITLE,cExp,6,记录的处理6,记录的处理,记录的筛选,工作区属性,SET FILTER命令,SET FILTER TO lExp,例:,USE xs,SET FILTER TO xb=“女”,BROWSE FIELDS xh,xm NOMODIFY,7,记录的处理7,记录的处理,限制对字段的访问,BROWSE命令,工作区属性,SET FIELD TO,SET FIELD TO,FieldList,例:,USE xs,SET FIELD TO xh,xm,BROWSE FOR xb=“女”NOMODIFY,8,记录的处理8,记录的处理,记录的修改,界面方式,命令方式,UPDATE,TabName,SET,FieldName1,=,eExp1,FieldName2,=,eExp2,WHERE,lExp,REPLACE,FieldName1,With,eExp1,ADDI,FieldName2,With,eExp2,ADDI,Scope,For,lExp,9,记录的处理9,记录的处理,记录的删除与恢复,标记要删除的记录(逻辑删除),界面方式,命令方式,Delete,Scope,For,lExp,in,nWorkArea,|,cTableAlias,Delete From,TableName,Where,lExp,10,记录的处理10,记录的处理,记录的删除与恢复,恢复带删除标记的记录,浏览窗口单击删除标记,菜单“表”-“恢复记录”,Recall命令,Recall,Scope,For,lExp,彻底删除记录(物理删除),菜单“表”-“彻底删除”,Pack、Zap,11,记录的处理11,记录的处理,对带有删除标记的访问,SET DELETED ON|OFF,数据的复制,Copy To,FileName,Fields,FieldList,Scope,For lExpSDF|XLS|DELEMITEDWith,Delimiter,|BLANK|TAB,12,记录的处理12,记录的处理,记录的定位,记录指针,13,记录的处理13,记录的处理,记录的定位,记录指针,相关函数,BOF():测试记录指针是否位于记录开始标志。,EOF():测试记录指针是否位于记录结束标志。,RECNO():测试当前记录号。,RECCOUNT():返回表中记录的总条数。,记录指针可以理解为保存当前记录号的变量,其初值总是1,不能为0或负数,最大值是表中记录总数+1,。,14,记录的处理14,记录的处理,记录的定位,定位记录,类型,绝对定位:将记录指针移动到指定的位置。,相对定位:将记录指针从当前位置开始,相对于当前记 录向前或向后移动若干个记录位置。,条件定位:按给定条件在指定范围中查找符合条件的记 录。,15,记录的处理15,记录的处理,记录的定位,定位记录,方法,使用菜单“表”-”转到记录”定位,16,记录的处理16,记录的处理,记录的定位,定位记录,作用范围,FOR:用于指明进行操作的条件。,While:也用于指明进行操作的条件。,17,记录的处理17,记录的处理,记录的定位,定位记录,方法,使用命令定位,GOTO,nRecordNumber,in,nWorkArea|cTableAlias,|TOP|BOTTOM,SKIP,nRecords,in,nWorkArea|cTableAlias,LOCATE FOR,lExp,Scope,18,记录的处理18,例:设XS表中没有记录,现打开XS表,则有:,若XS表中有20条记录,现打开表,则有:,19,19,索引的创建和使用,索引概述,记录的顺序,物理顺序:按其输入的时间顺序存放记录。,逻辑顺序:按某个字段值或某些字段对记录排序。,排序方法,把表记录按某种逻辑顺序排序后重新写到一个新的表文件中。,建立一个逻辑顺序号与原表物理顺序的记录号的对照表,并存入一个文件中。(,索引法,),20,索引的创建和使用20,索引的创建和使用,索引文件的类型,三种索引文件中,最常用的是结构复合索引文件。,21,索引的创建和使用21,索引的创建和使用,使用表设计器创建结构复合索引,排序,索引标识(Tag),索引类型,普通索引(Regular Indexes),唯一索引(Unique Indexes),候选索引(Candidate Indexes),主索引(Primary Indexes),22,索引的创建和使用22,索引的创建和使用,使用表设计器创建结构复合索引,索引表达式,建立索引的依据,通常为一个字段和多个字段组成的表达式。,若索引表达式为字符型表达式,则各个字段在索引表达式中的前后顺序将影响索引的结果。,若索引表达式为算术表达式,则按照表达式的运算结果进行排序。,不同数据类型的字段构成一个索引表达式时,必须转换为同一数据类型(通常转换为字符型)。,23,索引的创建和使用23,索引的创建和使用,使用表设计器创建结构复合索引,筛选,24,索引的创建和使用24,索引的创建和使用,索引的使用,设置主控索引,一个表可以有多个索引,在需要使用某个索引时必须显示地指定,即将某个索引设置为“,主控索引,”。,打开表时指定主控索引,USE,表名,ORDER,索引标识,ASC/DESC,表打开后,用SET ORDER命令设置主控索引,SET ORDER TO,TagName,in,nWorkArea,|,cTableAlia,ASC/DESC,25,索引的创建和使用25,索引的创建和使用,索引的使用,利用索引快速定位记录,SEEK eExpORDER,TagName,ASC/DESC,in,nWorkArea,|,cTableAlias,若找到匹配的记录,则RECNO()返回记录号,FOUND()返回.T.,EOF()返回.F.;,否则,RECNO()返回表中记录数加1,FOUND()返回.F.,EOF()返回.T.,26,索引的创建和使用26,字段属性与表属性,字段的扩展属性,字段的标题和注释,字段的显示属性(格式),27,字段属性与表属性27,字段属性与表属性,字段的扩展属性,字段的标题和注释,字段的显示属性(输入掩码),28,字段属性与表属性28,字段属性与表属性,字段的扩展属性,默认值,字段的有效性规则和有效性信息,例:,性别必须为“男”或“女”,Cj表中必须在0100之间,字段的默认控件类,29,字段属性与表属性29,字段属性与表属性,数据库表的表属性,30,字段属性与表属性30,字段属性与表属性,数据库表的表属性,长表名与表注释,记录有效性规则和信息,例:,先出生后工作,表的触发器,插入触发器,更新触发器,删除触发器,CREATE TRIGGER ON,TableName,For Delete|Insert|update as,lExp,31,字段属性与表属性31,3.4 永久性关系与参照完整性,表之间的永久性关系,数据库表之间建立的一中关系,不仅运行是存在,而且一直保持。,作用,在查询设计器或视图设计器窗口中,自动作为默认联接条件。,作为表单和报表的默认关系,在数据环境设计器窗口中显示出来。,用来存储参照完整性信息。,32,3.4 永久性关系与参照完整性表之间的永久性关系32,表之间的永久性关系,构建步骤,确定两张具有一对多或一对一关系的表。,建立主表的主索引或候选索引。,若是一对多关系,则在子表中以主表的关键字作为该表的外部关键字建立普通索引;若是一对一关系,则在子表中以与主表相同的关键字建立主索引或候选索引。,在数据库设计器中,将主表的主索引或候选索引标识拖放到子表相应的索引标识上。,33,表之间的永久性关系33,参照完整性,用来控制数据的完整性,尤其是控制数据库中相关表之间的主关键字和外部关键字之间数据一致性的规则。,参照完整性的一般要求,子表中的每一个记录在对应的主表中必须有一个父记录。,在子表中插入记录时,其外部关键字必须是主表主关键字值中的一个。,在主表中删除记录时,与该记录相关的子表中的记录必须全部删除。,34,参照完整性34,参照完整性,参照完整性的设置,35,参照完整性35,VFP数据完整性综述,实体完整性:实体的主关键字值非空且惟一。,参照完整性:指子表中外部关键字的取值要么为空,要么等于父表的某个主关键字值。,自定义完整性:用户根据具体应用所设置的完整性规则。,36,VFP数据完整性综述36,3.5 有关数据库及其对象的常用函数,dbc()函数,返回当前打开数据库的完整文件名。,dbused()函数,返回指定的数据库文件是否已经打开。,语法:dbused(,cDatabaseName,),dbgetprop()函数,返回当前数据库的属性。,语法:dbgetprop(cName,cType,cProperty),37,3.5 有关数据库及其对象的常用函数dbc()函数37,dbgetprop函数的类型的允许值 dbgetprop函数的常用属性名,38,dbgetprop函数的类型的允许值 d,dbsetprop()函数,设置当前数据库的属性。,语法:dbsetprop(cName,cType,cProperty,ePropertyValue),例:,dbsetprop(xs.xh,field,caption,学号),39,dbsetprop()函数39,学习小结,记录的输入,记录的筛选,记录的定位,记录的更新、删除等,40,学习小结记录的输入40,作业布置,习题三 第一题5、7、8、9、10,第二题8、9,预习3.43.5,41,作业布置习题三 第一题5、7、8、9、1041,
展开阅读全文