二级程序设计教程_第1页
二级程序设计教程_第2页
二级程序设计教程_第3页
二级程序设计教程_第4页
二级程序设计教程_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级程序设计教程第1页,共93页,2022年,5月20日,8点26分,星期日第四章Visual Foxpro 数据库及其操作 第2页,共93页,2022年,5月20日,8点26分,星期日第一节 Visual Foxpro 数据库及其建立在Visual Foxpro中,数据库是一个逻辑上的概念和手段,用于将相互联系的数据表及其相关的数据库对象统一管理和组织。一般的逻辑层次关系: 数据库数据表记录字段第3页,共93页,2022年,5月20日,8点26分,星期日建立Visual Foxpro 数据库时,建立扩展名是dbc的数据库文件,与之相关自动建立扩展名为dbt的备注文件和扩展名为dcx的数据库索

2、引文件。建立一个数据库,对应的文件有三个:DBC、DBT、DCX。一、建立数据库1、在项目管理器中建立数据库方法:在“数据”选项卡中,选择“数据库”,单击“新建”。 第4页,共93页,2022年,5月20日,8点26分,星期日2、通过“新建”对话框建立数据库方法:在“文件”菜单中选择“新建”。(或者在工具栏上单击“新建”)。3、使用命令交互建立数据库 格式:CREATE DATABASE 库文件名第5页,共93页,2022年,5月20日,8点26分,星期日二、使用数据库在对一个数据库中的表进行操作时,需要先打开这个数据库。在项目管理器中打开数据库。(选中库后,库自动打开)通过“打开”对话框打开

3、数据库。命令法:OPEN DATABASE 库文件名 EXCLUSIVE|SHAREDNOUPDATEVALIDATE(在工具栏中间显示打开的库名)第6页,共93页,2022年,5月20日,8点26分,星期日EXCLUSIVE:以独占方式打开,同一时刻只能由一个用户打开操作。SHARED:以共享方式打开,同一时刻可由多个用户打开操作。NOUPDATE:以只读方式打开,不允许对库进行修改。 第7页,共93页,2022年,5月20日,8点26分,星期日三、修改数据库在VISUAL FOXPRO中修改数据库实际上是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。

4、在项目管理器中,选中库,再单击修改。在“文件”菜单中选择“打开”。MODIFY DATABASE 库文件名NOWAITNOEDITNOWAIT只在程序中使用,不在交互命令窗口中使用,即打开库设计器后,程序继续运行,不等待。NOEDIT 打开数据库设计器禁止对数据库进行修改第8页,共93页,2022年,5月20日,8点26分,星期日四、删除数据库项目管理器中选择库,单击“移去”。DELETE DATABASE 库名数据库文件的删除,并不删除所包含的表文件。库文件仅仅建立表之间的联系。第9页,共93页,2022年,5月20日,8点26分,星期日第二节 建立数据库表一、在数据库中建立表建立表时,首先

5、要对所处理的对象进行调查分析,再根据需要设计一张二维表。当表的行、列个数及每列中数据的属性确定后,再把数据集合在其中即可。 1.定义表中的数据类型 (1)定义二维表名 设计一张二维表,给表起个名字。 (2)二维表栏目设计第10页,共93页,2022年,5月20日,8点26分,星期日编号姓名家庭地址年龄工资1001张三青海西宁18595.36100210031004100510061007职工基本情况表第11页,共93页,2022年,5月20日,8点26分,星期日(3)填写二维表的内容、表的名字(标题) 、表中每一列的栏目标题序列为表头,它标明了每一列对应数据的属性。 、表中每一行的数据是表的内

6、容。 (4)定义数据表的结构在Visual FoxPro 系统中,一张二维表对应一个数据表,称为表文件(Table)。第12页,共93页,2022年,5月20日,8点26分,星期日一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。、数据表的文件名相当于二维表中的表名,它是数据表的主要标识,用户可以依靠数据表名在磁盘上存取、使用指定的数据表。、数据表的结构相当于二维表的表头,二维表的每一列对应数据表中的一个字段,其属性决定了字段名、字段类型和字段长度。第13页,共93页,2022年,5月20日,8点26分,星期日、数据表中的记录是数据表中不

