二级VFP_03第三章VisualFoxPro数据库及其操作_第1页
二级VFP_03第三章VisualFoxPro数据库及其操作_第2页
二级VFP_03第三章VisualFoxPro数据库及其操作_第3页
二级VFP_03第三章VisualFoxPro数据库及其操作_第4页
二级VFP_03第三章VisualFoxPro数据库及其操作_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、主讲老师:主讲老师:韩维良韩维良2022年年3月月第三章第三章Visual Foxpro 数据库及其操作数据库及其操作 二级VFP程序设计教程第三章 V FP 数据库及其操作 第一节第一节 Visual Foxpro Visual Foxpro 数据库及其建立数据库及其建立在Visual Foxpro中,数据库是一个逻辑上的概念和手段,用于将相互联系的数据表及其相关的数据库对象统一管理和组织。一般的逻辑层次关系(四级):一般的逻辑层次关系(四级): 数据库数据库数据表数据表记录记录字段字段二级VFP程序设计教程第三章 V FP 数据库及其操作 建立Visual Foxpro 数据库时,建立扩展

2、名是建立扩展名是dbc的数的数据库文件据库文件,与之相关自动建立扩展名为dct的备注文件的备注文件和扩展名为dcx的数据库索引文件的数据库索引文件。建立一个数据库,对应的文件有三个:DBC、DBT、DCX。一、建立数据库一、建立数据库1、在项目管理器中建立数据库、在项目管理器中建立数据库方法:在“数据”选项卡中,选择“数据库”,单击“新建”。 二级VFP程序设计教程第三章 V FP 数据库及其操作 2、通过、通过“新建新建”对话框建立数据库对话框建立数据库方法:在“文件”菜单中选择“新建”。(或者在工具栏上单击“新建”)。3、使用命令交互建立数据库、使用命令交互建立数据库 格式:CREATE

3、DATABASE 库文件名二级VFP程序设计教程第三章 V FP 数据库及其操作 二、使用数据库二、使用数据库在对一个数据库中的表进行操作时,需要先打开这个数据库。在项目管理器中打开数据库。(选中库后,库自动打开)通过“打开”对话框打开数据库。命令法:OPEN DATABASE 库文件名 EXCLUSIVE|SHAREDNOUPDATEVALIDATE(在工具栏中间显示打开的库名)二级VFP程序设计教程第三章 V FP 数据库及其操作 EXCLUSIVE:以独占方式打开,同一时刻只能由一个用户打开操作。SHARED:以共享方式打开,同一时刻可由多个用户打开操作。NOUPDATE:以只读方式打开

4、,不允许对库进行修改。 二级VFP程序设计教程第三章 V FP 数据库及其操作 三、修改数据库三、修改数据库在VISUAL FOXPRO中修改数据库实际上是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。在项目管理器中,选中库,再单击修改。在“文件”菜单中选择“打开”。MODIFY DATABASE 库文件名NOWAITNOEDITNOWAIT只在程序中使用,不在交互命令窗口中使用,即打开库设计器后,程序继续运行,不等待。NOEDIT 打开数据库设计器禁止对数据库进行修改二级VFP程序设计教程第三章 V FP 数据库及其操作 四、删除数据库四、删除数据库项

5、目管理器中选择库,单击“移去”。DELETE DATABASE 库名数据库文件的删除,并不删除所包含的表文件。库文件仅仅建立表之间的联系。二级VFP程序设计教程第三章 V FP 数据库及其操作 第二节第二节 建立数据库表建立数据库表一、在数据库中建立表一、在数据库中建立表建立表时,首先要对所处理的对象进行分析,再根据需要设计一张二维表。当表的行、列个数及每列中数据的属性确定后,再把数据集合在其中即可。 1.定义表中的数据类型定义表中的数据类型 (1)定义二维表名 设计一张二维表,给表起个名字。 (2)二维表栏目设计学号学号姓名姓名性别性别民族民族生日生日婚否婚否家庭地址家庭地址成绩成绩简历简历

6、照片照片1001张三男汉87.4否青海西宁595.50100210031004100510061007考生基本情况表二级VFP程序设计教程第三章 V FP 数据库及其操作 (3)填写二维表的内容、表的名字(标题) 、表中每一列的栏目标题序列为表头,它标明了每一列对应数据的属性。 、表中每一行的数据是表的内容。 (4)定义数据表的结构在Visual FoxPro 系统中,一张二维表对应一个数据表,称为。二级VFP程序设计教程第三章 V FP 数据库及其操作 一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。、数据表的文件名相当于二维表中的表

