ImageVerifierCode 换一换
格式:PPT , 页数:74 ,大小:565KB ,
资源ID:3353440      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3353440.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《Visual FoxPro程序设计(第二版)》第3章 数据库与表的操作.ppt)为本站会员(dzzj200808)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

《Visual FoxPro程序设计(第二版)》第3章 数据库与表的操作.ppt

1、第3章 数据库与数据表的操作,1. 数据库设计基础 2. 数据库操作建立数据库 打开数据库修改数据库 删除数据库 3. 数据库表操作建立数据库表 增加记录 修改数据库表 4. 表记录的操作显示、修改、删除、统计、查询定位 5. 表与表结构的相关操作 6. 索引与排序索引及其类型 创建索引 索引的使用 排序 7. 数据完整性与永久联系 8. 自由表 9. 多工作区与多表操作,本 章 要 点,1. 数据库设计基础,如果使用较好的数据库设计过程,就能迅速、高效地创建一个设计完善、结构合理的数据库,为日后访问所需的信息提供方便。数据库应用系统与其他计算机应用系统相比,一般都具有数据量庞大、数据保存时间

2、长、数据关联比较复杂、用户要求多样化等特点。设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。在Visual FoxPro中具体实施时表现为数据库和表结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。,一 设计原则为了合理组织数据,应当遵从以下基本设计原则: 1. 设计应当遵从概念单一化“一事一地“的原则一个表描述一个实体或实体间的一种联系。避免设计大而杂的表,首先分离那些需要作为单个主题而独立保存的信息,然后通过Visual FoxPro确定这些主题之间有何联系,以便在需要时把正确的信息组合在一起。通过将不同的信息分散在不同的表中,可以使数据的工作和维护工作

3、更简单,同时也易保证建立的应用程序具有较高的性能。 2. 避免在表之间出现重复字段除了保证表中有反映与其他表之间存在联系的外部关键字之外,尽量避免在表之间出现重复字段,这样做的目的是使数据冗余尽量小,防止在插入、删除和更新时造成数据的不一致。,3. 表中的字段必须是原始数据和基本数据元素表中不应包括通过可以得到的“二次数据“或多项数据的组合。能够通过计算从其他字段推导出来的字段也应尽量避免。在特殊情况下可以保留计算字段,但是必须保证数据的同步更新。可以通过Visual FoxPro的触发器来保证重复字段的同步更新。 4. 用外部关键字保证有关联的表之间的联系表之间各关联依靠外部关键字来维系,使

4、得表具有合理结构,不仅存储了所需要的实体信息并且反映出实体之间客观存在的联系,最终设计出满足应用需求的实际关系模型。,二 设计的步骤利用Visual FoxPro来开发数据库应用系统,可以按照以下步骤来设计: 1. 需求分析。在设计数据库的过程中首先必须通过对用户需求进行详尽分析,才有可能设计出满足用户应用需要的数据库应用系统。用户需求主要包括三方面:1) 信息需求:用户要从数据库获得的信息内容。2) 处理需求:数据完成什么处理功能及处理的方式。3) 安全性和完整性要求首先要与数据库的使用人员多交流,尽管收集资料阶段的工作非常繁琐,但必须耐心细致地了解现行业务处理流程,收集全部数据资料以在后面

5、的设计步骤中使用。,2. 确定需要的表。可以着手把需求信息划分成各个独立的实体。每个实体都可以设计为数据库中的一个表。一般遵从一个表描述一个实体或实体间的一种联系。 3. 确定所需字段。确定在每个表中要保存哪些字段。通过对这些字段的显示或计算机应能够得到所有需求信息。一般应注意:每个字段直接和表的实体相关;以最小的逻辑单位(不可再分)存储信息;表中的字段必须是原始数据;确定主关键字字段,以便迅速关联多个表中的数据。 4. 确定联系。对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。必要时,可在表中加入字段或创建一个新表来明确联系。,5. 设计求精。对设计进一步分析,查找其中的错误。

6、检查可能的设计缺陷和需要改进的地方。创建表,在表中加入几个示例数据记录,看能否从表中得到想要的结果。需要时可调整设计。在初始设计时,难免会发生错误或遗漏数据。这只是一个初步方案,以后可以对设计方案进一步完善。完成初步设计后,可以利用示例数据对表单、报表的原型进行测试。Visual FoxPro很容易在创建数据库时对原设计方案进行修改。可是在数据库中载入了大量或连编表单和报表之后,再要修改这些表就困难得多了。正因如此,在连编应用程序之前,应确保设计方案已经考虑得比较合理。,2. 数据库操作,如果想把多个表联系起来,就一定要建立数据库。只有把这些有关系的表存放在同一个数据库中,确定它们的关联关系,