7、可分割的基本项,即二维表中的表的内容。 2利用表设计器创建表方法1:在“文件”菜单中选择“新建”;方法2:CREATE 表文件名方法3、使用数据库设计器建立数据表(1)输入字段名一般允许由110字符(自由表)组成,要求以字母开头,不含空格;数据库中的表其字段名最长可达到128个字符。第14页,共93页,2022年,5月20日,8点26分,星期日(2)输入字段的类型每一个字段都反映对象的一个方面属性,根据其表达含义,可有不同的数据类型。根据计算机处理数据的特点,必须定义数据类型。(3)输入字段宽度 指该字段所能容纳数据的最大字节数。有些类型的数据其宽度是固定的。第15页,共93页,2022年,5

8、月20日,8点26分,星期日(4)输入小数位数 数值型、浮点型、双精度型的字段可指定小数据位。数值型字段:字段宽度=整数部分宽度+小数点1位+小数位宽度小数位至少比整个字段宽度小2。第16页,共93页,2022年,5月20日,8点26分,星期日空值 NULL项 允许该字段值为空或使用缺省数据,被设为关键字的字段值不允许为空。字段有效性组框:定义字段的有效性规则、提示信息及设置缺省值。显示组框 设置字段的输入格式、显示格式、显示标题字段注释当前行前有一个双向箭头。第17页,共93页,2022年,5月20日,8点26分,星期日二、表文件的打开与关闭 1、打开表文件命令法:USE 表文件名功能:在当

9、前工作区中,打开一指定的表文件。说明:扩展名可省略,如果原来已在该工作区中打开了一个表文件,则关闭它,再打开新的文件;打开后,记录指针指向第一个记录。窗口菜单法:在“窗口”菜单中选择“数据工作期”,单击“打开”。第18页,共93页,2022年,5月20日,8点26分,星期日2、关闭表文件格式:USE关闭在当前工作区中打开的表文件CLOSEDATABASE关闭所有工作区被打开的表文件CLOSE ALL 关闭所有工作区中的所有文件;QUIT关闭所有文件,且退出系统窗口菜单法:在“窗口”菜单中选择“数据工作期”,选择欲关闭的表,单击“关闭”。第19页,共93页,2022年,5月20日,8点26分,星

10、期日3、表的独占与共享在网络环境下使用时,还要确定是独占还是共享。涉及表数据的安全性问题。独占打开:一张表只能被一个用户打开。共享打开:一张表可被多个用户同时打开。USE 表名 SHARED:以共享方式打表。USE 表名 EXCLUSIVED:以独占方式打开表。第20页,共93页,2022年,5月20日,8点26分,星期日三、修改表结构1、菜单操作法方法:打开欲修改的表,执行“显示”菜单中的“表设计器”。在“表设计器”窗口,修改表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的修改。 2、命令法格式:MODIFY STRUCTURE 表文件名第21页,共93页,2022年,5月2

11、0日,8点26分,星期日四、记录指针在向表输入数据时,系统按照其输入的前后顺序,给每一个记录赋予一个记录号。 记录指针是VFP系统内部的一个指示器,用于确定当前正在操作的记录。(表中的数据以记录为单位操作)每当打开一个表文件时,指针总是指向第一条记录。 记录指针指向的记录叫当前记录,记录指针指向哪一个记录,这一个记录就是当前操作的记录,即当前记录。第22页,共93页,2022年,5月20日,8点26分,星期日测试当前记录用函数RECNO()。最小值为1,最大值为RECCOUNT()+1。 打开表时记录指针情况:表中无记录:BOF()=.T.EOF()=.T.RECNO()=1表中有记录:BOF

12、()=.F.EOF()=.F.RECNO()=1 第23页,共93页,2022年,5月20日,8点26分,星期日五、表中输入数据1.创建表时立即输入数据在创建表时,如果表中所有字段的属性已定义完成,可按“确定”按钮保存表结构,同时打开“系统”窗口,显示“现在输入数据吗?”的对话。第24页,共93页,2022年,5月20日,8点26分,星期日选择“是”按钮,可以立即进入表“浏览”窗口,进行表中数据的输入。2以追加方式输入数据方法:打开欲输入数据的表,执行“显示”菜单中的“浏览”,再执行“显示”菜单下的“追加方式”。 第25页,共93页,2022年,5月20日,8点26分,星期日3、命令法追加1)