7、名,它是数据表的主要标识,用户可以依靠数据表文件名在磁盘上存取、使用指定的数据表,以一个文件的形式独立存在。、数据表的结构相当于二维表的表头,二维表的每一列对应数据表中的一个字段,其属性决定了字段名、字段类型和字段长度。二级VFP程序设计教程第三章 V FP 数据库及其操作 、数据表中的记录是数据表中不可分割的基本项,即二维表中的表的内容。 2利用表设计器创建表利用表设计器创建表方方法1:在“文件”菜单中选择“新建”;方法2:CREATE 表文件名方法3、使用数据库设计器建立数据表(1)输入字段名输入字段名一般允许由110字符(自由表)组成,要求以字母开头,不含空格;数据库中的表的字段名最长可

8、达到128个字符。二级VFP程序设计教程第三章 V FP 数据库及其操作 (2)输入字段的类型每一个字段都反映对象一个方面的属性,根据其表达含义,可有不同的数据类型。根据计算机处理数据的特点,必须定义数据类型。(3)输入字段宽度 指该字段所能容纳数据的最大字节数。有些类型的数据宽度是固定的,只要选择了类型,宽度自动确定。所有字段的宽度之和再加上所有字段的宽度之和再加上1(删除标记)就是每个(删除标记)就是每个记录的字节数。记录的字节数。二级VFP程序设计教程第三章 V FP 数据库及其操作 (4)输入小数位数 数值型、浮点型、双精度型的字段可指定小数据位。数值型字段:字段宽度数值型字段:字段宽

9、度=整数部分宽度+小数点1位+小数位宽度小数位至少比整个字段宽度小2。二级VFP程序设计教程第三章 V FP 数据库及其操作 空值空值 NULL项项 允许该字段值为空或使用缺省数据,即尚未存贮数据,或者还没有确定的数据,被设为关键字的字段值不允许为空。同时设置字段的有效性规则时设置其为NULL才可以使用。字段有效性组框字段有效性组框:定义字段的有效性规则、提示信息及设置缺省值。显示组框显示组框 设置字段的输入格式、显示格式、显示标题字段注释字段注释:用于说明,以便于维护。当前行前有一个双向箭头。二级VFP程序设计教程第三章 V FP 数据库及其操作 学号学号姓名姓名性别性别民族民族生日生日婚否

10、婚否家庭地址家庭地址成绩成绩简历简历照片照片1001张三男汉87.4否青海西宁595.50MemGen100210031004100510061007考生基本情况表二级VFP程序设计教程第三章 V FP 数据库及其操作 二、表文件的打开与关闭二、表文件的打开与关闭 1、打开表文件、打开表文件打开的物理含义。命令法命令法:USE 表文件名功能功能:在当前工作区中,打开一指定的表文件。说明:扩展名可省略,如果原来已在该工作区中打开了一个表文件,则关闭它,再打开新的文件;打开后,记录指针指向第一个记录。窗口菜单法窗口菜单法:在“窗口”菜单中选择“数据工作期”,单击“打开”。二级VFP程序设计教程第三

11、章 V FP 数据库及其操作 2、关闭表文件、关闭表文件格式格式: USE关闭在当前工作区中打开的表文件 CLOSEDATABASE关闭所有工作区被打开的表文件 CLOSE ALL 关闭所有工作区中的所有文件; QUIT关闭所有文件,且退出系统窗口菜单法窗口菜单法:在“窗口”菜单中选择“数据工作期”,选择欲关闭的表,单击“关闭”。现象:突然断电,数据丢失。二级VFP程序设计教程第三章 V FP 数据库及其操作 3、表的独占与共享、表的独占与共享在网络环境下使用时,还要确定是独占还是共享。涉及表数据的安全性问题。独占打开独占打开:一张表只能被一个用户打开。共享打开共享打开:一张表可被多个用户同时

12、打开。USE 表名 SHARED:以共享方式打表。USE 表名 EXCLUSIVED:以独占方式打开表。二级VFP程序设计教程第三章 V FP 数据库及其操作 窗口菜单法:在“窗口”菜单中选择“数据工作期”,单击“打开”。二级VFP程序设计教程第三章 V FP 数据库及其操作 三、表中输入数据三、表中输入数据1.创建表时立即输入数据创建表时立即输入数据在创建表时,如果表中所有字段的属性已定义完成,可按“确定”按钮保存表结构,同时打开“系统”窗口,显示“现在输入数据吗?”的对话。二级VFP程序设计教程第三章 V FP 数据库及其操作 选择“是”按钮,可以立即进入表“浏览”窗口,进行表中数据的输入

13、。*在常规选项中,选中“浏览表中启动IME控件”,则在浏览表时,修改汉字字段时,自动打开汉字输入法。2以追加方式输入数据以追加方式输入数据方法:方法:打开欲输入数据的表,执行“显示”菜单中的“浏览”,再执行“显示”菜单下的“追加方式”。 二级VFP程序设计教程第三章 V FP 数据库及其操作 3、命令法追加、命令法追加1)append命令在表的尾部增加记录,有两种格式:append 表尾增加一条记录,并输入数据。append blank 表尾增加一条空记录。2)insert 可在表的任何位置插入新的记录命令:INSERTBEFOREBLANK 功能:在当前表文件中当前记录的前或后边插入一条记录