7、数据库中的数据才能被更充分地利用。(1)数据库的建立建立数据库的常用方法有以下三种: 在项目管理器中建立数据库 通过“新建“对话框建立数据库 使用命令交互建立数据库命令格式:CREATE DATABASE Visual FoxPro在建立数据库时建立了扩展名分别为 .DBC、.DCT和 .DCX的三个文件。使用命令建立数据库后不打开数据库设计器,只是数据库处在打开状态,即紧接着的后续命令不必再使用OPEN DATEBASE命令来打开数据库。使用以上三种方法都可以建立一个新的数据库,如果指定的数据库已经存在,很可能会覆盖掉已经存在的数据库。为安全起见可以先执行命令SET SAFETY ON。,在

8、数据库中建立表或使用数据库中的表时,都必须先打开数据库,与建立数据库类似,常用的打开数据库的方式也有三种: 在项目管理器中打开数据库; 通过工具栏上的“打开“按钮或者选择“文件“菜单下的“打开“对话框打开数据库; 使用命令打开数据库。语法格式:OPEN DATABASE EXCLUSIVE | SHARED通常在Visual FoxPro开发环境下交互操作时使用前两种方法,在应用程序中使用命令的方法。在项目管理器中选择了相应的数据库时,数据库将自动打开,所以此时用户可能没有打开数据库的感觉,但不必再手工执行打开数据库的操作。,(2)打开数据库,注意:当数据库打开时,包含在数据库中的所有表都可以

9、使用,但是这些表不会自动打开,使用时需要用USE打开。事实上打开一个表并不一定要打开数据库,因为Visual FoxPro要兼容以前的版本。Visual FoxPro在执行查询和表单时可以自动打开和选择数据库。Visual FoxPro在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库(SET DATABSE TO ),所有作用于数据库的命令或函数是针对数据库而言的。 关闭数据库:CLOSE DATABASE,在Visual FoxPro中修改数据库实际是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。数据库设计器是交互修改数据库对象的界面和工具

10、,其中显示数据库中包含的全部表、视图和联系。在“数据库设计器“窗口活动时,Visual FoxPro显示“数据库“菜单和“数据库设计器“工具栏。可以用以下三种方法打开数据库设计器: 从项目管理中打开数据库设计器; 从“打开“对话框中打开数据库设计器; 使用命令打开数据库设计器。命令格式:MODIFY DATABASE ,(3)修改数据库,在练习或在开发过程中,如果一个数据库不再使用了随时可以删除,一般可以在项目管理器中删除数据库,也可以用命令删除数据库。因为Visual FoxPro的数据库文件并不真正含有数据库表或其他数据库对象,只是在数据库文件中登录了相关的条目信息,表、视图或其他数据库对

11、象是独立存放在磁盘上的。所以不管是“移去“还是“删除“操作,都没有删除数据库中的表等对象,要在删除数据库的同时删除表等对象,需要使用命令方式删除数据库。删除数据库的命令格式: DELETE DATABASE DELETETABLES注意: DELETETABLES选项在删除数据库的同时将删除数据库中的表;如果SET SAFETY设置为ON,则Visual FoxPro会提示是否要删除数据库,否则不出现提示,直接进行删除操作。,(4)删除数据库,3.数据库表操作,Visual FoxPro将表分为两种:自由表和数据库表。自由表可以单独使用,数据库表从属于某一数据库的表,与数据库相关联。建立数据表

12、时,首先要对所处理的对象进行调查分析,再根据需要设计一张二维表。当表的行、列个数及每列中数据的属性确定后,再把数据集合在其中即可。下面以日常工作中“学生档案表 ”的设计过程为例,具体介绍Visual FoxPro系统中数据库表的建立过程。 (1)定义表中的数据类型1)定义二维表名设计一张二维表,首先要给表起个名字。 2)二维表栏目设计首先确定表中有几个栏目,然后根据每一个栏目所含内容的不同设计栏目标题和属性。由此,决定每一列存放的数据的内容和属性。栏目一旦被设定,表的总体框架也就设计完成,就可以依照数据的属性将数据填入表中。3)填写二维表的内容,表3-1 学生档案表,从表3-1可以看到,它是由