13、append命令在表的尾部增加记录,有两种格式:append 表尾增加一条记录,并输入数据。append blank 表尾增加一条空记录。2)insert 可在表的任何位置插入新的记录命令:INSERTBEFOREBLANK 功能:在当前库文件中当前记录的前或后边插入一条记录,并输入数据。 第26页,共93页,2022年,5月20日,8点26分,星期日BEFORE:表示在当前记录前插入新记录,否则在当前记录后插入;BLANK:表示插入一条空记录,不进入全屏幕输入状态,反之则进入全屏幕输入状态输入数据。 如:在第5条记录后插入一条记录:GO 5INSERT在第10条记录前插入一条空记录:GO 5

14、INSERT BEFORE BLANK第27页,共93页,2022年,5月20日,8点26分,星期日4、数据的输入要点备注型数据输入方法:把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。 (输入完memo变成Memo)通用型数据的输入方法:把光标移到通用型字段下双击,进入通用型字段的数据编辑窗口。在“编辑”菜单中选择“插入对象”。确定对象后,该字段中的gen变成Gen。 第28页,共93页,2022年,5月20日,8点26分,星期日六、使用浏览窗口操作表1、打开浏览器窗口项目管理器:列表中选择表,单击“浏览”。数据库设计器:选中表,单击“浏览”,或者右击表,选择“浏览”。使用命令:打开

15、表以后,Browse。第29页,共93页,2022年,5月20日,8点26分,星期日浏览器窗口有两种显示方式:编辑方式和浏览方式切换:在“显示”菜单中,选择“浏览”或者“编辑”。浏览窗口的分割:拖动“分割”按钮。(在浏览器窗口左下角)2、浏览操作 调整字段显示宽度,调整字段的显示顺序(拖动),但表结构不变。注意:执行浏览或者编辑命令后,菜单中出现“表”菜单项。第30页,共93页,2022年,5月20日,8点26分,星期日在同一记录中选择字段:鼠标或enter 左箭头 右箭头 tab shift+table在上下记录间的切换:鼠标或上下箭头翻页:pageup pagedown3、增加记录ctrl

16、+y,以表尾增加一条新记录。4、修改记录移动插入点到欲修改的记录上,直接修改。5、删除记录ctrl+t,删除当前记录。第31页,共93页,2022年,5月20日,8点26分,星期日七、删除记录命令(逻辑删除和物理删除)删除记录分两步:做删除标记(逻辑删除)、彻底删除带标记的记录(物理删除)。1、置删除标记的命令 方法1:在表“浏览”窗口,单击欲删除记录的删除标记。方法2:在“浏览”窗口,执行“表”菜单中的“删除记录”命令。方法3: delete for 条件表达式第32页,共93页,2022年,5月20日,8点26分,星期日删除标记在存贮时,占一个字节。相关函数:DELETE()如:判断当前记

17、录是否被设置删除标志:GO 6?DELETE()又如:显示当前库中所有设置了删除标志的记录:DISP ALL FOR DELETE()第33页,共93页,2022年,5月20日,8点26分,星期日2、恢复记录的命令对加上逻辑删除标记的记录,取消其删除标记,可对其进行恢复操作。方法1:在表“浏览”窗口,单击欲恢复记录的删除标记。(开关性质)方法2:在“浏览”窗口中,执行“表”菜单中“恢复记录”命令;第34页,共93页,2022年,5月20日,8点26分,星期日方法3: recall for 条件表达式 操作:将当前表中已经逻辑删除的男生记录恢复。Recall for 性别=”男”3、物理删除有删

18、除标记的记录物理删除就是把无效的记录彻底从磁盘中删除掉。 方法1:在“浏览”窗口中,执行“表”菜单中“彻底删除记录”命令;第35页,共93页,2022年,5月20日,8点26分,星期日方法2:pack。4、物理删除表中的全部记录zap一次删除所有记录。注:不管是否有删除标记,但表本身未被删除,表结构依然存在。八、修改记录命令1、EDIT或CHANGE命令交互式修改。格式:EDIT/change第36页,共93页,2022年,5月20日,8点26分,星期日2、REPLACE成批替换数据(重点)格式:REPLACE范围字段1WITH表达式1,字段2WITH表达式2FORWHILE条件 功能:对当前