14、,并输入数据。 二级VFP程序设计教程第三章 V FP 数据库及其操作 BEFORE:表示在当前记录前插入新记录,否则在当前记录后插入;BLANK:表示插入一条空记录,不进入全屏幕输入状态,反之则进入全屏幕输入状态输入数据。 如:在第5条记录后插入一条记录:GO 5INSERT在第10条记录前插入一条空记录:GO 10INSERT BEFORE BLANK二级VFP程序设计教程第三章 V FP 数据库及其操作 4、数据的输入要点、数据的输入要点备注型数据输入备注型数据输入方法:把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。 (输入完memo变成Memo)通用型数据的输入通用型数据的输

15、入方法:把光标移到通用型字段下双击,进入通用型字段的数据编辑窗口。在“编辑”菜单中选择“插入对象”。确定对象后,该字段中的gen变成Gen。 二级VFP程序设计教程第三章 V FP 数据库及其操作 四、修改表结构四、修改表结构1、菜单操作法、菜单操作法方法:打开欲修改的表,执行“显示”菜单中的“表设计器”。在“表设计器”窗口,修改表中所有字段的名字、类型、宽度和是否建立索引,插入新的字段,完成对数据表结构的修改。 2、命令法、命令法格式:MODIFY STRUCTURE 表文件名二级VFP程序设计教程第三章 V FP 数据库及其操作 五、记录指针五、记录指针在向表中输入数据时,系统按照其输入的

16、前后顺序,给每一个记录赋予一个记录号。 记录指针记录指针是VFP系统内部的一个指示器,用于确定当前正在操作的记录。(表中的数据以记录为单位操作)每当打开一个表文件时,指针总是指向第一条记录。 记录指针指向的记录叫当前记录当前记录,记录指针指向哪一个记录,这一个记录就是当前操作的记录,即当前记录。二级VFP程序设计教程第三章 V FP 数据库及其操作 相关的函数:相关的函数:1.表文件尾测试函数表文件尾测试函数格式:EOF(|)功能:测试记录指针是否位于表文件尾。当记录指针位于最后一个记录后时,返回逻辑真,若省略工作区号,则指当前工作区。一般在对表按逐条记录的方式进行处理时,需要该函数,用来判断

17、操作是否结束。二级VFP程序设计教程第三章 V FP 数据库及其操作 文件起始标识首记录(TOP)第二个记录。第i个记录 尾记录(BOTTOM)文件结束标识1234N-1N表文件的逻辑结构:表文件的逻辑结构:二级VFP程序设计教程第三章 V FP 数据库及其操作 use aaGo bottom?eof()skip? eof(),eof(2)Go 1Do while .not.eof() 操作记录 skipEnd do二级VFP程序设计教程第三章 V FP 数据库及其操作 2.表文件首测试函数表文件首测试函数格式:BOF(|)功能:测试记录指针是否位于表文件首(即第一条记录前),若省略工作区号,

18、则指当前工作区。如果位于文件首,返回真,反之为假。二级VFP程序设计教程第三章 V FP 数据库及其操作 3.记录号测试函数记录号测试函数格式: RECNO(|)功能:返回在指定工作区中打开的数据表的当前记录号,若省略工作区号,则指当前工作区。测试当前记录用函数RECNO()。最小值为1,最大值为RECCOUNT()+1。 打开表时记录指针情况:表中无记录:BOF()=.T.EOF()=.T.RECNO()=1表中有记录:BOF()=.F.EOF()=.F.RECNO()=1 二级VFP程序设计教程第三章 V FP 数据库及其操作 4.记录个数测试函数记录个数测试函数格式: RECCOUNT(

19、|)功能:返回当前工作区中打开的表中的记录数。 Use aa ?bof(),recno() skip -1 ?bof(),recno() go bottom ?bof(),recno()二级VFP程序设计教程第三章 V FP 数据库及其操作 skip ?bof(),recno(),RECCOUNT()二级VFP程序设计教程第三章 V FP 数据库及其操作 六、使用浏览窗口操作表六、使用浏览窗口操作表1、打开浏览器窗口、打开浏览器窗口项目管理器项目管理器:列表中选择表,单击“浏览”。数据库设计器数据库设计器:选中表,单击“浏览”,或者右击表,选择“浏览”。使用命令使用命令:打开表以后,Brows

