资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五讲,VFP,数据库、数据表菜单操作数据库及其操作,西南林业大学:鲁 莹,学 时:,2,节,教学内容,5.1,数据库操作,5.2,数据库表与自由表,5.3,数据表操作,5.4,索引,5.5,数据库中多表的使用,5.6,数据库表间关系,教学重点及目标,教学重点,数据库与数据表菜单操作,索引的建立及使用,多工作区的理解及使用,数据库表间关系的建立及数据完整性约束的理解,教学目标,灵活应用菜单操作数据库和数据表,掌握索引的建立及使用方法,掌握数据库完整性约束的建立及使用,5.1,数据库操作,5.1.1,建立数据库,(,1,)通过“新建”对话框建立数据库;,(,2,)在项目管理器中建立数据库;,(,3,)使用交互命令建立数据库。,1.,通过“新建”对话框建立数据库,数据库保存对话框,数据库设计器,新建表、添加表、移去表、创建新的远程视图、创建新的本地视图、修改表、浏览表、编辑存储过程、连接,9,个按钮。,2.,使用“项目管理器”建立数据库,数据库的保存,当输入的“数据库名”的数据库已经存在时,显示“操作提示”对话框,单击“是(,Y,)”按钮,改写原有的数据库。,若将系统环境参数,SAFETY,的值设置为,OFF,,系统就不会提示用户确认,直接改写原有的数据库。,5.1.2,打开数据库,1,通过“文件”菜单打开数据库,(1),文件,打开(,O,);,(2),选择打开文件类型“数据库,(*.,dbc,)”,;,(3),选择要打开的数据库,或直接输入要打开的数据库名;单击“确定”按钮,2,使用项目管理器打开数据库,在项目管理器的“数据选项卡”中,选择要打开的数据库,数据库将自动打开。,5.2,数据库表与自由表,数据库表,数据库表是一个扩展名为,.dbf,的文件,如果表中有备注或通用型字段则还会有一个扩展名为,.,fpt,的文件。,创建数据库表,使用项目管理器创建数据库表,使用数据库设计器创建数据库表,定义一个表,(,StudInfo,),StudInfo,(,学生信息表,),学生,(,学号,姓名,性别,出生日期,班级编号,),StudInfo(StudNo,StudName,StudSex,StudBirthDay,ClassID,),使用项目管理器创建数据表,使用数据库设计器创建数据表,表设计器,数据库对自由表的操 作,数据库设计器中将自由表添加到数据库,从数据库中移出数据库表成为自由表,数据库设计器中将自由表添加到数据库,显示“移去操作”对话框,“移去(,r,)”,选定的数据库表从当前数据库中移去成为自由表。,“删除(,d,)”,则选定的数据库表从数据库中移出,并从磁盘上删除该表,5.3,数据表操作,5.3.1,浏览数据表记录,5.3.2,修改记录,5.3.3,添加记录,5.3.4,删除记录,5.3.5,改变浏览的显示外观,5.3.6,记录筛选,5.3.7,记录定位,5.3.8,记录替换,5.3.9,修改表结构,使用项目管理器浏览数据,使用数据库设计器浏览数据,5.3.2,修改记录,5.3.3,添加记录,添加一条空白记录,1.,将其它数据库表中记录添加到当前的数据库表中,2.,选择“追加记录(,A,),”,命令项,显示“追加来源”对话框,指定文件类型以及文件名,然后按“确定”按钮,添加多条记录,5.3.4,删除记录,逻辑删除记录,在“删除”对话框中,通过作用范围(,S,),可以指定对当前记录开始以下若干个记录作逻辑删除;,通过,For/While,输入框,指定作逻辑删除的条件,对表中满足条件的所有记录作逻辑删除,删除记录,物理删除记录,5.3.5,改变浏览的显示外观,表名,字段名或标题,拆分条,字段值,元组,1.,改变显示表名,2.,改变显示的字段标题,3.,改变浏览窗口中的字体,4.,改变字段的显示宽度,5.,改变字段的显示顺序,按住鼠标左键拖动字段,6.,拆分浏览窗口,7.,改变记录的显示次序,第一步:建立索引,第二步:设置索引顺序,5.3.6,记录筛选,5.3.7,记录定位,5.3.8,记录替换,5.3.9,修改表结构,打开该数据库表设计器,进行以下修改表结构的操作。,1,修改表中已有字段,在数据库设计器的“字段”选项卡中,显示了表中各个字段名称、类型和宽度的数据,可单击要修改的数据项,直接输入新的数值即可。,2,增加新字段,将光标移到“字段”选项卡中显示的最后一个字段后,输入新字段名、数据类型和宽度数据。就完成了一个新字段的增加操作。,3,插入新字段,将光标移到“字段”选项卡中要插入新字段的位置,然后单击“插入(,M,)”按钮,显示插入一个新字段的空行,在新字段的空行中输入新字段名、数据类型和宽度数据。,4,删除字段,将光标定位到“字段”选项卡中要删除的字段上,单击“删除(,D,)”按钮,该字段的定义数据从“字段”选项卡中消失。,修改表结构,5.4,索引,5.4.1,索引相关概念,1,记录的物理顺序,Visual FoxPro,中表文件的记录号是按记录输入时的先后顺序给定的,这种顺序称为记录的物理顺序。,2,记录的逻辑顺序,Visual FoxPro,中表的索引和一本书中的索引类似。书中的索引是一份页码的列表,指向书中的页号。,表的索引按某种规则对记录进行逻辑排序,是一个记录号的列表,指向待处理的记录,并确定了记录的处理顺序。,3,索引,索引不是重排记录的物理顺序生成一个新的表文件,而是选定一个关键字,根据关键字的值对记录进行逻辑排序。按关键字值的顺序记录此关键字值所在记录的记录号。,当表文件打开时,若对应索引文件也已打开,表中记录的输出顺序就是在索引文件中的顺序,称为记录的逻辑顺序。,索引可以加速检索数据的速度。,5.4.2,索引的类型,1,主索引,数据库中的每一个表建立一个主索引,且一个表只能创建一个主索引。,不能为自由表建立主索引,主关键字强调的“,不允许出现重复值,”是指建立索引的字段值不允许重复,2,候选索引,候选索引和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字,,不允许出现重复值,,一个表可以建立多个候选索引,数据库表和自由表均可建立多个候选索引,3.,唯一索引,“唯一性”是指,索引项的唯一,,而,不是字段值的唯一,一个表可以建立多个唯一索引,重复的索引字段值只有唯一一个值出现在索引项中,4.,普通索引,决定记录的处理顺序,允许字段中出现重复值,并且索引项中也允许出现重复值,一个表中可以建立多个普通索引,5.4.3,索引文件及其分类,1,结构复合压缩索引文件,以,.CDX,为扩展名,在打开表时自动打开,此文件在对表进行修改时,能自动更新。,2.,非结构复合压缩索引文件,3.,独立索引文件,5.4.4,创建索引与索引的使用,用表设计器创建索引,用命令方式创建索引使用索引,1,设置普通索引,命令格式:,INDEX ON TAG FOR ASCENDING|DESCENDING,命令功能:创建一个复合索引文件。,用表设计器创建索引,建立复合字段索引,设置普通索引说明,(1),复合索引标识是一种可以包含任意数量的独立标识(索引项)的单个索引文件,每一个标识都由其惟一标识名确定。,(2)FOR,短语:用于建立有条件筛选索引。即只有符合,FOR,条件的记录才会出现在索引文件关键字值列表中。,(3)ASCENDING|DESCENDING,短语:用于指定索引的排序方式,其中,ASCENDING,表示按升序排列,,DESCENDING,表示按降序排列。默认值为,ASCENDING,。,索引,2,设置唯一索引,3,建立非结构索引文件,命令格式:,INDEX ON TAG OF FOR,条件表达式,ASCENDING|DESCENDING,说明:在非结构复合索引文件中可有多个标识。,4,建立独立结构索引文件,命令格式:,INDEX ON TO FOR,条件表达式,ASCENDING|DESCENDING,说明:用此命令建立独立结构索引文件后,该文件自动处于打开状态并作为当前索引生效。,索引示例,假设一个表包含职工号(,C,,,4,)和工资(,N,,,4,)两个字段,要求按工资升序、工资相同者按职工号升序排列,建立索引文件使用的命令是(),A,),INDEX ON,工资,/A,,职工号,/D TO ING,B,),Set INDEX ON,工资,职工号,TO ING,C,),INDEX ON,Str,(,工资,4)+,职工号,TO ING,D,),INDEX ON,工资,/A,,职工号,/A TO ING,5.4.5,使用索引,1,菜单方式,2,指定多个字段对记录排序,3,使用不同索引类型的选择,4,命令方式使用索引,命令格式:,SET INDEX TO|,?,ORDER|TAG OF ASCENDING|DESCENDING,命令功能:打开一个或多个索引文件。,命令使用说明,(,1,),用于指定要打开的一个或多个索引文件。这些索引文件彼此之间用逗号隔开。在索引文件列表中可以指定独立结构索引文件或非结构复合索引文件。另外,索引文件列表中指定第一个索引文件自动作为当前索引生效。但要注意的是,如果在索引文件列表中指定的第一索引是非结构复合索引,那么若要作为当前索引生效还需要使用,ORDER,短语或,SET ORDER TO,命令。,(,2,)?用于在执行,SET INDEX TO,命令时弹出“打开”对话框以选择要打开的索引文件。,(,3,),ORDER ,用于指定在索引文件列表中第几个索引文件作为当前索引生效。,命令使用说明,(,4,),ORDER ,用于指定在,中哪一个独立结构索引文件为当前索引。,(,5,),ORDER OF ,用于指定在,中哪一个复合索引标识作为当前索引。,(,6,),ASCENDING|DESCENDING,用于指定复合索引中的某一索引标识是按照升序还是降序方式显示记录。,(,7,)若,SET INDEX TO,后不带任何参数表示关闭索引文件。,(,8,)在,Visual,Foxpro,中如果用户已同时打开了某一个表的多个索引文件,但在任何一个时刻只能有一个索引文件作为当前索引文件生效。若要改变当前索引可以使用,SET ORDER TO,命令来设置当前索引。,SET ORDER TO,命令格式:,SET ORDER TO|TAG OF ASCENDING|DESCENDING,功能:设置当前索引。,5.5,数据库中多表的使用,5.5.1,工作区,1.,工作区,工作区是,Visual FoxPro,在内存中开辟的能独立地使用命令对一个数据库文件进行操作的一块区域。,2.,工作区号与工作区别名,Visual FoxPro6.0,中最多能同时打开,32767,个工作区,工作区的别名前十个为,A,、,B,、,、,J,,对于工作区,11,到,32767,,自动指定的别名是,W11,到,W32767,。,当前工作区与当前表,当,Visual FoxPro,系统启动后,自动选择,1,号工作区为当前工作区。,3,用户定义的别名,命令格式:,USE,表文件名,ALIAS,别名,AGAIN,命令功能:打开一个表。,说明:,(,1,)若无,ALIAS,短语,以表文件名作为别名。,(,2,),AGAIN,短语,表示表文件可在多个工作区中同时被打开。,5.5.2,工作区选择,1.,命令方式,SELECT ,工作区号,|,工作区别名,功能:选择某工作区为当前工作区。,示例:,Select 1,Use,StudInfo,Select 2,Use,ClassINFO,Select 1,Browse,2.,菜单方式,5.6,数据库表间关系,5.6.1,建立表间关系,1,表的关系,表的关系可分为一对一关系、一对多关系和多对多关系。,2,表间关系的类别,在,Visual FoxPro,中,表间关系分为临时表间关系和永久表间关系两种。,5.6.2,设置参照完整性,(,1,)级联:不论何时更改父表中的某个字段,,Visual FoxPro,都会自动更改所有相关子表记录中的对应值。,(,2,)限制:禁止更改父表中的主关键字段或候选关键字段中的值,这样在子表中就不会出现孤立的记录。,(,3,)忽略:即使在子表中有相关的记录,仍允许更新父表中的记录。,设置参照完整性,在建立永久关系前先建立索引,5.6.3,建立表间临时关系,命令格式:,SET RELATION TO,into,,,into,ADDITIVE,功能:把当前工作区上的表(父表)与在另一工作区上打开的子表通过关联字段建立指针联动关系,即当前工作区上表的指针移动时,子表的记录指针也发生相应移动。,ADDITIVE:,保证建立关联时不取消以前建立的关系。,选项介绍,关系表达式,可以是:,(,1,)关键字表达式:指定在父表和子表之间建立关系的关系表达式。子表必须按关键字建立索引,且索引必须是主索引。索引形式不限,可以是复合索引,也可以是普通索引。,(,2,)数值表达式:两表按照记录号相联系,子表不必排序或索引。当父表记录指针移动时,子表的记录指针指向与数值表达式值相匹配的记录上。例如,,SET RELATION TO 2*RECNO,(),INTO YK,,则父表的记录号为,1,与别名为,YK,的子表记录号为,2,的关系,父表记录号为,3,与,YK,的记录号为,6,的记录关系,。,选项介绍,INTO,工作区号,1|,别名,1,:指定非当前工作区中的子表。,关系表达式,2 INTO,工作区号,2|,别名,2,:指定其他关系表达式和其他子表,建立另一个父表和子表之间的关系。在一条,SET RELEATION,命令中可以创建单个父表与多个子表之间的关系,各关系之间用逗号隔开。,IN,工作区号,|,别名,:指定父表所在的工作区。,ADDITIVE,表示建立新关系时,当前工作区中先前建立的关系仍保留,无此项则表示失效。,说明:在建立关系之前,必须打开一个表(父表),而且还必须在另一个工作区内打开其他表(子表)。建立关系的各表之间通常有一个相同的字段,即使字段名不同,数据类型必须相同。,若要切断数据表间的关系,可用命令,SET RELATION TO,。,
展开阅读全文