13、以下几部分组成的:表的名字(标题):每张表都有一个名字,是用来概括表的内容。例如上表的名字为“学生档案表”。表中第一行即是表头,它标明了每一列对应数据的属性。例如在表3-1中的学号、姓名、性别等等。表中其它行的数据是表的内容,由每行中具体的数据项内容组成的,它标明了某一事物的基本内容。例如在表3-1中,第二行反映的便是江涛的个人情况。,4)定义数据表的结构在Visual FoxPro 系统中,一张二维表对应一个数据表,称为表文件(Table)。一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。数据表的文件名相当于二维表中的表名,它是数据表

14、的主要标识,用户可以依靠数据表名在磁盘上存取、使用指定的数据表。数据表的结构相当于二维表的表头,二维表的每一列对应数据表中的一个字段,其属性决定了字段名、字段类型和字段长度。数据表中的记录是数据表中不可分割的基本项,即二维表中的表的内容。一个数据表的大小,主要取决于它拥有的数据记录的多少。不包含记录的数据表称为空表。,定义数据表的结构,就是根据二维表的定义来确定数据表的结构。即确定表的组织形式,定义表中的字段个数、字段名、字段类型、字段宽度及是否以该字段建立索引等。如果我们以表3-1的内容建立一个数据表,它的结构可以按表3-2定义。,建立数据库表的最简单和直接使用数据库设计器:方法一:在“数据

15、库”菜单中选择“新建表”或右击数据库设计器中的任一空白区域,从弹出的快捷菜单中选择“新建表”,再选择“新建表”(或“表向导”);在“创建”窗口,输入要建立的表的名字;然后在打开的“表设计器”窗口,逐一地定义表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的建立。方法二:命令格式:OPEN DATABASE CREATE 一般数据表对应于磁盘上的一个扩展名为 .DBF的文件,如果有备注型或通用型字段则磁盘上还会有一个对应扩展名为 .FPT的文件。 注意:如果没有用OPEN DATABASE打开数据库,直接使用CREATE命令建立表也是可以的,但此时建立的是自由表,界面也比较简单,不

16、包含有些在数据库中才能实现的功能。,(2)创建数据表,在Visual FoxPro 系统环境下,除使用表设计器创建表外,还可以用表向导创建表。使用表向导,就是把已有的表作为“样本”,在“向导”的引导下,通过筛选、修改操作完成新表的创建。由于建表繁琐,一般很少使用。 下面就数据库“表设计器”中“字段”选项卡中常用的属性信息及其设置方法叙述如下:1)显示格式“显示”区的“格式”文本框用于输入格式表达式,确定字段在浏览窗口、表单或报表中显示时采用的大小写、字体和样式。例如,输入一个字符“A”,表示只能输入字母,输入一个字符“!”,表示使浏览窗口输入输出时将字母都转换为大写。 输入掩码“显示“区的“输

17、入掩码“文本框用于指定字段的输入格式,,与格式文本框不同的是,输入掩码必须按位指定格式。例如,字段“XH”的输入掩码设置为999999999,对应的9只允许输入数字,不能输入字母或其他符号。,限制输入数据的范围,控制输入数据的正确性,提高输入速度。输入的掩码字符见下表:,标题显示区的“标题”文本框用于为浏览窗口、表单或报表中的字段标签输入表达式。例如,若在该文本框中输入“歌手编号“字样,则在浏览窗口中,GSBH字段的列标题将显示歌手编号。2)字段有效性字段有效性区包括规则、信息和默认值3个文本框。可以直接在文本框中输入数据,也可以通过文本框右边的对话按钮显示出表达式生成器对话框,在其中进行设置

18、。规则文本框用于输入对字段数据有效性进行检查的规则,即一个条件。例如,在XB的规则文本框中输入:XB=“男” or XB=“女“ ,对于在XB字段输入的数据,Visual FoxPro会自动检查它是否符合该条件,如果不符合则必须进行修改,直到符合条件时才允许光标离开XB字段。,信息文本框用于指定出错提示信息,当在该字段中输入的数据违反条件时,出错信息将照此显示。例如,在信息文本框中输入:“性别必须为男或女”,如果输入的性别不满足,则显示出错提示信息“性别必须为男或女“。默认值文本框用于指定字段的默认值。当增加记录时,字段默认值会在新记录中显示出来,从而提高输入速度。例如,XB字段的默认值为“女