20、e。二级VFP程序设计教程第三章 V FP 数据库及其操作 浏览器窗口有两种显示方式浏览器窗口有两种显示方式:编辑方式和浏览方式切换切换:在“显示”菜单中,选择“浏览”或者“编辑”。浏览窗口的分割浏览窗口的分割:拖动“分割”按钮。(在浏览器窗口左下角黑色方块)2、浏览操作、浏览操作 调整字段显示宽度,调整字段的显示顺序(拖动),但表结构不变。注意:执行浏览或者编辑命令后,菜单中出现“表”菜单项。二级VFP程序设计教程第三章 V FP 数据库及其操作 在同一记录中选择字段在同一记录中选择字段:鼠标或enter 左箭头 右箭头 tab shift+table在上下记录间的切换在上下记录间的切换:鼠

21、标或上下箭头翻页翻页:pageup pagedown3、增加记录、增加记录ctrl+y,以表尾增加一条新记录。4、修改记录、修改记录移动插入点到欲修改的记录上,直接修改。5、删除记录、删除记录ctrl+t,删除当前记录。也可以直接在删除标记上单击。二级VFP程序设计教程第三章 V FP 数据库及其操作 七、删除记录命令(逻辑删除和物理删除)七、删除记录命令(逻辑删除和物理删除)删除记录分两步删除记录分两步:做删除标记(逻辑删除)、彻底删除带标记的记录(物理删除)。1、置删除标记的命令、置删除标记的命令 方法1:在表“浏览”窗口,单击欲删除记录的删除标记。方法2:在“浏览”窗口,执行“表”菜单中

22、的“删除记录”命令。方法3: delete for 条件表达式二级VFP程序设计教程第三章 V FP 数据库及其操作 命令的作用范围:表示对数据库文件记录的操作范围,有以下四种选择: RECORD N:对第N条记录进行操作 NEXT N :对从当前记录开始的N条记录进行操作 ALL :对所有记录进行操作 REST :对从当前记录开始到文件结束的所有记录进行操作二级VFP程序设计教程第三章 V FP 数据库及其操作 相关函数相关函数:DELETED()格式:DELETED(|)功能:判断当前记录是否有删除标记。有删除标记,返回逻辑真。(表中记录的删除规则表中记录的删除规则) Select 0 U

23、se 职工 Delete for 性别=“女”and 职称=“讲师” List 姓名,性别 for deleted()二级VFP程序设计教程第三章 V FP 数据库及其操作 GO 6?DELETE()又如:显示当前表中所有设置了删除标志的记录:DISP ALL FOR DELETE()二级VFP程序设计教程第三章 V FP 数据库及其操作 2、恢复记录的命令、恢复记录的命令方法方法1:在表“浏览”窗口,单击欲恢复记录的删除标记。(开关性质)方法方法2:在“浏览”窗口中,执行“表”菜单中“恢复记录”命令;方法3: recall for 条件表达式 操作:将当前表中已经逻辑删除的男生记录恢复。Re

24、call for 性别=”男”二级VFP程序设计教程第三章 V FP 数据库及其操作 3、物理删除有删除标记的记录、物理删除有删除标记的记录物理删除物理删除就是把加了删除标记的记录彻底从磁盘中删除。 方法1:在“浏览”窗口中,执行“表”菜单中“彻底删除记录”命令;方法2:pack。一旦物理删除,无法恢复。二级VFP程序设计教程第三章 V FP 数据库及其操作 4、物理删除表中的全部记录、物理删除表中的全部记录zap一次删除所有记录。注:不管是否有删除标记,但表本身未被删除,表结构依然存在。二级VFP程序设计教程第三章 V FP 数据库及其操作 八、修改记录命令八、修改记录命令1、EDIT或或C

25、HANGE命令交互式修改命令交互式修改。格式:EDIT/change二级VFP程序设计教程第三章 V FP 数据库及其操作 2、REPLACE成批替换数据(重点)成批替换数据(重点)格式:REPLACE范围字段1WITH表达式1,字段2WITH表达式2FORWHILE条件 功能:对当前表中指定范围内满足条件的所有记录,用表达式的值替换字段中原有的值。如:REPLACE ALL 总分 WITH 数学+语文REPLACE ALL 基本工资 WITH 基本工资+100 FOR 职称=“教授”二级VFP程序设计教程第三章 V FP 数据库及其操作 九、显示记录命令(九、显示记录命令(foxbasefo

26、xbase中更实用)中更实用)格式1:LIST范围字段名表达式FORWHILE条件OFFTO PRINT | TO FILE 文件名 格式2:DISPLAY范围字段名表达式FORWHILE条件OFFTO PRINT| TO FILE 文件名 功能:把满足条件的记录的指定字段的内容显示出来。后者可以分屏显示输出;如果不指定范围和条件,前者默认地输出全部记录,而后者只输出当前记录。 二级VFP程序设计教程第三章 V FP 数据库及其操作 十、查询定位命令十、查询定位命令1、窗口操作方式、窗口操作方式方法:打开要使用的表,在“显示”菜单下,选择“浏览”;在“表”菜单中,选择“转到记录”,子菜单中不同