19、表文件中指定范围内满足条件的所有记录,用表达式的值替换字段中原有的值。如:REPLACE ALL 总分 WITH 数学+语文REPLACE ALL 基本工资 WITH 基本工资+100 FOR 职称=“教授”第37页,共93页,2022年,5月20日,8点26分,星期日九、显示记录命令(foxbase中更实用)格式1:LIST范围字段名表达式FORWHILE条件OFFTO PRINT | TO FILE 文件名 格式2:DISPLAY范围字段名表达式FORWHILE条件OFFTO PRINT| TO FILE 文件名 功能:把满足条件的记录的指定字段的内容显示出来。后者可以分屏显示输出;如果不

20、指定范围和条件,前者默认地输出全部记录,而后者只输出当前记录。 第38页,共93页,2022年,5月20日,8点26分,星期日十、查询定位命令1、窗口操作方式方法:打开要使用的表,在“显示”菜单下,选择“浏览”;在“表”菜单中,选择“转到记录”,子菜单中不同的选项,可以将记录指针移动到相应的记录上。第39页,共93页,2022年,5月20日,8点26分,星期日(1)选择“第一个”,确定第一个记录为当前记录;(2)选择“最后一个”,确定最后一个记录为当前记录;(3)选择“下一个”,确定当前记录的下一个记录为当前记录;(4)选择“前一个”,确定当前记录的前一个记录为当前记录;第40页,共93页,2

21、022年,5月20日,8点26分,星期日(5)选择“记录号”, 便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;(6)选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件表达式,确定满足定位条件表达式的第一个记录为当前记录。第41页,共93页,2022年,5月20日,8点26分,星期日2、绝对定位命令格式:GO数值表达式 GO TOP GO BOTTOM功能:将记录指针定位于首记录、尾记录或数值表达式的值所指定的记录。 当前记录是谁,可以从状态行看出来;第42页,共93页,2022年,5月20日,8点26分,星期日3、相

22、对定位命令格式 :SKIP数值表达式 功能:将记录指针相对当前记录向下(正方向)或向上(负方向)移动数值表达式的值所指定的记录数。 第43页,共93页,2022年,5月20日,8点26分,星期日4、按条件定位、条件定位命令LOCATE 格式:LOCATE范围FORWHILE条件 功能:在指定范围内将指针定位于满足条件的第一条记录,如果没找到满足条件的记录,则记录指针定位于表尾,EOF()函数为逻辑真。缺省范围选择时,取all,即在所有记录中查找。 如:LOCATE ALL FOR 姓名=“王”DISPLAY第44页,共93页,2022年,5月20日,8点26分,星期日、继续查找命令CONTIN

23、UE格式:CONTINUE功能:继续查找满足条件的下一条记录;重复多次使用CONTINUE命令,可找到满足条件的所有记录;第45页,共93页,2022年,5月20日,8点26分,星期日、查询测试函数FOUND格式:FOUND()功能:如果找到了满足条件的记录,则返回逻辑真,反之则返回逻辑假;第46页,共93页,2022年,5月20日,8点26分,星期日通常的操作模式如下:Locate for 条件DO WHILE FOUND()处理CONTINUEENDDO用循环对满足条件的所有记录进行操作。第47页,共93页,2022年,5月20日,8点26分,星期日第四节 索引 一、基本概念什么是索引呢?

24、如一本书,有很多内容,为了快速找到我们需要的章节,借助于目录。那么在数据库中,也有类似于目录的信息,称之为索引。 书中的目录是一份页码的列表,指向书中的书页,但数据库中的索引是一个记录号的列表,指向表中待处理的记录,并表示记录的处理顺序。 第48页,共93页,2022年,5月20日,8点26分,星期日索引是按着索引表达式的值使数据表中的记录有序排列的一种技术,在Visual FoxPro系统中是借助于索引文件实现的。一般情况下,表中记录的顺序是由数据输入的前后顺序决定的,并用记录号予以标识。除非有记录插入或者有记录删除,否则表中的记录顺序总是不变的。索引实际上是一种排序,但是它不改变数据表中数