19、“。3)字段注释字段注释则通常出现在项目管理器中,当用户在项目管理器中选定了一个表或一个字段后,在项目管理器的底部就会出现事先在数据词典中设置的注释,便于日后或其他人对数据库进行维护。,(3)向表中加入记录,通过前面的介绍,我们知道一个表是由表的结构与表中的记录两部分组成的。向表中加入记录,就是对表进行数据输入的操作。1)创建表时立即输入数据创建表即定义表结构是通过表设计器来完成的,而向表中加入数据,要在表“浏览”窗口或表“编辑”窗口中进行。在创建表时,如果表中所有字段的属性已定义完成,可按“确定”按钮保存表结构,同时打开“系统”窗口,显示“现在输入数据吗?”的对话。选择“是”按钮,可以立即进

20、入表“浏览”窗口,进行表中数据的输入。,2)以追加方式输入数据在建立表结构时,如果用户没有选择立即方式向表输入数据,可以用追加数据方式向表输入数据。该操作是在表“浏览”或表“编辑”窗口进行的。操作步骤是:打开要输入数据的表;打开“显示”菜单,选择“浏览”,然后选择“编辑”或“浏览”,可进入表“编辑” 或“浏览”窗口;在此窗口可以通过选择“显示”菜单下的“追加”选项向表输入数据,或修改表中原有数据。无论是在表“编辑”窗口还是在表“浏览”窗口,都可以对表中的数据进行追加,只是显示方式有所不同。在这两个窗口中,不仅可以进行数据的输入,同时也可以编辑修改表中的数据。也可使用命令:APPEND BLAN

21、K追加记录或INSERT BEFORE BLANK插入记录,(4)输入数据,1)数值型、字符型 2)日期型、逻辑型MM/DD/YYTtYy、FfNn 3)备注型数据输入备注型字段由于其长度不定,因此,该字段数据不能同其它类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。备注型字段数据输入的操作方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在“编辑”窗口或“浏览”窗口,把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。在这个窗口内,用户可以输入或修改备注型数据。,4)通用型数据的输入通用型字段数据多数是用于存储OLE对象,如图象、声音、电子表格和文字处理文档等,因为其长度的

22、不确定性,通用型字段数据也不能和常规类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。通用型字段数据输入的方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在表“编辑”窗口或表“浏览”窗口下,把光标移到通用型字段下双击,即可进入通用型字段的数据编辑窗口。然后再打开“编辑”菜单,选择“插入对象”;在“插入对象”窗口,在“对象类型”列表框中,选择插入对象类型“BMP图像”;选择“新建”或“由文件创建”按钮,BMP文件就被插入到通用字段中了。如果用户想拥有更好的数据输入和数据编辑环境,可以根据需要开发应用程序,为数据输入提供更方便的操作方法。,(5)修改表结构,在Visual FoxPr

23、o中,数据表的结构可以任意修改。如增加、删除字段,修改字段名、类型、宽度、索引等。如果当前在数据库设计器中,可直接用鼠标右击要修改的表;否则应先使用USE命令打开表:USE 利用表设计器修改数据表的结构,操作方法有二种。方法一:打开“文件”菜单,选择“打开”;在“打开”窗口,输入要修改表结构的表名字;在“表设计器”窗口,修改表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的修改。方法二:命令格式:MODIFY STRUCTURE 另外Visual FoxPro中显示表结构的命令是:LIST | DISPLAY STRUCTURE TO PRINT,4. 表记录的操作,(1)数据的

24、显示和修改方式在 Visual FoxPro系统环境下,当表建立完成后,表的数据和结构已基本确定,用户可以通过表设计器显示表结构;并且采用表“浏览”和表“编辑”两种操作方式对表中的数据进行显示和修改。 1)用编辑方式显示和修改数据在表“编辑”窗口,可以采用“编辑”方式,显示和修改表中的数据。在表“编辑”窗口,可以使用鼠标调整浏览窗口的大小,调整每个字段的显示顺序和改变成有“浏览”和“编辑”两种显示方式的窗口。2)用浏览方式显示和修改数据在表“浏览”窗口,可以采用“浏览”方式,显示和修改表中的数据。在表“浏览”窗口,同样可以使用鼠标调整窗口的大小、调整每个字段的显示宽度和改变成有“浏览”和“编辑

25、”两种方式显示的窗口,3)显示记录的命令LIST | DISPLAY 范围条件 FIELDS OFFTO PRINTER PROMPT | TO FILE 4)修改记录的命令 用EDIT、CHANGE或BROWSE命令交互式修改 用REPLACE命令修改REPLACE WITH ADDITIVE , WITH ADDITIVEFOR 该命令可以直接用指定表达式或值修改记录,如果不使用FOR短语,则默认修改的是当前记录。,(2)删除和恢复表中的数据,1)逻辑删除表中的记录逻辑删除就是给暂时不使用的记录加一个删除标记。另外,对需要彻底删除的记录,也必须要先做逻辑删除后再做物理删除。逻辑删除表中的记