27、的选项,可以将记录指针移动到相应的记录将记录指针移动到相应的记录上。二级VFP程序设计教程第三章 V FP 数据库及其操作 (1)选择“第一个”,确定第一个记录为当前记录;(2)选择“最后一个”,确定最后一个记录为当前记录;(3)选择“下一个”,确定当前记录的下一个记录为当前记录;(4)选择“前一个”,确定当前记录的前一个记录为当前记录;二级VFP程序设计教程第三章 V FP 数据库及其操作 (5)选择“记录号”, 便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;(6)选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件

28、表达式,确定满足定位条件表达式的第一个记录为当前记录。二级VFP程序设计教程第三章 V FP 数据库及其操作 2、绝对定位命令、绝对定位命令格式:GO数值表达式 记录号表达式 GO TOP GO BOTTOM功能:将记录指针定位于首记录、尾记录或数值表达式的值所指定的记录。 当前记录是谁,可以从状态行看出来;二级VFP程序设计教程第三章 V FP 数据库及其操作 3、相对定位命令、相对定位命令格式 :SKIP数值表达式 功能:将记录指针相对于当前记录向下(正方向)或向上(负方向)移动数值表达式的值所指定的记录数。如:SKIP向下移一条记录,默认为1。 二级VFP程序设计教程第三章 V FP 数

29、据库及其操作 4、按条件定位、按条件定位、条件定位命令、条件定位命令LOCATE 格式:LOCATE范围FORWHILE条件 功能:在指定范围内将指针定位于满足条件的第一条记录,如果没找到满足条件的记录,则记录指针定位于表尾,EOF()函数为逻辑真。缺省范围选择时,取all,即在所有记录中查找。 如:LOCATE ALL FOR 姓名=“王”DISPLAY二级VFP程序设计教程第三章 V FP 数据库及其操作 、继续查找命令、继续查找命令CONTINUE格式:CONTINUE功能:继续查找满足条件的下一条记录;重复多次使用CONTINUE命令,可找到满足条件的所有记录;二级VFP程序设计教程第

30、三章 V FP 数据库及其操作 、查询测试函数、查询测试函数FOUND格式:FOUND()功能:如果找到了满足条件的记录,则返回逻辑真,反之则返回逻辑假;二级VFP程序设计教程第三章 V FP 数据库及其操作 通常的操作模式如下:Locate for 条件DO WHILE FOUND() * 等价:.not.eof() 处理 CONTINUEENDDO用循环对满足条件的所有记录进行操作。二级VFP程序设计教程第三章 V FP 数据库及其操作 第四节第四节 索引索引 一、基本概念一、基本概念什么是索引呢?如一本书,有很多内容,为了快速找到我们需要的章节,借助于目录。那么在数据库中,也有类似于目录

31、的信息,称之为索引。 索引提供了迅速找到某一记录的方法。书中的目录是一份页码的列表,指向书中的书页,但数据库中的索引是一个记录号的列表,指向表中待处理的记录,。 二级VFP程序设计教程第三章 V FP 数据库及其操作 索引索引是按着索引表达式的值使数据表中的记录有序排列的一种技术,在Visual FoxPro系统中是借助于索引文件实现的。一般情况下,表中记录的顺序是由数据输入的前后顺序决定的,并用记录号予以标识。除非有记录插入或者有记录删除,否则表中的记录顺序总是不变的。索引实际上是一种排序,但是它不改变数据表中数据的物理顺序,而是另外建立一个记录号列表。 二级VFP程序设计教程第三章 V F

32、P 数据库及其操作 每一行数据在存储空间的物理位置索引关键字序列二级VFP程序设计教程第三章 V FP 数据库及其操作 一个表可以建立多个索引,每一个索引代表一种处理记录的顺序。即不同的索引,决定了读取记录的不同顺序。二级VFP程序设计教程第三章 V FP 数据库及其操作 二、索引类型二、索引类型1、主索引、主索引在可以建立主索引(Primary Index)。索引表达式的值是唯一能够标识每个记录处理顺序的值。即作为主索引的关键字是不允许重复出现的, 也不允许取空值。只能为数据库中的表设置主索引。二级VFP程序设计教程第三章 V FP 数据库及其操作 2候选索引候选索引候选索引(Candida

33、te Index) 像主索引一样,它的索引表达式的值是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立多个候选索引,它在特定环境下可以视为主索引。 在一个数据表中有时会有多个字段值都可以唯一确定记录的顺序,但由于表只能有一个主索引,所以这些字段值只能作为候选索引。 二级VFP程序设计教程第三章 V FP 数据库及其操作 3普通索引普通索引普通索引(Regular Index)表示把由索引表达式为每个记录产生的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以重复存储,并用独立的指针指向各个记录。二级VFP程序设计教程第三章 V FP 数据库及其操作 4唯一索引唯一索引唯一索引

