




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/7/231VisualFoxPro自由表2023/7/232
本章要点建立表结构输入表记录表的打开与关闭表字段的基本操作表结构的修改表记录的基本操作表的复制表的排序与索引查询数据统计与计算思考题2023/7/2333.1建立表结构1.命令方式【格式】CREATE[<表文件名>|?]【功能】建立一个新的、扩展名为.DBF的表文件。【说明】<表文件名>指定生成的表文件名,若缺省扩展名,则默认为.DBF。如果使用“?”或末指定表文件名,VisualFoxPro系统会弹出创建对话框,以便用户输入表名。2023/7/2342.菜单方式选择【文件】|【新建】打开新建对话框,选择“表”,单击“新建文件”出现创建对话框,确定需要建立表的路径和表名,按“保存”按钮后,出现“表设计器”对话框。以下步骤同命令方式。确定表中每个字段的字段名、字段类型、字段宽度和小数位数等。2023/7/235●字段名:是某字段的名字。在表中必须为唯一的,字段名必须以汉字、字母和下划线开头,由汉字、字母、数字和下划线组成,对于数据库表支持长字段名,字段名最多为128个字符,自由表不支持长字段名,字段名最多为10个字符。当数据库表转化为自由表时截去超长部分的字符。字段名不能使用系统的保留字。●字段类型:表示该字段中存放数据的类型。一个字段即二维表中的一列,其中的数据应具有共同的属性。●字段宽度:表示该字段所允许存放数据的最大宽度。●小数位数:只对数值型字段和浮点型字符等数值类型有效,允许最大宽度20。在计算数值型字段和浮点型字段的宽度时,小数点本身也算作一个字符。数值型字段的小数位数由数据的精度决定位数。
2023/7/2361.命令方式【格式】APPEND[BLANK]【功能】在当前已打开表的末尾追加一条或多条记录。【说明】BLANK:表示在表末尾追加一条空记录,并自动返回命令窗口,此时系统并不弹出编辑窗口。例如:在命令窗口输入命令
USESTUD&&打开表
APPE&&或EDIT
注意:输入逻辑值时只输入T或F,定界符系统自动生成输入日期值时只输入数码,分隔符系统自动生成输入备注值时,光标位于MEMO上时,按CTRL+PgDn进入编辑窗口,完成后按CTRL+W返回下一个字段继续输入。3.2输入表记录2023/7/2372.菜单方式(1)首先打开表STUD.DBF。(2)选择【显示】|【浏览】命令。(3)选择【表】|【追加新记录】命令,用户可以输入追加记录的各个字段。2023/7/2381.表的打开表文件建好后,以文件的形式保存在磁盘上,在进行各种操作之前,首先必须打开表。打开表的过程实质上就是将表从磁盘调入内存,这样就可以对表中的数据进行各种操作。系统在任何时刻都只能对内存中的表进行访问。(1)命令方式【格式】USE[[<盘符>][<路径>]<表文件名
|?>【功能】打开指定磁盘的指定路径下的表和相关的索引文件。【说明】<盘符>和<路径>:指定表文件所在的驱动器及路径,若省略盘符和路径参数,则打开当前盘、当前路径下的表文件。3.3表的打开与关闭2023/7/239如果表文件中含有通用型、备注型字段,同名的.FPT文件也同时打开。若不指定表文件名而使用“?”,系统会弹出“使用”对话框,以便用户指定打开表的文件名。【例3-1】打开在E盘VFP子目录中STUD.DBF表。
USEE:\VFP\STUD(2)用项目管理器打开表在项目管理器中选中需要打开的表,选择“浏览”或“修改”都能直接打开表且进行浏览或修改,关闭浏览或修改窗口后,该表仍处于打开状态。2023/7/23102.表的关闭(1)打开另一个表文件如果工作区中已打开有表文件,打开另一表文件时,系统将自动将先前打开的表文件关闭。(2)使用不带任何选项的USE命令【格式】USE【功能】关闭当前已打开的表文件。(3)使用CLEAR命令【格式】CLEARALL2023/7/2311【功能】关闭所有工作区中已打开的表文件、索引文件、格式文件及备注文件等,同时释放所有的内存变量。并选择工作区1为当前工作区。(4)使用CLOSE命令【格式1】CLOSEALL【功能】关闭各种类型文件,并选择工作区1为当前工作区。【格式2】CLOSEDATABASES【功能】关闭所有已打开的数据库文件、表文件、索引文件、格式文件及备注文件等,并选择工作区1为当前工作区。(5)退出VisualFoxPro系统
QUIT【功能】退出VisualFoxPro系统,并关闭所有打开的文件,返回操作系统。2023/7/2312(6)在数据工作窗口中关闭在数据工作窗口中选择要关闭的表文件,然后选择“关闭”按钮,系统将关闭所选择的表文件。2023/7/23131.表结构的显示【格式】LIST|DISPLAYSTRUCTURE[TOPRINT[PROMPT]|TO[FILE][<文件名>]]【功能】显示或打印当前表文件的结构。在执行以上命令时,如果系统中没有已打开的表文件,系统提示输入文件名。用LIST命令,所有信息连续显示,信息较多时,屏幕停止在最后一屏;用DISPLAY命令,如果信息较多则分屏显示,敲任意键继续显示下一屏。【例3-2】显示表STUD.DBF的结构。USESTUDLISTSTRUCTURE
需要指出的是,最后一行显示出的记录字节数是所有字段宽度之和再加1。这额外的一个字节是用来存放记录的删除标记(*)的。
3.4表字段的基本操作
2023/7/2314
表结构的改变有时会引起表记录的变化,所以在一般情况下不轻易进行修改。但在确实需要时也可以进行修改。无论进行何种修改,使用的命令都是一个。1.命令方式【格式】MODIFYSTRUCTURE【功能】将当前已打开的表文件的表设计器打开进行修改。【说明】要修改表结构必须要先打开需要修改结构的表文件。如果当前工作区中没有已打开的数据库,执行此命令时系统会弹出“打开”对话框,以便用户选择需要修改表结构的文件名及路径等信息,用户选择完成后,系统将弹出表设计器对话框。3.5表结构的修改2023/7/2315一、表记录的显示1.命令方式【格式】LIST|DISPLAY[FIELDS<字段名表>][<范围>][FOR<条件表达式>][TOPRINTER|TOFILE<文件名>][OFF][NOCONSOLE]【功能】将当前表文件的记录按照指定的选项进行显示。3.6表记录的基本操作
2023/7/2316【说明】DISPLAY命令与LIST命令的功能相似,当表文件的数据记录较多时,用DISPLAY命令较为方便。还有一点不同之处就是,如果同时缺省<范围>和
<条件>子句,DISPLAY命令只显示当前的一条记录,而LIST命令则是取默认值ALL而显示全部记录。FIELDS<字段名表>:用来指定显示的字段。<范围>:用来指定显示哪些记录。“范围”有以下四种表示方法:●ALL:所有记录。●NEXTN:从当前记录开始,后面的N条记录(包括当前记录)●RECORDN:第N条记录。●REST:当前记录后的全部记录(包括当前记录)。
2023/7/2317FOR<条件表达式>:指定对表文件中指定范围内满足条件的记录进行操作。WHILE<条件表达式>:也是指定对表文件中指定范围内满足条件的记录进行操作,但是,当第一次遇到不满足条件的记录时,停止继续往后搜索。WHILE<条件表达式>若与FOR<条件表达式>同时使用,则WHILE项优先;若两者都不选用,则显示<范围>中指定的全部记录。
OFF:表示不显示记录号;若不选此项,则在各记录前显示记录号。
【例3-3】显示表STUD.DBF的全部记录。
USESTUDLIST
2023/7/2318【例3-4】显示男生的记录。
USESTUDDISPLAYFOR性别=’男’
FIELDS学号,姓名,性别,班级名,系别代号【例3-5】显示表中所有记录的学号、姓名和性别。
USESTUD
LISTFIELDS学号,姓名,性别
【例3-6】显示表中1985年出生的同学的学号、姓名、性别及出生日期。
USESTUDLISTFIELDS学号,姓名,性别,出生日期FORYEAR(出生日期)=1985
2023/7/23192.菜单方式(1)打开表。(2)选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。这时还可以选择【显示】|【浏览】或【编辑】来改变显示方式。3.利用项目管理器在项目管理器中,选择需要显示的表文件,单击“浏览”按钮或选择主菜单中【项目】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。2023/7/2320二、记录指针的定位记录号用于标识数据记录在表文件中的物理顺序。记录指针是一个指示器,它始终指向当前表中正在操作处理的那条记录,此记录被称为当前记录。如果要对某条记录进行处理,必须移动记录指针,使其指向该记录。在任意时刻指针只能指向唯一的一条记录。2023/7/2321
记录指针定位有绝对定位、相对定位和查询定位三种。在这里暂时只讲前二种,查询定位在讲到查询时再详细介绍。1.绝对定位【格式】[GO|GOTO]<[RECORD]<数值表达式>【功能】将记录指针绝对定位到<数值表达式1>指定的记录上。<数值表达式1>:记录的物理记录号。IN<数值表达式2>|IN<字符表达式>:指定操作表所在的工作区;若缺省,则对当前工作区表操作。工作区的概念在后面再详细介绍。绝对定位与是否打开索引文件没有关系。
2023/7/23222.相对定位【格式1】SKIP[<数值表达式1>]【功能】记录指针从当前记录向前(或向后)移动若干个记录。【说明】<数值表达式1>:表示移动的记录个数。若数值表达式的值为负值,表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向后移动1个记录。如果记录指针已经移过文件的最后一个记录,则RECNO()
函数返回的值等于文件中的记录总数加
1,EOF()函数返回逻辑真(.T.)值。【格式2】GO|GOTO<|TOP|BOTTOM>【功能】将记录指针移动到表文件的首记录或尾记录TOP:将记录指针移动到表文件的首记录。BOTTOM:将记录指针动到表文件的最后一条记录。2023/7/2323
相对定位与是否打开索引文件有关。如果打开有索引,记录指针按索引文件中顺序移动。否则按表文件中物理顺序移动。
【例3-7】绝对定位命令的用法。
USESTUDGOTO2GO3【例3-8】相对定位的用法。
USESTUDSKIP4&&系统主窗口显示为5SKIP–3 &&系统主窗口显示为2SKIP8 &&超出了记录总数6gotop
&&系统主窗口显示为12023/7/2324三、记录的追加1.从另一个表文件中追加记录【格式】APPENDFROM<文件名
|?>[FIELDS<字段名表>][FOR<逻辑表达式>]【功能】从指定的表文件中读入数据,并添加到当前表文件的末尾。【说明】数据的追加是从命令中指定的表文件追加到当前表文件中,所以,应先将需要追加记录的表文件打开,设置为当前表,然后再使用该命令进行追加。2023/7/23252.插入记录【格式】INSERT[BEFORE][BLANK]【功能】在当前表文件的指定位置插入新记录或空记录。【说明】INSERT是在当前记录之后插入新记录,INSERTBEFORE是在当前记录之前插入新记录,INSERTBLANK是在当前记录之后插入空记录。若表文件建立了索引,则插入的新记录按索引值进行排列。
2023/7/2326【例3-9】在表STUD.DBF的第2号记录前插入一条新记录,在第4号记录后插入一条新记录。
USESTUDGOTO2INSERTBEFORE&&在2号记录前插入一条新记录
GOTO5&&因已插入了一条新记录,原4号现为5号
INSERT&&在4号记录后插入一条新记录2023/7/2327四、删除记录
表记录的删除也是表维护的一项经常性的工作,因为删除意味着数据的消失,所以对记录的删除操作比较慎重,删除可分为逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物理删除则不可恢复。1.逻辑删除记录逻辑删除就是给指定的记录作删除标记“*”。(1)命令方式【格式】DELETE[<范围>][FOR<条件>]【功能】对当前表中指定范围内满足条件的记录作删除标记“*”。【说明】DELETE命令仅仅是在要删除的记录前加上一个删除标记“*”,并不是真正地从表文件中将该记录删除掉。可以用LIST或DISP命令显示带删除标记的记录。2023/7/2328<范围>,FOR<条件>、WHILE<条件>等各项选项意义同前;如果同时缺省<范围>和
<条件>子句,则仅仅删除当前的记录。【例3-10】删除STUD.DBF中所有男同学的记录。USESTUDDELETEFOR性别="男"LISTFIELDS学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员(2)菜单方式利用菜单方式逻辑删除记录的具体操作步骤如下:①首先打开表文件②选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。主菜单上增加【表】菜单项。
2023/7/2329③选择【表】|【删除记录】命令,出现图3-11所示的“删除”对话框。④单击删除对话框中的For…按钮或While…按钮,系统弹出表达式生成器,用户可以在表达式框中输入一个逻辑表达式,如性别=”男”,单击【确定】按钮完成条件表达式的输入。⑤在“作用范围”下拉列表框中选择范围,如ALL。⑥单击“删除”对话框中的“删除”按钮,系统将完成对指定范例内满足指定条件的记录的逻辑删除。2.隐藏逻辑删除记录【格式】SETDELETEDON|OFF【功能】将表文件中已逻辑删除的记录隐藏,仿佛真正删除一样。
2023/7/2330【说明】表文件中被逻辑删除的记录只是在该记录上加一个删除标记,当SETDELETED设置为OFF时,对该表文件的各种操作,对被删除的记录同样有效。当SETDELETEDON时,可使对表文件中数据的各种操作,一般均不包括有删除标记的记录,但下列情况例外:命令的记录范围是当前记录或RECORD(n)时;INDEX或REINDEX命令不受SETDELETED的影响,始终处理带删除标记的记录。SETDELETED的缺省状态是OFF。【例3-11】隐藏上题中STUD.DBF的标记删除记录。
USESTUDSETDELETEDON3.恢复逻辑删除记录恢复逻辑删除是将被逻辑删除的记录恢复为正常记录。即去掉“*”号。2023/7/2331(1)命令方式【格式】RECALL[<范围>][FOR<条件>][WHILE<条件>][NOOPTIMIZE]【功能】将当前表文件中指定范围内满足条件的已作删除标记“*”的记录恢复,即去掉这些删除记录的删除标记,使之成为正常记录。【说明】RECALL命令与DELETE命令相对应,它可以去掉被逻辑删除记录的删除标记“*”。<范围>,FOR<条件>、WHILE<条件>等各项选项意义同前;如果同时缺省<范围>和
<条件>子句,则仅仅恢复当前记录。【例3-12】恢复STUD.DBF中删除的所有记录。
USESTUDRECALLALL2023/7/2332(2)菜单方式①首先打开表文件②选择【显示】|【浏览】命令。③选择【表】|【恢复记录】命令,出现类似图3-11所示对话框。余下操作与“删除”对话框的操作相同。4.物理删除记录物理删除是将当前表文件中被逻辑删除的记录全部清除。(1)命令方式【格式】PACK[MEMO][DBF]【功能】将当前表文件中所有带删除标记(*)的记录全部真正地删除掉。【说明】若选用MEMO选项,PACKMEMO将压缩与表文件同名的备注文件中的无用空间,但并不删除表文件中作了删除标记的记录。2023/7/2333若选用DBF选项,而不用MEMO选项,则只删除表文件中作了删除标记的记录,而不压缩相应的备注文件。若不带任何选项,PACK命令将删除数据库文件中作了删除标记的记录,同时压缩相应的备注文件。注意:执行该命令后被删除的记录将不能被恢复,因此使用时应特别小心。【例3-13】将STUD.DBF中的学号为“021405”的记录进行物理删除。
USESTUDDELETEFOR学号=”021405”
PACK2023/7/2334(2)菜单方式利用菜单方式物理删除表记录的具体步骤如下:①首先打开表文件②选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。主菜单上增加【表】菜单。③选择【表】|【彻底删除】命令,出现“确认”对话框。④单击“是”按钮,完成物理删除过程。注意:用户也可以在EDIT、CHANGE、BROWSE窗口中,按Ctrl+T键对当前记录作(或取消)删除标记,也可以用鼠标单击记录最左边的删除标记栏作(或取消)删除标记。
2023/7/23355.删除全部记录【格式】ZAP【功能】将当前打开的表文件中的所有记录完全删除掉。【说明】执行该命令之后,将只保留表文件的结构,而不再有任何数据存在。这种删除无法恢复,因此,为防止用户发生错误操作而删除有用的表文件记录,执行该命令时,系统会弹出ZAP提示窗口,以确认是否删除全部记录,单击“是”按钮清除所有记录,单击“否”按钮放弃ZAP操作。2023/7/2336五、修改记录
在表的使用维护过程中,有大量的工作是对数据记录的修改、编辑与更新,通常可以采用编辑修改、浏览修改和替换修改三种方式。1.编辑修改【格式】EDIT/CHANGE [FIELDS<字段名表>][<范围>][FOR<逻辑表达式1>]【功能】按照给定条件编辑修改当前打开的表文件的记录。【说明】[FIELDS<字段名表>]:若选择此选项,则只列出字段名表中的字段,且显示顺序同字段名表中的顺序;若未选择此选项,将显示表中的所有字段,显示顺序同表中的字段顺序。2023/7/2337[<范围>]:若未选择此选项,则EDIT/CHANGE命令的范围为全部记录。[FOR<逻辑表达式1>]和[WHILE<逻辑表达式2>]:同前面其他命令所述,在此不再重复叙述。【例3-14】修改STUD.DBF中计0121班学生的学号、姓名和性别等信息。
USESTUDEDITFIELDS学号,姓名,性别
FOR班级名=”计0121”全部修改完毕,使用
Ctrl+End或
Ctrl+W键保存所有修改的结果。
2023/7/23382.浏览修改(1)命令方式【格式】BROWSE[FIELDS<字段名表>][FOR<逻辑表达式1>]【功能】显示当前表的记录内容,以供编辑修改。【说明】编辑结束后,按Ctrl+W或Ctrl+End存盘退出BROWSE编辑窗口,或者按Ctrl+Q或Esc键放弃存盘退出BROWSE窗口。(2)菜单方式利用菜单方式进行浏览修改的操作步骤如下:①打开表。②选择【显示】|【浏览】命令,系统弹出记录浏览窗口。③在编辑修改窗口中编辑修改数据内容,完成后按Ctrl+W键存盘退出Browse窗口。2023/7/23393.替换修改(1)命令方式【格式】REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>[ADDITIVE]]...[<范围>][FOR<逻辑表达式1>]【功能】用指定表达式的值替换当前表中满足条件记录的指定字段的值。【说明】:该命令适合对当前表进行成批地、有规律地修改。缺省范围、条件时,仅替换当前记录。该命令回车后,数据修改自动完成。适用于程序设计。
ADDITIVE只对备注型字段修改有效。(选择:表示添加内容;不选择:表示替换内容)表达式的类型必须与字段类型一致。表达式的值不能超出字段宽度,否则,数据无效。2023/7/2340【例3-15】修改STUD.DBF中的“学号”字段数据,。
USESTUDREPLACE学号
WITH”20”+学号
ALL(2)菜单方式①打开表文件。选择【显示】|【浏览】命令。
②选择【表】|【替换字段】命令,弹出图3-16所示的“替换字段”对话框。③单击字段下拉按钮选择要进行替换操作的字段名,在“替换为”显示栏中输入替换表达式,再选择“替换条件”显示框中的范围、条件。④单击“替换”按钮,系统将自动完成替换操作。
2023/7/23411.表结构的复制【格式】COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]【功能】复制当前表文件的结构作为新表文件的结构。【说明】命令执行前,需复制的表文件必须是打开的。
执行后,生成的新表文件只有结构。3.7表的复制2023/7/2342
【例3-16】用复制命令将STUD.DBF中的学号、姓名、性别、出生日期等四个字段,构成一个新表结构。
USESTUDCOPYSTRUCTURETOSTUD1FIELDS学号,姓名,性别,出生日期2023/7/23432.表文件的复制【格式】COPYTO<文件名>[FIELDS<字段名表>][<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>]【功能】将当前打开的表文件全部或部分复制到一个新生成的表文件中。【说明】新生成表文件中的字段顺序由FIELDS选择项<字段名表>确定,缺省表示新表的结构与原表的结构完全相同,新表文件中的记录由<范围>选择项以及<条件>选择项确定。同时缺省<范围>、<条件>表示将原表的全部记录都复制到新表中。
2023/7/2344【例3-17】复制STUD.DBF中所有女同学的记录到STUD2.DBF中。
USESTUD
COPYTOSTUD2FOR性别=“女”
【例3-18】复制STUD.DBF中的记录内容复制到SSTUD。
USESTUDCOPYTOSSTUD2023/7/2345一.表的排序【格式】SORTON<字段1>[/A|/D|/C][,<字段2>[/A|/D|/C]...][<范围>][ASCENDING|DESCENDING][FOR<逻辑表达式1>][FIELDS<字段名表>]TO<新文件名>【功能】对当前打开的表,按指定的字段进行排序,生成新的表文件。【例3-19】将STUD.DBF按性别进行降序排列
USESTUD
SORTTOSTUD2ON性别/D
3.8表的排序与索引2023/7/2346二.表的索引1.索引及索引文件的概述
VisualFoxPro系统中支持两种不同的索引文件类型,即单索引文件和复合索引文件。单索引文件是根据一个索引关键字表达式(或关键字)建立的索引文件,文件扩展名为.IDX,它可用INDEX命令的各种形式建立。单索引文件分为标准和压缩两种类型。复合索引文件,文件扩展名为.CDX,分为两种:一种是独立复合索引文件;另一种是结构复合索引文件。2023/7/2347索引可分为下列四种类型:(1)主索引主索引是一个永远不允许在指定字段和表达式中出现重复值的索引。它也是在数据库表的永久关联中创建参照完整性时主表和被引用表使用的索引。每一个表只能建立一个主索引,只有数据库表才能建立主索引。(2)侯选索引侯选索引也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自由表都可以建立侯选索引,一个表可以建立多个侯选索引。主索引和侯选索引都存储在.CDX结构复合索引文件中,不能存储在独立复合索引文件和单索引文件中,因为主索引和侯选索引都必须与表文件同时打开和同时关闭。2023/7/2348(3)唯一索引系统只在索引文件中保留第一次出现的索引关键字值。数据库表和自由表都可以建立唯一索引(4)普通索引是一个最简单的索引,允许关键字值的重复出现,适合用来进行表中记录的排序和查询,也适合于一对多永久关联中“多”的一边(子表)的索引。数据库表和自由表都可以建立普通索引。普通索引和唯一索引可以存储在.CDX独立复合索引文件和.IDX单索引文件中。2023/7/2349
2.索引文件的建立(1)命令方式【格式】INDEXON<索引关键字表达式>TO<单索引文件>TAG<标识名>[OF<独立复合索引文件名>][FOR<逻辑表达式>][COMPACT][ASCENDING|DESCENDING][UNIQUE][ADDITIVE]【功能】对当前表文件按指定的关键字建立索引文件。【说明】<索引关键字表达式>:指定建立索引文件的关键字表达式,可以是单一字段名,也可以是多个字段组成的字符型表达式,表达式中各字段的类型只能是数值型、字符型和日期型和逻辑型。2023/7/2350
当表达式是单个字段名时,字段类型不用转换;当表达式是多个字段名时,应转换成同一类型的表达式。TAG<标识名>:此选项只对建立复合索引文件时有效,指定建立或追加索引标识的标识名。OF<独立复合索引文件>:指定独立复合索引文件名。若有此选项,表示在指定的独立复合索引文件中追加一个索引标识,若指定的独立复合索引文件不存在,系统将自动建立指定的文件。若没有此选项,表示在结构复合文件中追加一个索引标识,若结构复合索引文件不存在,系统将自动建立结构复合索引文件。FOR<逻辑表达式>:表示只对满足条件的记录建立索引。COMPACT:此选项只对单索引文件有效,表示建立压缩索引文件。ASCENDING|DESCENDING:
ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省时,按升序建立索引。单索引文件不能选用DESCENDING选项。2023/7/2351UNIQUE:表示建立的是唯一索引。ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。新建的索引文件自动打开,并开始起作用。【例3-20】对STUD.DBF表文件建立出生日期单索引文件STUD.IDX。
USESTUDINDEXON出生日期
TOSTUD【例3-21】对表文件STUD.DBF,建立一个基于出生日期字段的结构复合索引文件。
USESTUDINDEXON出生日期
TAG出生日期
DESCENDING2023/7/2352【例3-22】在表文件STUD.DBF的结构复合索引文件中,按学号和姓名各追加一个标识。
USESTUDINDEXON学号
TAG学号【例3-23】在表文件STUD.DBF的结构复合索引文件中,先按性别再按学号追加一个标识。
USESTUDINDEXON性别+学号
TAG性别学号【例3-24】在表文件STUD.DBF中,先按性别再按是否团员建立一个独立复合索引文件SXBTY.CDX。
USESTUDINDEXON性别+IIF(是否团员,’团员’,’非团员’)TAG性别团员
OFSXBTY2023/7/23533.索引文件的打开【格式1】USE<文件名>[INDEX<索引文件名表>]【功能】打开指定的表文件及相关的索引文件【说明】:INDEX<索引文件名表>:表示打开的索引文件;2023/7/2354【格式2】SETINDEXTO[<索引文件名表>]【功能】在已打开表文件的前提下,打开相关索引文件。【说明】ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。2023/7/23554.索引文件的关闭【格式1】USE【功能】关闭当前工作区中打开的表文件及所有索引文件。【格式2】SETINDEXTO【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。【格式3】CLOSEINDEXS【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。注意:结构复合索引文件不能用以上命令关闭,它随表文件的打开而打开,随表文件的关闭而关闭。2023/7/23565.改变主索引【格式】SETORDERTO[<数值表达式1>|<单索引文件名>]【功能】重新指定打开的索引文件中的主索引。【说明】<数值表达式1>的值为指定主索引的编号。2023/7/2357
如果<数值表达式1>的值为0或缺省,则恢复表文件的原始顺序,使所有打开的索引文件都无效。【例3-25】打开STUD.DBF表文件及其相关索引文件,并指定结构复合索引文件中的姓名为主控索引。
USESTUDINDESTUD.IDXORDERTAG姓名【例3-26】打开STUD.DBF表及其相关索引文件,改变主索引文件。
USESTUDINDEXSTUD.IDXSETORDERTO4SETORDERTO&&使所有索引均无效
2023/7/2358(1)命令方式【格式】REINDEX[COMPACT]【功能】重新建立已索引过的索引文件。【说明】COMPACT:表示将标准的单索引文件变为压缩的单索引文件。【例3-27】将表STUD.DBF的索引文件重新索引。
USESTUDSETINDEXTOSTUD.IDXREINDEX(2)菜单方式①打开表文件。②选择【显示】|【浏览】命令。③选择【表】|【重新建立索引】命令,系统自动根据各索引表达式重新建立索引。2023/7/2359
在数据资源的管理过程中,使用最频繁的操作莫过于查询满足一定条件的一系列数据,从而为日常决策提供足够的判断依据。对表记录的查询系统提供了两类查询命令:顺序查询和索引查询。在前面介绍定位时,省略了条件定位,查询操作实际上就是起到了条件定位的作用。
3.9查询2023/7/2360一、顺序查询1.命令方式【格式】LOCATEFOR<逻辑表达式1>[<范围>][WHILE<逻辑表达2>]【功能】在表指定范围中查找满足条件的记录。【说明】LOCATE命令在表指定范围中查找满足条件的第一条记录。<逻辑表达式1>:表示所需满足的条件。
<范围>:指定查找范围,缺省时为ALL,即在整个表文件中查找。
2023/7/2361【格式】CONTINUECONTINUE命令:LOCATE找到第一条满足条件的记录可以用CONTINUE继续查找下一个满足条件的记录。
CONTINUE命令必须在LOCATE命令之后使用,否则出错。在CONTINUE命令中实际隐含了前一个LOCATE命令中的条件。【例3-28】在STUD.DBF中查找学号前四位为0111的同学记录。
USESTUDLOCATEFOR学号="0111"2023/7/23622.索引查询(FIND、SEEK)
LOCATE命令用于按条件进行顺序定位,无论索引文件是否打开都可使用。在打开索引文件后,还可以用FIND、SEEK命令进行快速检索。(1)FIND命令【格式】FIND<字符串>/<数值常量>【功能】在表文件的主控索引中查找关键字值与<字符串>或<数值常量>相匹配的第一个记录。【说明】必须打开相应的库文件、主索引文件。【例3-29】打开表文件STUD.DBF,查找姓“赵”的记录。
USESTUDSETORDERTO姓名
FIND赵2023/7/2363(2)SEEK命令【格式】SEEK<表达式>【功能】在表文件的主索引中查找关键字值与<表达式>值相匹配的第一个记录。【说明】SEEK命令可以查找字符型、数值型、日期型、逻辑型表达式的值。【例3-30】用SEEK命令在STUD.DBF中查找记录。
USESTUDINDEXON是否团员
TAG是否团员
SETORDERTO姓名
SEEK"孙"2023/7/23641.统计记录数【格式】COUNT[<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>][TO<内存变量>]【功能】用于统计当前表中指定范围内满足条件的记录个数。【说明】除非指定了<范围>或
FOR/WHILE<条件>,否则将计算所有记录个数,如选择了
TO<内存变量>,则可将计算结果保存在<内存变量>中,否则统计结果只在屏幕上显示。若选择了SETTALKOFF将不显示统计结果。若SETDELETEOFF,则加删除标志的记录将被计算。3.10数据统计与计算2023/7/2365【例3-31】统计STUD.DBF中的男同学记录个数和表记录总数。
USESTUDCOUNTFOR性别="男"TOACOUNTTOB2023/7/23662.求和【格式】SUM[<表达式表>][<范围>][FOR<条件>][WHILE<条件>][TO<内存变量表>|TOARRAY<数组>][NOOPTIMIZE]【功能】对指定范围内、满足条件的记录按指定的各个表达式分别求和。【说明】缺省范围、条件表示全部记录。缺省数值型表达式表,表示对库中所有数值型字段求和。数值型表达式表中表达式的个数应与内存变量的个数一致。2023/7/2367【例3-32】有一表文件GZGL.DBF内容如下,Record#姓名
性别
车间
基本工资
岗位工资
奖金
工资总额
1张小红
女
金工一
64534012011052李建军
男
金工一
69037013011903孙爱国
男
金工一
58034012010404吴晓英
女
金工一
54036011010105张
斌
男
金工二
67040014012106赵
娜
女
金工二
57033011010107赵明明
男
金工二
560300100960
8李
菲
女
机修
6503501501
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育婴师多元教育方法分享试题及答案
- 电极设计面试题及答案
- 西医临床技能评估试题及答案
- 药物安全性知识的考察试题及答案
- 理清系统架构设计师考试中的决策能力与执行力要求试题及答案
- 文化产业管理证书考试最热试题及答案
- 系统架构设计师项目周期管理试题及答案
- 育婴师如何有效支持家长试题及答案
- 激光设备的技术路线规划试题及答案
- 文化产业内容创作试题及答案解说
- 制冷与空调设备运行操作作业安全技术实际操作考试标准
- 安踏组织架构分析
- 2024新版(闽教版)三年级英语上册单词带音标
- 浙江省杭州市2024年中考英语真题(含答案)
- 有限空间中毒窒息事故警示教育
- Java Web编程技术 课件 第17章SSM框架整合与实例
- 2024年青岛市中考数学试卷(含答案解析)+2023年试卷及答案详解
- 冷库建设日常运营与维护保养方案
- 【真题】2024年镇江市中考道德与法治试卷(含答案解析)
- 火花机安全操作规程
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
评论
0/150
提交评论