26、录,操作方法是,打开要进行逻辑删除操作的表,并进入表“浏览”窗口。方法一:在表“浏览”窗口,把鼠标对准其删除标记栏,单击左键,这时要进行逻辑删除的记录就被加上了删除标记。这种操作方法只对单记录进行逻辑删除有效。方法二:在“浏览”窗口,打开“表”菜单,选择“删除记录”,在“删除”窗口,可以通过选择作用范围确定要进行逻辑删除的部分记录或在For对话框中,设置逻辑删除条件表达式来确定逻辑删除的记录。方法三:置删除标记的命令命令格式:DELETE 范围FOR ,2)恢复表中逻辑删除的记录对加上逻辑删除标记的记录,如果用户还想恢复其使用权,可对其进行恢复记录的操作。恢复已进行逻辑删除的记录,操作方法是,

27、打开要进行恢复操作的表,并进入表“浏览”窗口。方法一:在表“浏览”窗口,把鼠标移到要进行恢复的记录上,对准其删除标记栏,单击左键除去删除标记。方法二:在“浏览”窗口,打开“表”菜单,选择“恢复记录”;在“恢复记录”窗口,可以通过选择作用范围确定要进行恢复的部分记录;或在For文本框中,设置条件表达式来确定恢复的记录;指定范围或满足条件的记录都被除去了删除标记。方法三:恢复记录的命令命令格式:RECALL 范围FOR ,3)物理删除表中的记录物理删除就是把无效的记录彻底从磁盘中删除掉。要想彻底删除表中无效的数据,必须先做逻辑删除后再做物理删除。操作方法是:打开要进行物理删除操作的表;在表“浏览”

28、窗口,若没有对表中记录做逻辑删除,要对进行物理删除的记录先进行逻辑删除;若已对若干记录做了逻辑删除,数据表中有了逻辑删除记录后,则选择“表”菜单,再选择“彻底删除”,在弹出的对话框中选择“是”,数据表中所有带有删除标记的记录将被彻底删除掉。物理删除加了删除标记的记录命令:PACK物理删除表中的全部记录:ZAP该命令可以物理删除表中的全部记录,不管是否有删除标记。它只是删除全部记录,并没有删除表,即执行该命令后表结构依然存在。,(3)数据表中记录的定位,在Visual FoxPro 系统环境下,表中的每一列数据是通过字段名来标识的,而每一行数据是通过记录号来标识的。用户对表中每一个数据项的访问,

29、是通过记录号和字段名来进行的。也就是说,指明了记录号(表的行)和字段名(表的列),就确定了数据项(表中的某一数据)。在向表输入数据时,系统按照其输入的前后顺序,给每一个记录赋予一个记录号。最先输入的记录为1号记录,其次2号记录,以此类推。在Visual FoxPro 系统内部,有一个用以确定当前记录的记录指针,记录指针指向哪一个记录,这一个记录就是当前操作的记录,即当前记录。当表打开时,当前记录为第一个记录。表文件一旦打开,表中的记录指针是可以移动的,所以当前记录是某一时刻的操作对象。数据表中记录的定位,实质上就是确定哪一个记录为当前记录。,确定当前记录,操作方法是,打开要使用的表,在“显示”

30、菜单下,选择“浏览”;打开“表”菜单,选择“转到记录”,子菜单不同的选项,可以将记录指针移动到相应的记录上。1)选择“第一个”,确定第一个记录为当前记录;2)选择“最后一个”,确定最后一个记录为当前记录;3)选择“下一个”,确定当前记录的下一个记录为当前记录;4)选择“前一个”,确定当前记录的前一个记录为当前记录;5)选择“记录号”,便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;6)选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件表达式,确定满足定位条件表达式的第一个记录为当前记录。,也可使用命令来实现记录指针的定

31、位:1)用GOTO或GO命令直接定位GO | GOTO TOP | BOTTOM | 2)SKIP命令SKIP 数值3)用LOCATE命令定位LOCATE FOR 范围CONTINUE,5. 表与表结构的相关操作,(1)表的复制 命令格式:COPY TO FIELDS FOR/WHILETYPE 功能:把当前数据表文件中的全部或部分数据复制到指定的新文件中。 说明:1) 必须先打开被复制的数据表文件。2) 默认复制成的新文件是一个数据表文件,其扩展名默认为.DBF。原数据表文件带有.FPT文件时,复制后自动生成与新数据表文件同名的.FPT文件。3) 选择项FIELDS用以指定复制到新表文件中的