34、(Unique Index)表示把由索引表达式为每个记录产生的唯一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则只存储第一个索引表达式值。它允许数据表中各记录的索引字段或字段组合表达式的值相同,但在索引文件中只保留数据表中与索引字段值相同的第一条记录。注意:自由表不能设置主索引。二级VFP程序设计教程第三章 V FP 数据库及其操作 三、索引文件类型三、索引文件类型独立索引文件独立索引文件.idx只含有一个索引关键字表达式,其主文件名称不能和相关表同名,而且该文件不会随着表的打开而自动打开。结构复合索引文件结构复合索引文件.cdx包含有多个索引关键字,代表着多个排序方案,如同时将多

35、个.idx文件合成在一个文件中一样。系统把索引当作表的一部分把索引当作表的一部分来处理,在打开表时自动将其打开,因此这种复合索引文件也被称为结结构复合索引文件构复合索引文件。结构复合索引文件结构复合索引文件是一个独立的与表文件主名相同,扩展名为cdx的一个文件,一个表文件只能有一个结构复合索引文件。二级VFP程序设计教程第三章 V FP 数据库及其操作 非结构复合索引文件非结构复合索引文件与结构复合索引文件相同,非结构复合索引文件也包含多个索引项,扩展名也是.cdx,但索引文件是另行建立的,必须用命令打开。非结构复合索引文件名不能与表文件相同,扩展名也是cdx。 二级VFP程序设计教程第三章

36、V FP 数据库及其操作 四、在表设计器中建立索引四、在表设计器中建立索引1、单项索引的建立、单项索引的建立基于一个字段的索引叫单项索引。单项索引的建立有两种方式:单项索引的建立有两种方式:普通索引普通索引的建立:的建立:使用表设计器的字段标签 或 索引标签。在表设计器中,字段标签中,索引的下拉列表框中,选择索引方向,升序()或降序();建立的索引就是一个普通索引。即建立 一个与表同名的CDX索引文件。其他索引的建立:其他索引的建立:必须使用表设计器的索引标签。在表设计器的索引标签中,选择字段和索引类型。二级VFP程序设计教程第三章 V FP 数据库及其操作 2、复合字段索引的建立、复合字段索

37、引的建立基于多个字段的索引叫复合字段索引复合字段索引,代表着多个排序方案 。系统把这种文件当作表的一部分来处理,在打开表时自动将其打开,因此这种复合索引文件也被称为结构复合索引文件。使用表设计器的索引标签,选择确定索引名和类型后,单击“表达式”右侧的按钮,在表达式生成器中确定索引表达式。即:多个排序依据。如前者相同,则按下一个依据。二级VFP程序设计教程第三章 V FP 数据库及其操作 五、用命令建立索引五、用命令建立索引Index on 索引表达式 to 简单索引文件名|tag 结构复合索引名 of cdxfilename ascending |descending unique |cand

38、idateadditive (关闭以前索引,使建立的索引成为当前索引)to 简单索引文件名:则表示建立一个简单索引文件。tag 结构复合索引名:则表示建立一个与表同名的结构复合索引,与表同时打开。of 非结构复合索引文件名:建立一个非结构复合索引文件名。二级VFP程序设计教程第三章 V FP 数据库及其操作 即可以建立三种类型的索引。ascending |descending:升降序。unique |candidate:是唯一索引还是候选索引。Additive:是否关闭以前索引,使建立的索引成为当前索引(有此参数,即追加)。默认为关闭以前的索引。例:index on 年龄 tag 年龄由于主索

39、引与候选索引必须与表一起打开和关闭,所以它只能存储在结构复合索引文件.cdx中,不能放在非结构复合索引文件与独立索引文件中。二级VFP程序设计教程第三章 V FP 数据库及其操作 六、使用索引六、使用索引1.打开索引文件打开索引文件与表名相同的结构索引在打开表时都能够自动打开,但是对于非结构索引必须在使用之前打开索引文件。命令格式: SET INDEX TO 索引文件1,索引文件2,可以打开多个索引文件,并使第一个索引文件成为主控索引文件。二级VFP程序设计教程第三章 V FP 数据库及其操作 2.设置当前索引设置当前索引若数据表中建立了许多索引,其中总有一个为主,数据表记录总是以该索引的要求

40、排序,这个索引就叫主控主控索引或者当前索引索引或者当前索引。结构复合索引文件随着数据表打开后,其中的索引标识(tag)并不起作用,数据表记录顺序仍然保持原始的数据排列,必须指定某个索引标识为主控索引后,数据表记录的排列顺序才会跟着这个标识的索引顺序变化。 二级VFP程序设计教程第三章 V FP 数据库及其操作 设置主控索引的两种方法:、命令法:SET ORDER TO 索引号 | TAG 索引名ASCENDING、DESCENDING功能:将指定索引号或者索引名的索引作为主控索引。例:将结构索引文件中的“订购单号”设置为当前索引。SET ORDER TO TAG 订购单号或SET ORDER