25、据的物理顺序,而是另外建立一个记录号列表。 第49页,共93页,2022年,5月20日,8点26分,星期日一个表可以建立多个索引,每一个索引代表一种处理记录的顺序。即不同的索引,决定了读取记录的不同顺序。二、索引类型在数据库容器中的数据表可以建立主索引(Primary Index)。索引表达式的值是唯一能够标识每个记录处理顺序的值。即作为主索引的关键字是不允许重复出现的, 也不允许取空值。第50页,共93页,2022年,5月20日,8点26分,星期日2候选索引候选索引(Candidate Index) 像主索引一样,它的索引表达式的值是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立

26、多个候选索引,它在特定环境下可以视为主索引。 第51页,共93页,2022年,5月20日,8点26分,星期日3普通索引普通索引(Regular Index)表示把由索引表达式为每个记录产生的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以重复存储,并用独立的指针指向各个记录。第52页,共93页,2022年,5月20日,8点26分,星期日 4唯一索引唯一索引(Unique Index)表示把由索引表达式为每个记录产生的唯一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则只存储第一个索引表达式值。它允许数据表中各记录的索引字段或字段组合表达式的值相同,但在索引文件中只保留数据表

27、中与索引字段值相同的第一条记录。第53页,共93页,2022年,5月20日,8点26分,星期日三、在表设计器中建立索引1、单项索引的建立基于一个字段的索引叫单项索引。单项索引的建立有两种方式:普通索引的建立:使用表设计器的字段标签 或 索引标签。在表设计器中,字段标签中,索引的下拉列表框中,选择索引方向,升序()或降序();建立的索引就是一个普通索引。其他索引的建立:必须使用表设计器的索引标签。在表设计器中,索引标签中,选择字段和索引类型。第54页,共93页,2022年,5月20日,8点26分,星期日2、复合字段索引的建立基于多个字段的索引叫复合字段索引使用表设计器的索引标签,选择确定索引名和

28、类型后,单击“表达式”右侧的按钮,在表达式生成器中确定索引表达式。第55页,共93页,2022年,5月20日,8点26分,星期日四、用命令建立索引Index on 索引表达式 to 简单索引文件名|tag 结构复合索引文件名 of cdxfilename ascending |descending unique |candidateadditive(关闭以前索引,使建立的索引成为当前索引)to 简单索引文件名:则表示建立一个简单索引文件。tag 结构复合索引名:则表示建立一个与表同名的结构复合索引。of 非结构复合索引文件名:建立一个非结构复合索引文件名。第56页,共93页,2022年,5月2

29、0日,8点26分,星期日即可以建立在三种类型的索引。ascending |descending:升降序。unique |candidate:是唯一索引还是候选索引。Additive:是否关闭以前索引,使建立的索引成为当前索引。默认为关闭以前的索引。例:index on 年龄 tag 年龄第57页,共93页,2022年,5月20日,8点26分,星期日五、使用索引1.打开索引文件与表名相同的结构索引在打开表时都能够自动打开,但是对于非结构索引必须在使用之前打开索引文件。命令格式: SET INDEX TO 索引文件1,索引文件2,可以打开多个索引文件,但第一个索引文件成为主控索引文件。第58页,共

30、93页,2022年,5月20日,8点26分,星期日2.设置当前索引若数据表中建立了许多索引,其中总有一个为主,数据表记录总是以该索引的要求排序,这个索引就叫主控索引或者当前索引。结构复合索引文件随着数据表打开后,其中的索引标识(tag)并不起作用,数据表记录顺序仍然保持原始的数据排列,必须指定某个索引标识为主控索引后,数据表记录的排列顺序才会跟着这个标识的索引顺序变化。 第59页,共93页,2022年,5月20日,8点26分,星期日设置主控索引的两种方法:、命令法:SER ORDER TO 索引号 | TAG 索引名ASCENDING、DESCENDING功能:将指定索引号或者索引名的索引作为