32、字段结构,缺省时为全部字段。4) 缺省时指ALL(全部数据记录)。5) 选择项TYPE 表示把打开的数据表文件按指定的格式复制成一个新的.TXT文件。,(2)表结构的复制 命令格式:COPY STRUCTURE TO FIELDS 功能:把当前数据表的结构全部或部分复制到新的.DBF文件中,从而建立一个只有结构、没有数据记录的空数据表文件。 说明: 1)必须先打开被复制的数据表文件。 2)复制成的新文件是一个数据表文件,其扩展名默认为.DBF。 3)选择项FIELDS用以选定要复制到新表文件中的字段名称,缺省时为复制全部字段。 4)复制成的新数据表只有结构没有数据记录。,(3) 数组与数据表记

33、录之间的数据传递 1)SCATTER命令 命令格式:SCATTER FIELDS MEMO TO 功能:把当前表的当前记录的数据传递到指定数组中。 说明:FIELDS指定所传递的字段,缺省为所有字段。但通用字段在该命令中被忽略,不能传递。若要传递备注型字段,则必须在命令中包含MEMO选项。TO用来指定存放记录的数组,SCATTER命令把当前记录的字段内容从第一个字段起按顺序依次拷贝到指定数组的每个元素中。如果数组的长度大于字段个数,则多余的数组元素的值不变;如果数组不存在或数组长度不够,则该命令自动创建一个新的数组。数组元素与相应的字段具有相同的数据类型。,2)GATHER命令命令格式:GAT

34、HER FROM FIELDSMEMO功能:将数组中的数据传递到当前表的当前记录。但通用型字段总是被忽略。说明:FROM 指定向数据表传递数据的数组。传递是从数组的第一个元素依次将数据存放到当前记录的相应字段。FIELDS 指定被替换的字段,省略则从第一个字段开始。MEMO选项功能:传递数据将包括Memo字段,否则将跳过Memo字段。,索引实际上是一种排序,但是它不改变数据表中数据的物理顺序,而是另外建立一个记录号列表。它与通常的图书目录相同,图书中的目录指明了章、节的页码,而表的索引指明由某一字段值的大小决定的记录排列的顺序。表一旦按索引表达式建立索引后,就产生了一个相应的索引文件(.IDX

35、与.CDX)。一旦表和相关的索引文件被打开,则对表操作时,记录的顺序按索引表达式值的逻辑顺序显示和操作。 在Visual FoxPro系统中,可以为一个表建立多个索引,每一个索引确定了一种表记录的逻辑顺序。一个表中,索引的多少一般并不影响表的使用性能,但有时不常使用的索引也会降低表的性能。在Visual FoxPro系统中,同一个数据库中的多个表,以同名字段建立索引后,可根据索引表达式的值建立数据库中多个表间的关联关系。,6.索引与排序,(1)索引类型,Visual FoxPro系统提供了四种不同的索引方式,它们分别是:主索引、候选索引、普通索引和唯一索引。1)主索引在数据库容器中的数据表可以

36、建立主索引(Primary Index)。索引表达式的值是唯一能够标识每个记录处理顺序的值。因此,一个数据表只能建一个主索引。有的情况下,在数据表中有多个字段值都能够确定记录的顺序,但表中已有主索引,则它们可以建立候选索引。主索引表达式值经常在多个文件之间形成关系,而且可作为被引用数据表中的查找值。主索引主要用于永久性的主数据表中或者建立参照完整性的被引用表中。,2)候选索引候选索引像主索引一样,它的索引表达式的值是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立多个候选索引,它在特定环境下可以视为主索引。如果一个表中已有主索引,则只能建立候选索引。3)普通索引普通索引表示把由索引表

37、达式为每个记录产生的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以重复存储,并用独立的指针指向各个记录。4)唯一索引唯一索引表示把由索引表达式为每个记录产生的唯一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则只存储第一个索引表达式值。,从索引的组织方式来讲索引共有两类:简单 .idx 索引索引 结构复合索引复合.cdx索引非结构复合索引与表名同名的.cdx索引是一种结构复合压缩索引,它是Visual FoxPro数据库中最重要的一种索引文件,前面用表设计器中建立的索引都是这类索引。它具有如下特性: 在打开表时自动打开; 在同一索引文件中能包含多个索引关键字; 在添加、更