41、TO 订购单号 二级VFP程序设计教程第三章 V FP 数据库及其操作 例:将结构索引文件中的“学号”设置为当前索引。Set order to tag 学号操作:将学生表中的所在系设为主控索引,并浏览该表。二级VFP程序设计教程第三章 V FP 数据库及其操作 、交互方式:浏览表表菜单属性如:将学生表中的学生号设为主控索引,并浏览该表。按“生日”、“成绩”等多个不同索引体验索引的用法。二级VFP程序设计教程第三章 V FP 数据库及其操作 3使用索引快速定位使用索引快速定位 用SEEK命令定位。格式: SEEK 索引关键字值 ORDER 索引号 | TAG 索引名 ASCENDING、DESC

42、ENDING功能:以主控索引为序,找索引关键字的值为指定值的记录。例 假设当前正在使用的学生表,将记录指针定位到学号为9921105的记录上。SEEK 9921105 ORDER 学号二级VFP程序设计教程第三章 V FP 数据库及其操作 4删除索引删除索引(1)在表设计器中使用“索引”选项卡选择并删除或者在字段列表的索引项中选择“无”。(2)使用命令 DELETE TAG TagName1 DELETE TAG ALL 二级VFP程序设计教程第三章 V FP 数据库及其操作 第五节第五节 数据完整性数据完整性 数据完整性数据完整性是保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和

43、参照完整性。一、实体完整性与主关键字一、实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。建立主索引或者候选索引,利用主关键字或候选关键字来保证表中的记录唯一,即保证实体唯一性。即:添加或修改记录时,不接受主关键字相同的数据。二级VFP程序设计教程第三章 V FP 数据库及其操作 二、域完整性与约束规则二、域完整性与约束规则数据类型的定义属于域完整性域完整性的范畴。因为数据类型的定义本身已经包含了数据的取值范围。域约束规则也称做,在插入或修改字段值时被激活,主要。在表设计器中建立字段有效性规则。通过设置一个与字段或记录有关的表达式,从而有效地限制用户输入的

44、数据,达到提高对数据有效性检查的目的。 二级VFP程序设计教程第三章 V FP 数据库及其操作 例:以“教师”数据库中的“教师”表为例,设置年龄的有效性规则在20至60之间,当输入的教师年龄不在此范围时给出出错信息,教师的默认年龄为32。在“规则”框中(或表达式生成器)输入表达式:年龄=20.and.年龄=60在“信息”框中输入表达式:“年龄输入错误,应该在20-60之间”在“默认值”框中,输入表达式:32:规则是逻辑表达式,信息是字符表达式,默认值类型根据字段类型决定。二级VFP程序设计教程第三章 V FP 数据库及其操作 三、参照完整性与表之间的关联三、参照完整性与表之间的关联参照完整性与

45、表之间的关联有关,其含义是其含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的操作是否正确。在Visual Foxpro中为了建立参照完整性,必须首先建立表之间的联系。二级VFP程序设计教程第三章 V FP 数据库及其操作 1、建立表之间的联系、建立表之间的联系在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立两个表之间的联系。将“学生”数据库中的“学生”的“学号”字段设为主索引,“选课”表中的“学号”字段设为普通索引,建立两表之间的关联。方法:在数据库设计器中,将父表中的主索引拖动到子表的普通索引上(注意方向)。二

46、级VFP程序设计教程第三章 V FP 数据库及其操作 2、设置参照完整性约束、设置参照完整性约束建立参照完整性之前必须首先清理数据库,实际上是物理删除数据库中所有带删除标记的记录。清理方法清理方法:打开数据库管理器,执行“数据库”中的“清理数据库”。前提:需指定各自的主控索引。设置参照完整性设置参照完整性:右键单击连线编辑参照完整性,分别设置:更新规则、删除规则、插入规则。二级VFP程序设计教程第三章 V FP 数据库及其操作 在“参照完整性生成器”窗口,有三个选项卡供用户选择。其中:当选择“更新规则”选项卡,可以利用三个选择按钮,设置关联表间的更新规则,即如何对父表更新如何对父表更新。级联级

47、联:用新的关键字值更新子表中的所有相关记录;限制限制:若子表中有相关记录则禁止更新;忽略忽略:允许更新,不管子表中的相关记录。二级VFP程序设计教程第三章 V FP 数据库及其操作 当选择“删除规则”选项卡,可以利用三个选择按钮,设置关联表间的删除规则。如何删除父表中的内容如何删除父表中的内容。级联级联:删除子表中的所有相关记录;限制限制:若子表中有相关记录,则禁止删除;忽略忽略:允许删除,不管子表中的相关记录。二级VFP程序设计教程第三章 V FP 数据库及其操作 选择“插入规则”选项卡,可以利用二个选择按钮,设置关联表间的插入规则。即如何在子表中插入记录如何在子表中插入记录:限制限制:若父