31、主控索引。例:将结构索引文件中的“订购单号”设置为当前索引。SET ORDER TO TAG 订购单号或SET ORDER TO 订购单号 第60页,共93页,2022年,5月20日,8点26分,星期日例:将结构索引文件中的“学号”设置为前索引。Set order to tag 学号操作:将学生表中的所在系设为主控索引,并浏览该表。、交互方式:浏览表表菜单属性如:将学生表中的学生号设为主控索引,并浏览该表。第61页,共93页,2022年,5月20日,8点26分,星期日3使用索引快速定位 用SEEK命令定位。格式: SEEK 索引关键字值 ORDER 索引号 | TAG 索引名 ASCENDIN

32、G、DESCENDING功能:以主控索引为序,找索引关键字的值为指定指的记录。例。假设当前正在使用的学生表,将记录指针定位到学号为9921105的记录上。SEEK 9921105 ORDER 学号第62页,共93页,2022年,5月20日,8点26分,星期日4删除索引(1)在表设计器中使用“索引”选项卡选择并删除(2)使用命令 DELETE TAG TagName1 DELETE TAG ALL 第63页,共93页,2022年,5月20日,8点26分,星期日第五节 数据完整性 数据完整性是保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和参照完整性。一、实体完整性与主关键字实体完整性

33、是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。利用主关键字或侯选关键字来保证表中的记录唯一,即保证实体唯一性。第64页,共93页,2022年,5月20日,8点26分,星期日二、域完整性与约束规则数据类型的定义属于域完整性的范畴。因为数据类型的定义本身已经包含了数据的取值范围。域约束规则也称做字段的有效性规则,在插入或修改字段值时被激活,主要用于检验数据的正确性。在表设计器中建立字段有效性规则。第65页,共93页,2022年,5月20日,8点26分,星期日例:以“教师”数据库中的“教师”表为例,设置年龄的有效性规则在20至60之间,当输入的教师年龄不在此范围时给出出错信息,教师的默认

34、年龄为32。在“规则”框中(或表达式生成器)输入表达式:年龄=20.and.年龄=60在“信息”框中输入表达式:“年龄输入错误,应该在20-60之间”在“默认值”框中,输入表达式:32注意:规则是逻辑表达式,信息是字符表达式,默认值类型根据字段类型决定。第66页,共93页,2022年,5月20日,8点26分,星期日三、参照完整性与表之间的关联参照完整性与表之间的关联有关,其含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表操作是否正确。在Visual Foxpro中为了建立参照完整性,必须首先建立表之间的联系。第67页,共93页,2022年,5月20

35、日,8点26分,星期日1、建立表之间的联系在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立两个表之间的联系。将“学生”数据库中的“学生”的“学号”字段设为主索引,“选课”表中的“学号”字段设为普通索引,建立两表之间的关联。方法:在数据库设计器中,将父表中的主索引拖动到子表的普通索引上。第68页,共93页,2022年,5月20日,8点26分,星期日2、设置参照完整性约束建立参照完整性之前必须首先清理数据库。清理数据库是物理删除数据库中所有带删除标记的记录。清理方法:打开数据库管理器,执行“数据库”中的“清理数据库”。设置参照完整性:右键单击连线编辑参照完整性,分

36、别设置:更新规则、删除规则、插入规则。第69页,共93页,2022年,5月20日,8点26分,星期日在“参照完整性生成器”窗口,有三个选项卡供用户选择。其中:当选择“更新规则”选项卡,可以利用三个选择按钮,设置关联表间的更新规则,即如何更新对父表。级联:用新的关键字值更新子表中的所有相关记录;限制:若子表中有相关记录则禁止更新;忽略:允许更新,不管子表中的相关记录。第70页,共93页,2022年,5月20日,8点26分,星期日当选择“删除规则”选项卡,可以利用三个选择按钮,设置关联表间的删除规则。如何删除父表中的内容。级联:删除子表中的所有相关记录;限制:若子表中有相关记录,则禁止删除;忽略:

37、允许删除,不管子表中的相关记录。第71页,共93页,2022年,5月20日,8点26分,星期日选择“插入规则”选项卡,可以利用二个选择按钮,设置关联表间的插入规则。即如何在子表中插入记录:限制:若父表中没有匹配的关键字值,则禁止插入;忽略:允许插入。第72页,共93页,2022年,5月20日,8点26分,星期日例如:学生情况表(一个学生一个记录,以学号建立主索引)和学生考试成绩表(一门课的成绩是一个记录,以学号建立普通索引)。设置“学生”数据库中三个表的参照完整性:更新和删除规则为“级联”,插入规则为“限制”。并验证其结果。第73页,共93页,2022年,5月20日,8点26分,星期日第六节

38、自由表一、数据库表与自由表自由表:不属于任何数据库的表,其扩展名为dbf。以一个独立的文件形式存在,不具备数据库中的表所拥有的部分特性:如长文件名,有效性规则等。可以将自由表添加到数据库中,成为数据库表;也可以将数据库表从数据库中移出,成为自由表。 当没有打开数据库时建立的表就是自由表。 第74页,共93页,2022年,5月20日,8点26分,星期日建立自由表的方法: 从“项目管理器”中选择“自由表”,然后建立。在无数据库打开时,从文件菜单选择“新建”。在无数据库打开时,使用CREAT命令建立。第75页,共93页,2022年,5月20日,8点26分,星期日二、将自由表添加到数据库 在项目管理器

39、中,单击添加,或数据库设计器中,右击选“添加”,可将自由表添加到数据库中。命令法:ADD TABLE 表名 表的长文件名例如 :把自由表TTT添加到当前数据库,并给出具有说明意义的长表名。ADD TABLE ttt NAME 2001级学生军训表第76页,共93页,2022年,5月20日,8点26分,星期日三、从数据库中移出表 当数据库不再使用某个表,而其他数据库要使用该表时,必须将该表从当前数据库中移出,使之成为自由表。在项目管理器和数据库设计器中都可以方便地将数据库表移出数据库。命令法:REMOVE TABLE 表名 DELETERECYCLE如果命令中带一个问号,则显示对话框。第77页,

40、共93页,2022年,5月20日,8点26分,星期日“移去” 是从数据库中移出表,使被移出的表成为自由表。“删除” 是不仅从数据库中将表移出,而且还从磁盘上删除该表。一旦某个表从数据库中移出,那么与之关联的所有主索引、默认值及有关的规则都随之消失,因此,将某个表移出的操作会影响到当前数据库中与该表有联系的其它表。第78页,共93页,2022年,5月20日,8点26分,星期日第七节 多个表的同时使用一、工作区的概念 数据库系统中,有时要求几个表同时处于打开状态,以便于表间内容的相互补充,数据表之间进行互访,进行信息资源的共享;为此VF系统设置了分工作区操作的功能。VFP允许用户最多同时打开327

41、67个数据表,但是每次只能对其中的一个表进行操作。这个被选中的数据表叫当前数据表。工作区:内存中开辟的专门用于存贮数据表及相关文件的区域。每个工作区只能打开一个工作表,最多可以建立32767个工作区。第79页,共93页,2022年,5月20日,8点26分,星期日每个工作区都有自己的编号和名称:132767 或者 AJ,W11W32767每次启动VFP后,系统默认1号工作区为当前工作区。每个表打开后都有两个默认的别名,一个是表名,另一个是工作区所对应的别名。在前10个工作区中指定的默认别名是工作区字母A到J,工作区11到32767中指定的别名是W11到W32767。第80页,共93页,2022年

42、,5月20日,8点26分,星期日说明:同一个数据表文件不允许在两个工作区上同时打开,一个工作区中只能打开一个表。二、当前工作区的选择 格式:SELECT 工作区名数据表别名0功能:指定工作区号(1、2、3A、B、C)或别名的工作区为当前工作区。 如用:SELECT 0 则:让系统自动选择区号最小的空闲工作区为当前工作区。第81页,共93页,2022年,5月20日,8点26分,星期日一个表除了前述的两个名称外,还可在use命令中用alias指定的别名: use 学生 in 1 alias student第82页,共93页,2022年,5月20日,8点26分,星期日例:分别在第1、2、3工作区打开学生,课程和成绩三个表,并选择当前的工作区。OPEN DATABASE 学生管理SELECT 1USE 学生SELECT 2USE 课程SELECT 3USE 成绩第83页,共93页,2022年,5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论