38、改或删除记录时自动维护索引。因此,一般只使用结构复合压缩索引,而非结构索引多半是为了与以前版本兼容,建议在新的应用中不再使用。如果是临时用途,不希望以后系统自动维护索引,或者使用完后就删除的索引文件,则可以使用简单索引。,(2)创建索引,在Visual FoxPro中,一般情况下都可以在表中交互建立索引,特别是主索引和候选索引是在设计数据库时确定好的。但有时需要在程序中临时建立一些普通索引或唯一索引,所以仍然需要了解一下索引命令,并且通过索引命令还可以进一步理解Visual FoxPro的索引和索引文件。1)利用表设计器可以对已有的表创建索引利用表设计器为已有的表创建索引,操作方法是在“表设计

39、器”窗口,选择“索引”选项卡,再选择以下参数: 在索引名选项中,输入索引字段名; 在排序选项中,选择索引方向,升序()或降序(); 在类型选项中,选择索引类型; 在表达式选项中,输入索引字段名或者索引表达式; 在筛选选项中,限制记录的输出范围。 完成索引建立或撤消索引操作。 注意:此索引表为结构化索引,且当前无主索引。,2)用命令建立索引命令格式:INDEX ON TO COMPACT| TAG OF FOR 条件ASCENDING | DESCENDINGUNIQUE | CANDIDATEADDITIVE使用命令可以建立普通索引、唯一索引(UNIQUE )或候选索引(CANDIDATE),

40、但没有主索引,前面提到主索引和候选索引具有的功能,在表设计器中指定一个主索引实际就是指定了一个主关键字。通常主索引用于主关键字;侯选索引用于那些不作为主关键字但字段值又必须唯一的字段;普通索引一般用于提高查询速度;惟一索引用于一些特殊的程序设计。,(3)索引的使用,1)使用菜单方式在Visual FoxPro 系统环境下,可以用字段名或表达式建立索引,其中使用字段名对记录排序是最常见的操作。一个表经常分别指定几个字段名建立索引,每一个索引表示一种表中记录的顺序。利用表设计器使用索引排序的操作方法如下:利用表设计器对表中若干字段,以字段名建立索引。在Visual FoxPro 系统主菜单下,打开

41、“表”菜单,选择“属性”,进入“工作区属性”窗口。在“工作区属性”窗口,打开索引顺序对话框,选择索引标识(字段名、表达式),按“确定”按钮,表中的数据按其索引字段值的大小顺序显示。,2)使用索引命令打开(关闭)索引文件SET INDEX TO 设置当前索引SET ORDER TO 索引序号 |索引名 | TAG 标识名 OF 复合索引文件名 使用索引快速定位(查找)SEEK 删除索引DELETE TAG OF , OF . 或DELETE TAG ALL OF ,索引的顺序是逻辑的,排序则不同,是物理的。所谓排序,是指对当前数据表按指定字段值的大小,重新排列数据表中记录的顺序到另外一个表中(表

42、文件名不能与当前表相同),当前表不发生变化。命令格式:SORT TO ON /A/D/C,/A/D/C FOR/WHILE FIELDS 说明: 1)排序时,数值型数据按值的大小进行;字符型数据按ASCII码值的大小,汉字按拼音字母的ASCII码值的大小;日期型数据按日期值排序;逻辑型数据按.T.F.。 2)排序关键字、等,不能为备注型和通用型字段。 3)排序时在关键字之后设定排序方法。/A和/D分别表示升序和降序(二者只能取其一),/C表示排序时不区分字母的大小写。若缺省排序方式,则默认为升序。,(4)排序,(5)统计命令,1)记录统计的命令COUNTFOR/WHILETO功能:统计指定范围

43、内满足条件的记录的个数,结果保存在指定变量中。 2)数据表记录求和SUM FOR/WHILETO 各选项均缺省时,对所有数值字段求和,且统计结果不保留。 3)字段平均值AVERAGE FOR/WHILE TO ,4)计算命令CALCULATECALCULATE FORTO 功能:对包括数据表中字段的表达式表进行指定的运算。 说明:命令中的中可以包括下列函数及它们的组合:SUM():求和。AVG():计算算术平均数。CNT():统计记录数,即进行统计计算的样本个数。MAX | MIN():计算数值表达式及字符表达式的最大(小)值和日期表达式的最后时间。STD():计算标准差。VAR():计算方差

