您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第3章Visual FoxPro数据库与表的操作
第3章数据库与表的操作在VisualFoxPro中几乎所有的操作都同时提供了菜单界面方式的实现和命令方式的实现,使用两种方法执行的结果是相同的。本章重点介绍如何通过界面方式实现对数据库及表的操作,而命令的实现方式全部集中在本章的最后一节进行说明。3.1表的创建与维护3.2数据库设计器的使用3.3多表操作3.4表的命令操作方式思考题3.1表的创建与维护VisualFoxPro中有两种类型的表;属于数据库的表和自由表。属于数据库的表与自由表相比,有一些特殊的性质。例如,一般自由表的字段名最长不能超过10个英文字符(5个汉字),而数据库的表则可以突破这一限制,使用长字段名。数据库的表可以从数据库中移去,变成自由表。反之也可。3.1.1表的创建3.1.2表的维护3.1.1表的创建在VisualFoxPro中,创建一个新表分为两个步骤:(1)创建表的结构。即说明表包含哪些字段,每个字段的数据类型及长度。(2)向表中输入记录。即向表中输入数据。1.表结构的设计2.表结构的创建3.表记录的添加1.表结构的设计表3.1“学生表”的表结构说明:“学生表”的“XH”字段,第1、2位是年级,第3、4位是专业号,第5-7位是学号。字段名类型宽度小数位字段说明XH字符型7学号XM字符型8姓名XB逻辑型1性别CSRQ日期型8出生日期JXJ数值型72奖学金BZ备注型4备注2.表结构的创建1.项目管理器中选择“表”,按“新建”按钮;2.“文件”→“新建”,选择“表”。备注型与通用型字段中已分别显示memo与gen标志,意味着这两种字段用其它方法来输入或修改数据。3.表记录的添加1.建立表结构后立即输入数据;2.打开“浏览”窗口后,“显示”→“追加方式”。注意:1.日期型数据必须与日期格式相符,默认按美国日期格式mm/dd/yy输入。2.某记录的备注型或通用型字段非空时,其字段标志首字母将以大写显示,即显示为Memo或Gen。3.1.2表的维护表的维护是指对表进行增加、删除和修改。包括表结构的维护和记录数据的维护。1.修改表的结构2.表的索引3.记录数据的浏览与维护1.修改表的结构表结构的修改通常在表设计器中进行,打开表设计器的方法:1.在“项目管理器”中选择要修改的表名,然后单击“修改”按钮。2.在“数据库设计器”中选择要修改的表,然后点击“数据库设计器”中的“修改表”按钮或选择“数据库”菜单的“修改…”命令。3.打开表,“显示”→“表设计器”。4.浏览表,“表”→“属性”→“修改”。2.表的索引索引可以帮助用户对表中的数据排序,以加速检索数据的速度。一个表可以建立多个不同的索引。(1)建立一个字段的索引(2)建立多个字段的索引(3)激活索引(4)索引类型(1)建立一个字段的索引1.在“表设计器”的“字段”选项卡中,单击要建立索引字段的“索引”列。2.在“表设计器”的“索引”选项卡中,输入“索引名”,选定“类型”,在“表达式”中输入要建立索引的字段名。例如:在“学生表”中,对xh,csrq和jxj字段建立索引。(2)建立多个字段的索引若索引表达式中包含多个字段,通常将字段都转换成字符型数据,再连接成一个字符串。排序时按第一个字段排列,若字段值相同,再按第二个字段排列,依此类推。如果用多个“数值型”字段建立一个索引表达式,可以直接将字段相加,但将按字段相加的和对记录进行排序。例如:对“学生表”按jxj字段排序,若jxj相同,再按csrq排序。(3)激活索引“表”→“属性”“数据工作期”→“属性”setorderto索引名(4)索引类型主索引:在指定的字段或表达式中不允许出现重复值的索引。只有数据库中的表可以主索引,而且每个数据库的表只能建立一个主索引。主索引主要用来在一个永久关系中建立完整性。候选索引:同主索引一样具有唯一值,但是一个表可以有多个候选索引。普通索引:允许索引对应的表达式的值重复,一个表可以建立多个普通索引。唯一索引:同普通索引一样允许重复值,但是只显示重复值的第一条记录。3.记录数据的浏览与维护(1)1.查看和浏览表中内容(1)表打开后,选择“显示”→“浏览”;(2)在项目管理器中,选择要浏览的表,单击“浏览”;(3)“窗口“→”数据工作期“→”浏览“。2.修改记录数据(1)在浏览或编辑窗口中,直接修改某一个字段值;(2)打开浏览或编辑窗口后,”表“→”替换字段”。3.记录数据的浏览与维护(2)3.向表中加入新记录“显示”→“追加方式”命令。在填充新记录的字段时,可以用Tab键在各字段间切换。setcarryON/[OFF]:表示在建立一个新记录时是(ON)否(OFF)将上一记录的内容复制下来。3.记录数据的浏览与维护(3)4.删除表中记录从表中删除记录为两步:首先是单击待删除记录左边的小方框标记,标示记录并没有真正从表中删除,为了真正删除记录,应选择“表”→“彻底删除”命令,在提示框中单击“是”按钮,这样将从表中删除带标识的记录并重组表中的记录。3.2数据库设计器的使用VisualFoxPro的数据库是用于对表及表间关系进行管理的。3.2.1数据库的创建3.2.2数据库表的设置3.2.3创建表间的永久关系3.2.1数据库的创建1.在项目管理器中选择“数据库”,按“新建”按钮;2.“文件”→“新建”,选择“数据库”。3.2.2数据库表的设置(1)字段.显示①格式:控制该字段值在浏览、表单和报表中的输出格式。参见表3.9。②输入掩码:控制输入该字段数据的格式,屏蔽非法内容的输入。参见表3.10。③标题:显示表的字段标题的名字例如:设置“学生表”xh字段的标题为“学号”,最多只能输入7个数字字符。3.2.2数据库表的设置(2)字段.字段有效性①规则:规定当前字段值应满足的条件②信息:当字段输入的值未满足规则的条件,系统显示的提示内容。是一个字符串。③默认值:设置当前字段的初始值。例如:设置“学生表”jxj字段的初始值为200,必须在0到1000之间,若输入值超过范围,则提示“奖学金应在0到1000之间。”3.2.2数据库表的设置(3)表.记录有效性记录有效性规则检查同一个记录中有关字段之间的是否满足条件。包括验证规则的设置与出错信息的设置。例如:要求在“课程表”中每一个学分必须不少于18个课时。3.2.3创建表间的永久关系表间的永久关系要在数据库中建立。表间要建立永久关系,其中主动表应建立主索引(或者候选索引),被动表建立普通索引,拖动主动表中的主索引(或者候选索引)到被动表中的普通索引上,这样表与表之间就通过公共字段的索引建立了永久关系。该关系作为数据库的一部分被存放起来,只要数据库一打开就存在,直到关系被删除为止。永久关系分为一对多和一对一两种。3.3多表操作(1)在VisualFoxPro中建立表间关系的方式有两种:一种是在工作区中建立临时关系,一种是在数据库中建立永久关系。临时关系只在当前有效,在关闭表或者VisualFoxPro程序之后,临时关系就不存在了;而永久关系作为数据库的一部分被保存于数据库中,只要一打开数据库,永久关系就建立了。在临时关系中,子表(或被动表)的记录指针将随着父表(或主动表)的记录指针的移动而移动。3.3多表操作(2)被动表的公共字段应建立普通索引。临时关系通常在“数据工作期”中建立,或使用setrelation命令建立。例3.20建立“学生表”与“成绩表”间一对多的关系。例3.21建立“成绩表”与“学生表”间多对一的关系。3.4表的命令操作方式VFP的操作一般都提供两种方式,一种是通过交互式窗口操作,一种是通过命令的方式实现。在VFP中,一般可以用前四个字母表示较长的命令参数。1.表的创建与打开2.记录数据的浏览与维护3.索引4.数据库的操作5.多表操作1.表的创建与打开表的创建命令表的打开命令表的关闭命令表的创建(1)命令格式:CREATE文件名[.dbf](2)功能:在指定的位置创建一个新表。表的打开(1)(1)命令格式:USE[文件名](2)功能:在当前工作区中打开或关闭表,表打开时,若该表有备注型或通用型字段,则将自动打开同名的.FPT文件。表的打开(2)(3)说明:①文件名表示被打开的表的名字;缺省文件名表示关闭当前工作区的表(工作区的概念参阅第5部分多表操作)。②打开一个表时,该工作区中原来打开的表自动关闭③已打开的表总有一个记录指针,指针所指的记录称为当前记录。表刚打开时,记录指针指向第一个记录。④表操作结束后应及时关闭,以便将内存的数据保存到表中。表的关闭(1)格式:CLOSEALL功能:关闭所有的表。(2)格式:CLEARALL功能:关闭所有打开的表,释放所有的内存变量。(3)格式:USE功能:关闭当前工作区的表。2.记录数据的浏览与维护表记录的显示表记录的添加表记录的修改表记录的删除表记录的显示(1)命令格式:LIST|DISPLAY[[FIELDS]字段名表][范围][FOR条件]|[WHILE条件][OFF][TOPRINT[PROMPT]|TOFILE文件](2)功能:在表中按指定范围与条件筛选出记录并显示出来,或送至指定的目的地。范围子句范围子句:用来确定执行该命令涉及的记录,范围有4种限定方法:ALL所有记录NEXT(N)从当前记录起的N个记录RECORD(N)第N个记录REST从当前记录起到最后一个记录为止的所有记录LIST缺省范围默认为ALL。DISPLAY缺省范围表示当前记录。FOR条件条件:指定执行本命令时,只有指定范围内满足条件的记录参加操作FOR条件:范围内使“条件”为真的记录都参加操作;WHILE条件:从当前记录开始,若使“条件”为真,则该记录参加操作,直至遇到不满足条件记录出现时停止。FIELDS和OFF子句FIELDS字段名表:只有出现在<字段名表>中的各字段参加操作,字段名表中的各字段之间以逗号隔开。OFF子句:若要不显示记录号,可使用参数OFF。LIST和DISPLAY命令除命令动词外格式一致,功能略有区别:前者以滚动方式输出,后者则以分屏输出。表记录的添加(1)(1)追加记录命令格式:APPEND[BLANK]功能:使用BLANK子句能在表尾追加一条空白记录,留待以后填入数据。若缺省则出现记录的编辑窗口,等待用户输入数据。表记录的添加(2)(2)插入记录命令格式:INSERT[BLANK][BEFORE]功能:在指定的位置插入一条新记录。说明:①BEFORE子句表示在当前记录之前插入新记录,缺省表示在当前记录之后插入新记录。②BLANK子句表示插入一条空白记录。表记录的修改(1)(1)编辑方式命令格式:EDIT[范围][FIELDS字段名表][FOR/WHILE条件]功能:以全屏幕编辑方式,修改当前表中满足条件的记录中指定字段的数据。表记录的修改(2)(2)浏览方式命令格式:BROWSE[FIELDS字段名表]功能:以全屏幕窗口方式修改当前表中的记录。表记录的修改(3)(3)替换方式命令格式:REPLACE[范围]字段名1WITH表达式1[ADDITIVE][,字段名2WITH表达式2[ADDITIVE]]…[FOR|WHILE条件]功能:在当前表的指定记录中,将有关字段的值用相应的表达式值来替换。若参数都缺省,只对当前记录的有关字段进行替换。表记录的修改(4)说明:ADDITIVE用于备注型字段,表示将表达式值添加到字段的原有内容后,而不是取代。表记录的删除(1)(1)逻辑删除命令格式:DELETE[范围][FOR|WHILE条件]功能:对当前表在指定范围内满足条件的记录加上删除标记。若可选项都缺省,表示当前记录。说明:被逻辑删除的记录前将会出现“*”号。表记录的删除(2)(2)物理删除命令格式:PACK功能:从物理上真
本文标题:第3章Visual FoxPro数据库与表的操作
链接地址:https://www.777doc.com/doc-6326906 .html