48、表中没有匹配的关键字值,则禁止插入;忽略忽略:允许插入。有了这些规则以后,可以防止一些失误。如学号输入错了,则可以发现等等。二级VFP程序设计教程第三章 V FP 数据库及其操作 例如:学生情况表(一个学生一个记录,以学号建立主索引)和学生考试成绩表(一门课的成绩是一个记录,以学号建立普通索引)。设置“学生”数据库中三个表的参照完整性:更新和删除规则为“级联”,插入规则为“限制”。并验证其结果。二级VFP程序设计教程第三章 V FP 数据库及其操作 第六节第六节 自由表自由表一、数据库表与自由表一、数据库表与自由表自由表自由表:不属于任何数据库的表,其扩展名为dbf。以一个独立的文件形式存在,

49、不具备数据库中的表所拥有的部分特性:如长文件名,有效性规则等。可以将自由表添加到数据库中,成为数据库表;也可以将数据库表从数据库中移出,成为自由表。 当没有打开数据库时建立的表就是自由表。 二级VFP程序设计教程第三章 V FP 数据库及其操作 建立自由表的方法: 从“项目管理器”中选择“自由表”,然后建立。在无数据库打开时,从文件菜单选择“新建”。在无数据库打开时,使用CREAT命令建立。二级VFP程序设计教程第三章 V FP 数据库及其操作 二、将自由表添加到数据库二、将自由表添加到数据库 在项目管理器中,单击添加,或数据库设计器中,右击选“添加”,可将自由表添加到数据库中。命令法:ADD

50、 TABLE 表名 表的长文件名例如 :把自由表TTT添加到当前数据库,并给出具有说明意义的长表名。ADD TABLE ttt NAME 2001级学生军训表二级VFP程序设计教程第三章 V FP 数据库及其操作 三、从数据库中移出表三、从数据库中移出表 当数据库不再使用某个表,而其他数据库要使用该表时,必须将该表从当前数据库中移出,使之成为自由表。在项目管理器和数据库设计器中都可以方便地将数据库表移出数据库。命令法:REMOVE TABLE 表名 DELETERECYCLE如果命令中带一个问号,则显示对话框。二级VFP程序设计教程第三章 V FP 数据库及其操作 “移去” 是从数据库中移出表

51、,使被移出的表成为自由表。“删除” 是不仅从数据库中将表移出,而且还从磁盘上删除该表。一旦某个表从数据库中移出,那么与之关联的所有主索引、默认值及有关的规则都随之消失,因此,将某个表移出的操作会影响到当前数据库中与该表有联系的其它表。二级VFP程序设计教程第三章 V FP 数据库及其操作 第七节第七节 多个表的同时使用多个表的同时使用一、工作区的概念一、工作区的概念 数据库系统中,有时要求几个表同时处于打开状态,以便于表间内容的相互补充,数据表之间进行互访,进行信息资源的共享;为此VF系统设置了分工作区操作的功能。VFP允许用户最多同时打开32767个数据表,但是每次只能对其中的一个表进行操作

52、。这个被选中的数据表叫当前数据表。工作区工作区:内存中开辟的专门用于存贮数据表及相关文件的区域。每个工作区只能打开一个工作表,最多可以建立32767个工作区。二级VFP程序设计教程第三章 V FP 数据库及其操作 每个工作区都有自己的编号和名称每个工作区都有自己的编号和名称:132767 或者 AJ,W11W32767每次启动VFP后,系统默认系统默认1号工作区为当前工作区。每个表打开后都有两个默认的别名,一个是表名,另一个是工作区所对应的别名。在前10个工作区中指定的默认别名是工作区字母A到J,工作区11到32767中指定的别名是W11到W32767。说明:同一个表文件不允许在两个工作区上同

53、时打开,一个工作区中只能打开一个表。二级VFP程序设计教程第三章 V FP 数据库及其操作 二、当前工作区的选择二、当前工作区的选择 格式:SELECT 工作区名数据表别名0功能:指定工作区号(1、2、3A、B、C)或别名的工作区为当前工作区。特例:SELECT 0:让系统自动选择区号最小的空闲工作区为当前工作区。函数:Select()返回当前工作区的区号一个表除了前述的两个名称外,还可一个表除了前述的两个名称外,还可在use命令中用alias指定的别名: use 学生 in 1 alias student二级VFP程序设计教程第三章 V FP 数据库及其操作 例:分别在第例:分别在第1、2、3工作区打开学生,课程

温馨提示

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

评论

0/150

提交评论