首页 《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第3章 数据库与表的操作

《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第3章 数据库与表的操作

举报
开通vip

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

《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第3章 数据库与表的操作
第3章数据库与数据表的操作1.数据库 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 基础2.数据库操作建立数据库打开数据库修改数据库删除数据库3.数据库表操作建立数据库表增加记录修改数据库表4.表记录的操作显示、修改、删除、统计、查询定位5.表与表结构的相关操作6.索引与排序索引及其类型创建索引索引的使用排序7.数据完整性与永久联系8.自由表9.多工作区与多表操作本章要点1.数据库设计基础如果使用较好的数据库设计过程,就能迅速、高效地创建一个设计完善、结构合理的数据库,为日后访问所需的信息提供方便。数据库应用系统与其他计算机应用系统相比,一般都具有数据量庞大、数据保存时间长、数据关联比较复杂、用户要求多样化等特点。设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。在VisualFoxPro中具体实施时表现为数据库和表结构合理,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。一.设计原则为了合理组织数据,应当遵从以下基本设计原则:1.设计应当遵从概念单一化"一事一地"的原则一个表描述一个实体或实体间的一种联系。避免设计大而杂的表,首先分离那些需要作为单个主 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 而独立保存的信息,然后通过VisualFoxPro确定这些主题之间有何联系,以便在需要时把正确的信息组合在一起。通过将不同的信息分散在不同的表中,可以使数据的工作和维护工作更简单,同时也易保证建立的应用程序具有较高的性能。2.避免在表之间出现重复字段除了保证表中有反映与其他表之间存在联系的外部关键字之外,尽量避免在表之间出现重复字段,这样做的目的是使数据冗余尽量小,防止在插入、删除和更新时造成数据的不一致。3.表中的字段必须是原始数据和基本数据元素表中不应包括通过可以得到的"二次数据"或多项数据的组合。能够通过计算从其他字段推导出来的字段也应尽量避免。在特殊情况下可以保留计算字段,但是必须保证数据的同步更新。可以通过VisualFoxPro的触发器来保证重复字段的同步更新。4.用外部关键字保证有关联的表之间的联系表之间各关联依靠外部关键字来维系,使得表具有合理结构,不仅存储了所需要的实体信息并且反映出实体之间客观存在的联系,最终设计出满足应用需求的实际关系模型。二.设计的步骤利用VisualFoxPro来开发数据库应用系统,可以按照以下步骤来设计:1.需求分析。在设计数据库的过程中首先必须通过对用户需求进行详尽分析,才有可能设计出满足用户应用需要的数据库应用系统。用户需求主要包括三方面:1)信息需求:用户要从数据库获得的信息内容。2)处理需求:数据完成什么处理功能及处理的方式。3)安全性和完整性要求首先要与数据库的使用人员多交流,尽管收集 资料 新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单 阶段的工作非常繁琐,但必须耐心细致地了解现行业务处理流程,收集全部数据资料以在后面的设计步骤中使用。2.确定需要的表。可以着手把需求信息划分成各个独立的实体。每个实体都可以设计为数据库中的一个表。一般遵从一个表描述一个实体或实体间的一种联系。3.确定所需字段。确定在每个表中要保存哪些字段。通过对这些字段的显示或计算机应能够得到所有需求信息。一般应注意:每个字段直接和表的实体相关;以最小的逻辑单位(不可再分)存储信息;表中的字段必须是原始数据;确定主关键字字段,以便迅速关联多个表中的数据。4.确定联系。对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。必要时,可在表中加入字段或创建一个新表来明确联系。5.设计求精。对设计进一步分析,查找其中的错误。检查可能的设计缺陷和需要改进的地方。创建表,在表中加入几个示例数据记录,看能否从表中得到想要的结果。需要时可调整设计。在初始设计时,难免会发生错误或遗漏数据。这只是一个初步 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,以后可以对 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 进一步完善。完成初步设计后,可以利用示例数据对表单、报表的原型进行测试。VisualFoxPro很容易在创建数据库时对原设计方案进行修改。可是在数据库中载入了大量或连编表单和报表之后,再要修改这些表就困难得多了。正因如此,在连编应用程序之前,应确保设计方案已经考虑得比较合理。2.数据库操作如果想把多个表联系起来,就一定要建立数据库。只有把这些有关系的表存放在同一个数据库中,确定它们的关联关系,数据库中的数据才能被更充分地利用。(1)数据库的建立建立数据库的常用方法有以下三种:①在项目管理器中建立数据库②通过"新建"对话框建立数据库③使用命令交互建立数据库命令格式:CREATEDATABASE<数据库文件名>VisualFoxPro在建立数据库时建立了扩展名分别为.DBC、.DCT和.DCX的三个文件。使用命令建立数据库后不打开数据库设计器,只是数据库处在打开状态,即紧接着的后续命令不必再使用OPEN DATEBASE命令来打开数据库。使用以上三种方法都可以建立一个新的数据库,如果指定的数据库已经存在,很可能会覆盖掉已经存在的数据库。为安全起见可以先执行命令SETSAFETYON。(2)打开数据库在数据库中建立表或使用数据库中的表时,都必须先打开数据库,与建立数据库类似,常用的打开数据库的方式也有三种:①在项目管理器中打开数据库;②通过工具栏上的"打开"按钮或者选择"文件"菜单下的"打开"对话框打开数据库;③使用命令打开数据库。语法格式:OPEN DATABASE<数据库文件名>[EXCLUSIVE|SHARED]通常在VisualFoxPro开发环境下交互操作时使用前两种方法,在应用程序中使用命令的方法。在项目管理器中选择了相应的数据库时,数据库将自动打开,所以此时用户可能没有打开数据库的感觉,但不必再手工执行打开数据库的操作。注意:①当数据库打开时,包含在数据库中的所有表都可以使用,但是这些表不会自动打开,使用时需要用USE打开。事实上打开一个表并不一定要打开数据库,因为VisualFoxPro要兼容以前的版本。②VisualFoxPro在执行查询和表单时可以自动打开和选择数据库。③VisualFoxPro在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库(SETDATABSETO<数据库文件名>),所有作用于数据库的命令或函数是针对数据库而言的。④关闭数据库:CLOSEDATABASE在VisualFoxPro中修改数据库实际是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。数据库设计器是交互修改数据库对象的界面和工具,其中显示数据库中包含的全部表、视图和联系。在"数据库设计器"窗口活动时,VisualFoxPro显示"数据库"菜单和"数据库设计器"工具栏。可以用以下三种方法打开数据库设计器:①从项目管理中打开数据库设计器;②从"打开"对话框中打开数据库设计器;③使用命令打开数据库设计器。命令格式:MODIFYDATABASE<数据库文件名>(3)修改数据库在练习或在开发过程中,如果一个数据库不再使用了随时可以删除,一般可以在项目管理器中删除数据库,也可以用命令删除数据库。因为VisualFoxPro的数据库文件并不真正含有数据库表或其他数据库对象,只是在数据库文件中登录了相关的条目信息,表、视图或其他数据库对象是独立存放在磁盘上的。所以不管是"移去"还是"删除"操作,都没有删除数据库中的表等对象,要在删除数据库的同时删除表等对象,需要使用命令方式删除数据库。删除数据库的命令格式:DELETEDATABASE<数据库文件名>[DELETETABLES]注意:DELETETABLES选项在删除数据库的同时将删除数据库中的表;如果SETSAFETY设置为ON,则VisualFoxPro会提示是否要删除数据库,否则不出现提示,直接进行删除操作。(4)删除数据库3.数据库表操作VisualFoxPro将表分为两种:自由表和数据库表。自由表可以单独使用,数据库表从属于某一数据库的表,与数据库相关联。建立数据表时,首先要对所处理的对象进行调查分析,再根据需要设计一张二维表。当表的行、列个数及每列中数据的属性确定后,再把数据集合在其中即可。下面以日常工作中“学生档案表”的设计过程为例,具体介绍VisualFoxPro系统中数据库表的建立过程。(1)定义表中的数据类型1)定义二维表名设计一张二维表,首先要给表起个名字。2)二维表栏目设计首先确定表中有几个栏目,然后根据每一个栏目所含内容的不同设计栏目标题和属性。由此,决定每一列存放的数据的内容和属性。栏目一旦被设定,表的总体框架也就设计完成,就可以依照数据的属性将数据填入表中。3)填写二维表的内容表3-1学生档案表从表3-1可以看到,它是由以下几部分组成的:①表的名字(标题):每张表都有一个名字,是用来概括表的内容。例如上表的名字为“学生档案表”。②表中第一行即是表头,它标明了每一列对应数据的属性。例如在表3-1中的学号、姓名、性别……等等。③表中其它行的数据是表的内容,由每行中具体的数据项内容组成的,它标明了某一事物的基本内容。例如在表3-1中,第二行反映的便是江涛的个人情况。 学号 姓名 性别 出生日期 系别 专业 班级 团员否 入学分 照片 特长 19921608 江涛 男 06/07/81 机电 机械制造 机制991 T 467 体育4)定义数据表的结构在VisualFoxPro系统中,一张二维表对应一个数据表,称为表文件(Table)。一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。①数据表的文件名相当于二维表中的表名,它是数据表的主要标识,用户可以依靠数据表名在磁盘上存取、使用指定的数据表。②数据表的结构相当于二维表的表头,二维表的每一列对应数据表中的一个字段,其属性决定了字段名、字段类型和字段长度。③数据表中的记录是数据表中不可分割的基本项,即二维表中的表的内容。一个数据表的大小,主要取决于它拥有的数据记录的多少。不包含记录的数据表称为空表。定义数据表的结构,就是根据二维表的定义来确定数据表的结构。即确定表的组织形式,定义表中的字段个数、字段名、字段类型、字段宽度及是否以该字段建立索引等。如果我们以表3-1的内容建立一个数据表,它的结构可以按表3-2定义。 标题名 字段名 字段类型 字段宽度 小数点 索引否 学号 XH 字符型 9 主索引 姓名 XM 字符型 8 性别 XB 字符型 2 出生日期 CSRQ 日期型 8 系别 XI 字符型 10 专业 ZY 字符型 10 班级 BJ 字符型 9 团员否 TYF 逻辑型 1 入学分 RXF 数值型 3 0 照片 ZP 通用型 特长 TC 备注型(2)创建数据表建立数据库表的最简单和直接使用数据库设计器:方法一:在“数据库”菜单中选择“新建表”或右击数据库设计器中的任一空白区域,从弹出的快捷菜单中选择“新建表”,再选择“新建表”(或“表向导”);在“创建”窗口,输入要建立的表的名字;然后在打开的“表设计器”窗口,逐一地定义表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的建立。方法二:命令格式:OPENDATABASE<数据库名>CREATE<表文件名>一般数据表对应于磁盘上的一个扩展名为.DBF的文件,如果有备注型或通用型字段则磁盘上还会有一个对应扩展名为.FPT的文件。注意:如果没有用OPENDATABASE打开数据库,直接使用CREATE命令建立表也是可以的,但此时建立的是自由表,界面也比较简单,不包含有些在数据库中才能实现的功能。在VisualFoxPro系统环境下,除使用表设计器创建表外,还可以用表向导创建表。使用表向导,就是把已有的表作为“样本”,在“向导”的引导下,通过筛选、修改操作完成新表的创建。由于建表繁琐,一般很少使用。下面就数据库“表设计器”中“字段”选项卡中常用的属性信息及其设置方法叙述如下:1)显示①格式“显示”区的“格式”文本框用于输入格式表达式,确定字段在浏览窗口、表单或报表中显示时采用的大小写、字体和样式。例如,输入一个字符“A”,表示只能输入字母,输入一个字符“!”,表示使浏览窗口输入输出时将字母都转换为大写。②输入掩码"显示"区的"输入掩码"文本框用于指定字段的输入格式,与格式文本框不同的是,输入掩码必须按位指定格式。例如,字段“XH”的输入掩码设置为999999999,对应的9只允许输入数字,不能输入字母或其他符号。限制输入数据的范围,控制输入数据的正确性,提高输入速度。输入的掩码字符见下表: 掩码字符 含义 X 允许输入字符 9 允许输入数字 # 允许输入数字、空格、+、- $ 显示SETCURRENCY命令指出的货币号 * 在指定宽度中,值的左面显示星号 . 指出小数点的位置 , 分隔小数点左面的数字③标题显示区的“标题”文本框用于为浏览窗口、表单或报表中的字段标签输入表达式。例如,若在该文本框中输入“歌手编号"字样,则在浏览窗口中,GSBH字段的列标题将显示歌手编号。2)字段有效性字段有效性区包括规则、信息和默认值3个文本框。可以直接在文本框中输入数据,也可以通过文本框右边的对话按钮显示出表达式生成器对话框,在其中进行设置。①规则文本框用于输入对字段数据有效性进行检查的规则,即一个条件。例如,在XB的规则文本框中输入:XB=“男”orXB=“女",对于在XB字段输入的数据,VisualFoxPro会自动检查它是否符合该条件,如果不符合则必须进行修改,直到符合条件时才允许光标离开XB字段。②信息文本框用于指定出错提示信息,当在该字段中输入的数据违反条件时,出错信息将照此显示。例如,在信息文本框中输入:“性别必须为男或女”,如果输入的性别不满足,则显示出错提示信息"性别必须为男或女"。③默认值文本框用于指定字段的默认值。当增加记录时,字段默认值会在新记录中显示出来,从而提高输入速度。例如,XB字段的默认值为“女"。3)字段注释字段注释则通常出现在项目管理器中,当用户在项目管理器中选定了一个表或一个字段后,在项目管理器的底部就会出现事先在数据词典中设置的注释,便于日后或其他人对数据库进行维护。(3)向表中加入记录通过前面的介绍,我们知道一个表是由表的结构与表中的记录两部分组成的。向表中加入记录,就是对表进行数据输入的操作。1)创建表时立即输入数据创建表即定义表结构是通过表设计器来完成的,而向表中加入数据,要在表“浏览”窗口或表“编辑”窗口中进行。在创建表时,如果表中所有字段的属性已定义完成,可按“确定”按钮保存表结构,同时打开“系统”窗口,显示“现在输入数据吗?”的对话。选择“是”按钮,可以立即进入表“浏览”窗口,进行表中数据的输入。2)以追加方式输入数据在建立表结构时,如果用户没有选择立即方式向表输入数据,可以用追加数据方式向表输入数据。该操作是在表“浏览”或表“编辑”窗口进行的。操作步骤是:打开要输入数据的表;打开“显示”菜单,选择“浏览”,然后选择“编辑”或“浏览”,可进入表“编辑”或“浏览”窗口;在此窗口可以通过选择“显示”菜单下的“追加”选项向表输入数据,或修改表中原有数据。无论是在表“编辑”窗口还是在表“浏览”窗口,都可以对表中的数据进行追加,只是显示方式有所不同。在这两个窗口中,不仅可以进行数据的输入,同时也可以编辑修改表中的数据。也可使用命令:APPEND[BLANK]追加记录或INSERT[BEFORE][BLANK]插入记录(4)输入数据1)数值型、字符型2)日期型、逻辑型MM/DD/YYTtYy、FfNn3)备注型数据输入备注型字段由于其长度不定,因此,该字段数据不能同其它类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。备注型字段数据输入的操作方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在“编辑”窗口或“浏览”窗口,把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。在这个窗口内,用户可以输入或修改备注型数据。4)通用型数据的输入通用型字段数据多数是用于存储OLE对象,如图象、声音、电子表格和文字处理文档等,因为其长度的不确定性,通用型字段数据也不能和常规类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。通用型字段数据输入的方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在表“编辑”窗口或表“浏览”窗口下,把光标移到通用型字段下双击,即可进入通用型字段的数据编辑窗口。然后再打开“编辑”菜单,选择“插入对象”;在“插入对象”窗口,在“对象类型”列表框中,选择插入对象类型“BMP图像”;选择“新建”或“由文件创建”按钮,BMP文件就被插入到通用字段中了。如果用户想拥有更好的数据输入和数据编辑环境,可以根据需要开发应用程序,为数据输入提供更方便的操作方法。(5)修改表结构在VisualFoxPro中,数据表的结构可以任意修改。如增加、删除字段,修改字段名、类型、宽度、索引等。如果当前在数据库设计器中,可直接用鼠标右击要修改的表;否则应先使用USE命令打开表:USE<表名>利用表设计器修改数据表的结构,操作方法有二种。方法一:打开“文件”菜单,选择“打开”;在“打开”窗口,输入要修改表结构的表名字;在“表设计器”窗口,修改表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的修改。方法二:命令格式:MODIFYSTRUCTURE另外VisualFoxPro中显示表结构的命令是:LIST|DISPLAYSTRUCTURE[TOPRINT]4.表记录的操作(1)数据的显示和修改方式在VisualFoxPro系统环境下,当表建立完成后,表的数据和结构已基本确定,用户可以通过表设计器显示表结构;并且采用表“浏览”和表“编辑”两种操作方式对表中的数据进行显示和修改。1)用编辑方式显示和修改数据在表“编辑”窗口,可以采用“编辑”方式,显示和修改表中的数据。在表“编辑”窗口,可以使用鼠标调整浏览窗口的大小,调整每个字段的显示顺序和改变成有“浏览”和“编辑”两种显示方式的窗口。2)用浏览方式显示和修改数据在表“浏览”窗口,可以采用“浏览”方式,显示和修改表中的数据。在表“浏览”窗口,同样可以使用鼠标调整窗口的大小、调整每个字段的显示宽度和改变成有“浏览”和“编辑”两种方式显示的窗口3)显示记录的命令LIST|DISPLAY[范围][条件][FIELDS<字段名表>][OFF][TOPRINTER[PROMPT]|TOFILE<文件名>]4)修改记录的命令 用EDIT、CHANGE或BROWSE命令交互式修改 用REPLACE命令修改REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>[ADDITIVE]…][FOR<条件>][<范围>]该命令可以直接用指定表达式或值修改记录,如果不使用FOR短语,则默认修改的是当前记录。(2)删除和恢复表中的数据1)逻辑删除表中的记录逻辑删除就是给暂时不使用的记录加一个删除标记。另外,对需要彻底删除的记录,也必须要先做逻辑删除后再做物理删除。逻辑删除表中的记录,操作方法是,打开要进行逻辑删除操作的表,并进入表“浏览”窗口。方法一:在表“浏览”窗口,把鼠标对准其删除标记栏,单击左键,这时要进行逻辑删除的记录就被加上了删除标记。这种操作方法只对单记录进行逻辑删除有效。方法二:在“浏览”窗口,打开“表”菜单,选择“删除记录”,在“删除”窗口,可以通过选择作用范围确定要进行逻辑删除的部分记录或在For对话框中,设置逻辑删除条件表达式来确定逻辑删除的记录。方法三:置删除标记的命令命令格式:DELETE[范围][FOR<条件>]2)恢复表中逻辑删除的记录对加上逻辑删除标记的记录,如果用户还想恢复其使用权,可对其进行恢复记录的操作。恢复已进行逻辑删除的记录,操作方法是,打开要进行恢复操作的表,并进入表“浏览”窗口。方法一:在表“浏览”窗口,把鼠标移到要进行恢复的记录上,对准其删除标记栏,单击左键除去删除标记。方法二:在“浏览”窗口,打开“表”菜单,选择“恢复记录”;在“恢复记录”窗口,可以通过选择作用范围确定要进行恢复的部分记录;或在For文本框中,设置条件表达式来确定恢复的记录;指定范围或满足条件的记录都被除去了删除标记。方法三:恢复记录的命令命令格式:RECALL[范围][FOR<条件>]3)物理删除表中的记录物理删除就是把无效的记录彻底从磁盘中删除掉。要想彻底删除表中无效的数据,必须先做逻辑删除后再做物理删除。操作方法是:打开要进行物理删除操作的表;在表“浏览”窗口,若没有对表中记录做逻辑删除,要对进行物理删除的记录先进行逻辑删除;若已对若干记录做了逻辑删除,数据表中有了逻辑删除记录后,则选择“表”菜单,再选择“彻底删除”,在弹出的对话框中选择“是”,数据表中所有带有删除标记的记录将被彻底删除掉。物理删除加了删除标记的记录命令:PACK物理删除表中的全部记录:ZAP该命令可以物理删除表中的全部记录,不管是否有删除标记。它只是删除全部记录,并没有删除表,即执行该命令后表结构依然存在。(3)数据表中记录的定位在VisualFoxPro系统环境下,表中的每一列数据是通过字段名来标识的,而每一行数据是通过记录号来标识的。用户对表中每一个数据项的访问,是通过记录号和字段名来进行的。也就是说,指明了记录号(表的行)和字段名(表的列),就确定了数据项(表中的某一数据)。在向表输入数据时,系统按照其输入的前后顺序,给每一个记录赋予一个记录号。最先输入的记录为1号记录,其次2号记录,以此类推。在VisualFoxPro系统内部,有一个用以确定当前记录的记录指针,记录指针指向哪一个记录,这一个记录就是当前操作的记录,即当前记录。当表打开时,当前记录为第一个记录。表文件一旦打开,表中的记录指针是可以移动的,所以当前记录是某一时刻的操作对象。数据表中记录的定位,实质上就是确定哪一个记录为当前记录。确定当前记录,操作方法是,打开要使用的表,在“显示”菜单下,选择“浏览”;打开“表”菜单,选择“转到记录”,子菜单不同的选项,可以将记录指针移动到相应的记录上。1)选择“第一个”,确定第一个记录为当前记录;2)选择“最后一个”,确定最后一个记录为当前记录;3)选择“下一个”,确定当前记录的下一个记录为当前记录;4)选择“前一个”,确定当前记录的前一个记录为当前记录;5)选择“记录号”,便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;6)选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件表达式,确定满足定位条件表达式的第一个记录为当前记录。也可使用命令来实现记录指针的定位:1)用GOTO或GO命令直接定位GO|GOTOTOP|BOTTOM|<记录号>2)SKIP命令SKIP[数值]3)用LOCATE命令定位LOCATEFOR<条件>[范围]……CONTINUE5.表与表结构的相关操作(1)表的复制命令格式:COPYTO<新文件名>[<范围>][FIELDS<字段名表>][FOR/WHILE<条件>][TYPE<文件类型>]功能:把当前数据表文件中的全部或部分数据复制到指定的新文件中。说明:1)必须先打开被复制的数据表文件。2)默认复制成的新文件是一个数据表文件,其扩展名默认为.DBF。原数据表文件带有.FPT文件时,复制后自动生成与新数据表文件同名的.FPT文件。3)选择项FIELDS<字段名表>用以指定复制到新表文件中的字段结构,缺省时为全部字段。4)缺省<范围>时指ALL(全部数据记录)。5)选择项TYPE<文件类型>表示把打开的数据表文件按<文件类型>指定的格式复制成一个新的.TXT文件。(2)表结构的复制命令格式:COPYSTRUCTURETO<新表文件名>[FIELDS<字段名表>]功能:把当前数据表的结构全部或部分复制到新的.DBF文件中,从而建立一个只有结构、没有数据记录的空数据表文件。说明:1)必须先打开被复制的数据表文件。2)复制成的新文件是一个数据表文件,其扩展名默认为.DBF。3)选择项FIELDS<字段名表>用以选定要复制到新表文件中的字段名称,缺省时为复制全部字段。4)复制成的新数据表只有结构没有数据记录。(3)数组与数据表记录之间的数据传递1)SCATTER命令命令格式:SCATTER[FIELDS<字段名表>][MEMO]TO<数组名>功能:把当前表的当前记录的数据传递到指定数组中。说明:①FIELDS<字段名表>指定所传递的字段,缺省为所有字段。但通用字段在该命令中被忽略,不能传递。若要传递备注型字段,则必须在命令中包含MEMO选项。②TO<数组名>用来指定存放记录的数组,SCATTER命令把当前记录的字段内容从第一个字段起按顺序依次拷贝到指定数组的每个元素中。如果数组的长度大于字段个数,则多余的数组元素的值不变;如果数组不存在或数组长度不够,则该命令自动创建一个新的数组。数组元素与相应的字段具有相同的数据类型。2)GATHER命令命令格式:GATHERFROM<数组名>[FIELDS<字段名表>][MEMO]功能:将数组中的数据传递到当前表的当前记录。但通用型字段总是被忽略。说明:①FROM<数组名>指定向数据表传递数据的数组。传递是从数组的第一个元素依次将数据存放到当前记录的相应字段。②FIELDS<字段名表>指定被替换的字段,省略则从第一个字段开始。③MEMO选项功能:传递数据将包括Memo字段,否则将跳过Memo字段。6.索引与排序索引实际上是一种排序,但是它不改变数据表中数据的物理顺序,而是另外建立一个记录号列表。它与通常的图书目录相同,图书中的目录指明了章、节的页码,而表的索引指明由某一字段值的大小决定的记录排列的顺序。表一旦按索引表达式建立索引后,就产生了一个相应的索引文件(.IDX与.CDX)。一旦表和相关的索引文件被打开,则对表操作时,记录的顺序按索引表达式值的逻辑顺序显示和操作。在VisualFoxPro系统中,可以为一个表建立多个索引,每一个索引确定了一种表记录的逻辑顺序。一个表中,索引的多少一般并不影响表的使用性能,但有时不常使用的索引也会降低表的性能。在VisualFoxPro系统中,同一个数据库中的多个表,以同名字段建立索引后,可根据索引表达式的值建立数据库中多个表间的关联关系。(1)索引类型VisualFoxPro系统提供了四种不同的索引方式,它们分别是:主索引、候选索引、普通索引和唯一索引。1)主索引在数据库容器中的数据表可以建立主索引(PrimaryIndex)。索引表达式的值是唯一能够标识每个记录处理顺序的值。因此,一个数据表只能建一个主索引。有的情况下,在数据表中有多个字段值都能够确定记录的顺序,但表中已有主索引,则它们可以建立候选索引。主索引表达式值经常在多个文件之间形成关系,而且可作为被引用数据表中的查找值。主索引主要用于永久性的主数据表中或者建立参照完整性的被引用表中。2)候选索引候选索引像主索引一样,它的索引表达式的值是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立多个候选索引,它在特定环境下可以视为主索引。如果一个表中已有主索引,则只能建立候选索引。3)普通索引普通索引表示把由索引表达式为每个记录产生的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以重复存储,并用独立的指针指向各个记录。4)唯一索引唯一索引表示把由索引表达式为每个记录产生的唯一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则只存储第一个索引表达式值。从索引的组织方式来讲索引共有两类:简单.idx索引索引结构复合索引复合.cdx索引非结构复合索引与表名同名的.cdx索引是一种结构复合压缩索引,它是VisualFoxPro数据库中最重要的一种索引文件,前面用表设计器中建立的索引都是这类索引。它具有如下特性:①在打开表时自动打开;②在同一索引文件中能包含多个索引关键字;③在添加、更改或删除记录时自动维护索引。因此,一般只使用结构复合压缩索引,而非结构索引多半是为了与以前版本兼容,建议在新的应用中不再使用。如果是临时用途,不希望以后系统自动维护索引,或者使用完后就删除的索引文件,则可以使用简单索引。(2)创建索引在VisualFoxPro中,一般情况下都可以在表中交互建立索引,特别是主索引和候选索引是在设计数据库时确定好的。但有时需要在程序中临时建立一些普通索引或唯一索引,所以仍然需要了解一下索引命令,并且通过索引命令还可以进一步理解VisualFoxPro的索引和索引文件。1)利用表设计器可以对已有的表创建索引利用表设计器为已有的表创建索引,操作方法是在“表设计器”窗口,选择“索引”选项卡,再选择以下参数: 在索引名选项中,输入索引字段名; 在排序选项中,选择索引方向,升序(↑)或降序(↓); 在类型选项中,选择索引类型; 在表达式选项中,输入索引字段名或者索引表达式; 在筛选选项中,限制记录的输出范围。 完成索引建立或撤消索引操作。注意:此索引表为结构化索引,且当前无主索引。2)用命令建立索引命令格式:INDEXON<索引表达式>TO<索引文件>[COMPACT]|TAG<标识名>[OF<复合索引文件名>][FOR条件][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]使用命令可以建立普通索引、唯一索引(UNIQUE)或候选索引(CANDIDATE),但没有主索引,前面提到主索引和候选索引具有的功能,在表设计器中指定一个主索引实际就是指定了一个主关键字。通常主索引用于主关键字;侯选索引用于那些不作为主关键字但字段值又必须唯一的字段;普通索引一般用于提高查询速度;惟一索引用于一些特殊的程序设计。(3)索引的使用1)使用菜单方式在VisualFoxPro系统环境下,可以用字段名或表达式建立索引,其中使用字段名对记录排序是最常见的操作。一个表经常分别指定几个字段名建立索引,每一个索引表示一种表中记录的顺序。利用表设计器使用索引排序的操作方法如下:①利用表设计器对表中若干字段,以字段名建立索引。②在VisualFoxPro系统主菜单下,打开“表”菜单,选择“属性”,进入“工作区属性”窗口。③在“工作区属性”窗口,打开索引顺序对话框,选择索引标识(字段名、表达式),按“确定”按钮,表中的数据按其索引字段值的大小顺序显示。2)使用索引命令①打开(关闭)索引文件SETINDEXTO[<索引文件名列表>]②设置当前索引SETORDERTO[索引序号|索引名|[TAG]标识名[OF复合索引文件名]③使用索引快速定位(查找)SEEK<索引项或表达式的值>④删除索引DELETETAG<标识名1>[OF<复合索引文件名>][,<标识名2>[OF<复合索引文件名>]]...或DELETETAGALL[OF<复合索引文件名>]索引的顺序是逻辑的,排序则不同,是物理的。所谓排序,是指对当前数据表按指定字段值的大小,重新排列数据表中记录的顺序到另外一个表中(表文件名不能与当前表相同),当前表不发生变化。命令格式:SORTTO<数据表文件名>ON<字段名1>[/A/D][/C][,<字段名2>[/A/D][/C]…[<范围>][FOR/WHILE<条件>][FIELDS<字段名表>]说明:1)排序时,数值型数据按值的大小进行;字符型数据按ASCII码值的大小,汉字按拼音字母的ASCII码值的大小;日期型数据按日期值排序;逻辑型数据按.T.>.F.。2)排序关键字<字段名1>、<字段名2>等,不能为备注型和通用型字段。3)排序时在关键字之后设定排序方法。/A和/D分别表示升序和降序(二者只能取其一),/C表示排序时不区分字母的大小写。若缺省排序方式,则默认为升序。(4)排序(5)统计命令1)记录统计的命令COUNT[<范围>][FOR/WHILE<条件>][TO<内存变量名>]功能:统计指定范围内满足条件的记录的个数,结果保存在指定变量中。2)数据表记录求和SUM[<求和表达式表>][<范围>][FOR/WHILE<条件表达式>][TO<内存变量名表>]各选项均缺省时,对所有数值字段求和,且统计结果不保留。3)字段平均值AVERAGE[<求平均值表达式表>][<范围>][FOR/WHILE<条件表达式>][TO<内存变量名表>]4)计算命令CALCULATECALCULATE<表达式表>[<范围>][FOR<条件>][TO<内存变量表>]功能:对包括数据表中字段的表达式表进行指定的运算。说明:命令中的<表达式表>中可以包括下列函数及它们的组合:SUM(<数值表达式>):求和。AVG(<数值表达式>):计算算术平均数。CNT():统计记录数,即进行统计计算的样本个数。MAX|MIN(<表达式>):计算数值表达式及字符表达式的最大(小)值和日期表达式的最后时间。STD(<数值表达式>):计算标准差。VAR(<数值表达式>):计算方差。5)数据表数据的分类汇总(或称分类求和)TOTALON<分类关键字>TO<文件名>[FIELDS<数值型字段表>[<范围>][FOR<条件>]功能:对一个已排序或索引的数据表文件根据分类关键字的值进行分类求和,得到一个分类求和数据表。说明:①分类汇总前,应先将数据表按关键字排序或索引过。②分类:排序或索引表达式(关键字)的值相同的记录,称为同类记录。③分类求和:将同类记录的数值型记录求和后,作为一条记录的该字段的值。④分类求和数据表:结构与原库结构相同。记录的值:没有求和的字段,其值是原库中同类记录的第一条记录的值,被求和的字段的值,为同类记录该字段的和。7.数据完整性与永久联系在数据库中数据完整性是指保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和参照完整性等,VisualFoxPro提供了实现这些完整性的方法和手段。(1)实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。在VisualFoxPro中利用主关键字或候选关键字来保证表中的记录的唯一,即保证实体唯一性。如果一个字段的值或几个字段的值能够唯一标识表中的一条记录,则称这样的字段为候选关键字。在一个表中可能会有几个具有这种特性的字段或字段的组合,这时从中选择一个作为主关键字。在VisualFoxPro中将主关键字称作主索引,将候选关键字称作候选索引。(2)域完整性与约束规则前面所熟知的数据类型的定义属于域完整性的范畴,它通过指定不同的宽度说明不同范围的数据类型,从而可以限定字段的取值类型和取值范围。但这些对域完整性还远远不够,还可以用一些域约束规则来进一步保证域完整性。域约束规则也称作字段有效性规则,在插入或修改字段时被激活,主要用于数据输入正确性的检验。建立字段有效性规则比较简单直接的方法仍然是在表设计器中建立,在表设计器的“字段”选项卡中有一组定义字段有效性规则的项目,它们是“规则(字段有效性规则)”、“信息(违背字段有效性规则时的提示信息)”、“默认值”三项。有效性规则的项目可以直接输入,也可以单击输入框旁的按钮打开表达式生成器对话框编辑、生成相应的表达式。(3)设置参照完整性参照完整性是关系数据库管理系统的一个很重要的功能。它的大概含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。在VisualFoxPro中为了建立参照完整性,必须首先建立表之间的永久联系(或关系)。数据库中的表建立关联关系后,就可以设置管理关联记录的规则。从而控制相关表中记录的插入、删除或修改。1)建立表间的永久联系在数据库设计器中设计表之间的联系时,要在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立起两个表之间的联系。①建立表间的一对一关系建立两个表之间的“一对一”关系,首先,要使两个表都具有同一属性的字段;然后,定义父表中该字段为主索引字段(其字段值是唯一的),子表中与其同名的字段为候选索引字段(其字段值是唯一的)。由于两个表中的同一属性的字段值是一对一的关系,因此两个表之间就具有了“一对一”的关系。建立表间的“一对一”关系的操作方法是: 打开数据库文件,进入“数据库设计器”窗口。 确定主表和子表,并利用表设计器把主表与子表同名的字段定义为主索引字段,把子表中与主表同名的字段定义为侯选索引字段。 在“数据库设计器”窗口,激活主表中的主索引字段,然后按下鼠标左键拖至与其建立关联的子表中的对应字段处松开鼠标左键,数据库中的两个表间就有了一个“连线”,两表间的“一对一”关系就此建立完成。②建立表间的一对多关系建立两个表之间的“一对多”关系,首先,要使两个表都具有同一属性的字段;然后,定义父表中该字段为主索引字段(字段值是唯一的),子表中与其同名的字段为普通索引字段(字段值可重复)。由于两个表中的同一属性的字段值是一对多的关系,因此两个表之间就具有了“一对多”的关系。建立表间的“一对多”关系,操作方法如下: 打开数据库文件,进入“数据库设计器”窗口。 确定主表和子表,并利用表设计器把父表与子表同名的字段定义为主索引,把子表中与主表同名的字段定义为普通索引字段。 在“数据库设计器”窗口,首先,激活主表中的主索引字段;然后,按下鼠标左键,并拖至与其建立关联的附表中的对应字段处,再松开鼠标左键,数据库中的两个表间就有了一个“连线”,其“一对多”关系就此已建立完成。如果两个表之间建立了“一对多”关系,反过来看子数据表与主数据表间就是“多对一”的关系。2)设置参照完整性约束在建立参照完整性之前必须首先清理数据库(独占打开),所谓清理数据库是物理删除数据库各个表中所有带有删除标记的记录。只要数据库设计器为当前窗口,主菜单栏上就会出现“数据库”菜单,在“数据库”菜单下选择“清理数据库”与执行命令PACKDATABASE功能相同。在数据清理完毕,用鼠标右键单击表之间的联系并从快捷菜单中选择“编辑参照完整性”,打开下图:参照完整性规则包括更新规则、删除规则和插入规则。在“参照完整性生成器”窗口,有三个选项卡供用户选择,可以设置记录的插入、删除或修改规则。其中:当选择“更新规则”选项卡,可以利用三个选择按钮,设置关联表间的更新规则。三个选择按钮的功能如下:.级联:用新的关键字值更新子表中的所有相关记录;.限制:若子表中有相关记录则禁止更新;.忽略:允许更新,不管子表中的相关记录。当选择“删除规则”选项卡,可以利用三个选择按钮,设置关联表间的删除规则。三个选择按钮的功能如下:.级联:删除子表中的所有相关记录;.限制:若子表中有相关记录,则禁止删除;.忽略:允许删除,不管子表中的相关记录。当选择“插入规则”选项卡,可以利用二个选择按钮,设置关联表间的插入规则。二个选择按钮的功能如下:.限制:若父表中没有匹配的关键字值,则禁止插入;.忽略:允许插入。用户可根据具体操作的需要,确定以上插入、删除、更新的操作规则。(1)数据库表与自由表所谓自由表就是不属于任何数据库的表,所有由早期版本的FoxPro创建的.DBF都是自由表。在VisualFoxPro中创建表时,如果当前没有打开数据库,则创建的表也是自由表。可以将自由表添加到数据库中成为数据库表;也可以将数据库表从数据库中移出成为自由表。数据库表与自由表相比,数据库表具有如下特点:①数据库表可以使用长表名;②可以为数据库表中的字段指定标题和添加注释;③可以为数据库表的字段指定默认值和输入掩码;④数据库表的字段有默认的控件类;⑤可以为数据库表规定字段级规则和记录规则;⑥数据库表支持主关键字、参照完整性和表之间的联系;⑦支持INSERT、UPDATE和DELETE的触发器。在VisualFoxPro中保留了自由表的概念,完全是为了兼容早期的软件版本,建议尽量使用数据库表。8.自由表(2)向数据库添加自由表向数据库添加自由表,操作方法是:在“数据库设计器”窗口,单击鼠标右键,弹出“数据库”快捷菜单,选择添加表;在“打开”窗口选择要添加的表,返回“数据库设计器”窗口;重复操作可以将多个表添加到数据库中。另外使用ADDTABLE命令也可添加一个自由表到当前数据库中:ADDTABEL<表名>[NAME<长表名>]注意:一个表只能属于一个数据库,将已有的表添加到数据库后,表的操作不仅可以在表操作环境下进行,同时也可以在数据库操作环境下进行。在数据库操作环境下不仅可以完成表操作环境的所有操作,而且还有许多新的操作。这些新的操作给表增加一些新属性,这些属性将作为数据库的一部分保存起来,当表从数据库中移去,这些属性也不再保存。(3)从数据库中移去表要从数据库中移去或删除表,可在“数据库设计器”窗口中选定要移去或删除的表,并按Del键,弹出如图所示的信息框单击“移去”或“删除”按钮即可。被移去的表将成为自由表。另外下面命令也可将一个表从数据库中移出:REMOVETABLE<表名>[DELETE|RECYCLE]9.工作区与多表操作有了数据库文件,而且数据库文件中又添加了一些表,当这些基本操作已掌握后,对数据库的另一个操作就是建立表之间的关联关系。建立数据库文件中表间关联,一是要保障建立关系的表具有相同的字段;二是每个表都要以该字段建立索引。在这一前提下,以其中一个表中的字段与另一表中的同名字段建立关联,两个表间就具有了一定的关系。(1)工作区1)工作区的概念打开一个表就是把它从磁盘装入内存的某一工作区,VisualFoxPro提供了32767个工作区。一个工作区中只能打开一个表,当在同一工作区中打开另一个表时,以前打开的表则自动关闭。反之,一个表也只能在一个工作区中打开,如果在关闭之前试图在其他工作区中打开它,则系统会提示"文件正在使用"的出错信息。工作区用区号或别名来标识。工作区号为1,2,3,…,32767。对于前10个工作区,除了使用区号1~10外,还可以依次用A~J这10个字母(即别名)来表示。就是说,1号工作区和A工作区为同一工作区,2号工作区和B工作区为同一工作区,依次类推。此外,利用USE命令打开一个表时,也可以为表指定别名。例如:USET_CJBALIASCJ&&指定别名USET_CJB&&未指定别名,默认表名就是其别名2)选择工作区系统提供了选择工作区的命令,以便使
本文档为【《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第3章 数据库与表的操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
科技制造的艺术美
暂无简介~
格式:ppt
大小:565KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-11-02
浏览量:16