44、。,5)数据表数据的分类汇总(或称分类求和)TOTAL ON TO FIELDS FOR 功能:对一个已排序或索引的数据表文件根据分类关键字的值进行分类求和,得到一个分类求和数据表。 说明:分类汇总前,应先将数据表按关键字排序或索引过。分类:排序或索引表达式(关键字)的值相同的记录,称为同类记录。分类求和:将同类记录的数值型记录求和后,作为一条记录的该字段的值。分类求和数据表:结构与原库结构相同。 记录的值:没有求和的字段,其值是原库中同类记录的第一条记录的值,被求和的字段的值,为同类记录该字段的和。,7. 数据完整性与永久联系,在数据库中数据完整性是指保证数据正确的特性,数据完整性一般包括实

45、体完整性、域完整性和参照完整性等,Visual FoxPro提供了实现这些完整性的方法和手段。(1)实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。在Visual FoxPro中利用主关键字或候选关键字来保证表中的记录的唯一,即保证实体唯一性。如果一个字段的值或几个字段的值能够唯一标识表中的一条记录,则称这样的字段为候选关键字。在一个表中可能会有几个具有这种特性的字段或字段的组合,这时从中选择一个作为主关键字。在Visual FoxPro中将主关键字称作主索引,将候选关键字称作候选索引。,(2)域完整性与约束规则前面所熟知的数据类型的定义属于域完整性的范

46、畴,它通过指定不同的宽度说明不同范围的数据类型,从而可以限定字段的取值类型和取值范围。但这些对域完整性还远远不够,还可以用一些域约束规则来进一步保证域完整性。域约束规则也称作字段有效性规则,在插入或修改字段时被激活,主要用于数据输入正确性的检验。建立字段有效性规则比较简单直接的方法仍然是在表设计器中建立,在表设计器的“字段”选项卡中有一组定义字段有效性规则的项目,它们是“规则(字段有效性规则)”、“信息(违背字段有效性规则时的提示信息)”、“默认值”三项。有效性规则的项目可以直接输入,也可以单击输入框旁的按钮打开表达式生成器对话框编辑、生成相应的表达式。,(3)设置参照完整性参照完整性是关系数

47、据库管理系统的一个很重要的功能。它的大概含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。在Visual FoxPro中为了建立参照完整性,必须首先建立表之间的永久联系(或关系)。数据库中的表建立关联关系后,就可以设置管理关联记录的规则。从而控制相关表中记录的插入、删除或修改。1)建立表间的永久联系在数据库设计器中设计表之间的联系时,要在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立起两个表之间的联系。, 建立表间的一对一关系建立两个表之间的“一对一”关系,首先,要使两个表都具有同一属性的字段;然

48、后,定义父表中该字段为主索引字段(其字段值是唯一的),子表中与其同名的字段为候选索引字段(其字段值是唯一的)。由于两个表中的同一属性的字段值是一对一的关系,因此两个表之间就具有了“一对一”的关系。建立表间的“一对一”关系的 操作方法是: 打开数据库文件,进入“数据库设计器”窗口。 确定主表和子表,并利用表设计器把主表与子表同名的字段定义为主索引字段,把子表中与主表同名的字段定义为侯选索引字段。 在“数据库设计器”窗口,激活主表中的主索引字段,然后按下鼠标左键拖至与其建立关联的子表中的对应字段处松开鼠标左键,数据库中的两个表间就有了一个“连线”,两表间的“一对一”关系就此建立完成。, 建立表间的

49、一对多关系建立两个表之间的“一对多”关系,首先,要使两个表都具有同一属性的字段;然后,定义父表中该字段为主索引字段(字段值是唯一的),子表中与其同名的字段为普通索引字段(字段值可重复)。由于两个表中的同一属性的字段值是一对多的关系,因此两个表之间就具有了“一对多”的关系。建立表间的“一对多”关系,操作方法如下: 打开数据库文件,进入“数据库设计器”窗口。 确定主表和子表,并利用表设计器把父表与子表同名的字段定义为主索引,把子表中与主表同名的字段定义为普通索引字段。 在“数据库设计器”窗口,首先,激活主表中的主索引字段;然后,按下鼠标左键,并拖至与其建立关联的附表中的对应字段处,再松开鼠标左键,数据库中的两个表间就有了一个“连线”,其“一对多”关系就此已建立完成。如果两个表之间建立了“一对多”关系,反过来看子数据表与主数据表间就是“多对一”的关系。,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报