1、第三章第三章 数据库与表的基本操作数据库与表的基本操作 3.1 创建数据表创建数据表 3.1.1 字段类型字段类型 建立数据表结构,就是要定义表当中的建立数据表结构,就是要定义表当中的字字段个数、字段名、字段类型和字段宽度段个数、字段名、字段类型和字段宽度以及以及是否建立索引等。是否建立索引等。一行的数据称之为记录。每一列是不可分割的信息最小单位,称之为字段。一个或多个字段组成表中的一个记录,一个或多个记录构成一个表。数据类型代号说明字段宽度数据范围字符型C字母、数字型文本1字符占1字节小于等于254个字符货币型Y货币单位8个字节-922337203685477.5807 to 9223372
2、03685477.5807数值型N整数或小数8个字节,小于等于20位-.9999999999E+19to .9999999999E+20浮动型N同“数值型”日期型D年,月,日8个字节0001-01-01 to 9999-12-31日期时间型T年,月,日,时,分,秒8个字节0001-01-01to9999-12-31 plus00:00:00a.m.to11:59:59p.m.双精双精度型度型N双精度数值双精度数值8个字节个字节+/-4.94065645841247E-324to+/-8.9884656743115E307整型整型N不带小数点的不带小数点的数值数值8个字节个字节-21474836
3、47 to 2147483647逻辑逻辑型型L真或假真或假1个字节个字节真或假,用真或假,用.T.和和.F.来来表示表示备注备注型型M较长的字母数较长的字母数字文本字文本4个字节个字节只受存储空间限制只受存储空间限制通用通用型型GOLE(对象链(对象链接与嵌入)接与嵌入)4个字节个字节只受存储空间限制只受存储空间限制1.字段宽度对于字段宽度对于日期型、逻辑型是日期型、逻辑型是8、12.备注型和通用型宽度为备注型和通用型宽度为4。3.备注型数据是存放在和表文件名同名的备备注型数据是存放在和表文件名同名的备注文件当中,其扩展名为注文件当中,其扩展名为.fpt.4.字符型、数值型等应选择能够存储该数
4、据字符型、数值型等应选择能够存储该数据的最小宽度,一个字符占一个字节,一个的最小宽度,一个字符占一个字节,一个汉字占两个字节。汉字占两个字节。5.5.对于有小数的数值型和浮动型字段,应为对于有小数的数值型和浮动型字段,应为“数值型数值型”或或“浮点型浮点型”字段设置正确的字段设置正确的小数位数。注意小数点本身也占一位。小数位数。注意小数点本身也占一位。3.1.2创建表结构创建表结构 字段名字段名代表的字段代表的字段字段名类型字段名类型宽度宽度小数位小数位BH编号编号字符型字符型5 XM姓名姓名字符型字符型8 XB性别性别字符型字符型2 CSRQ出生日期出生日期日期型日期型8 ZC职称职称字符型
5、字符型10 DYF党员否党员否逻辑型逻辑型1 SZXY所在学院所在学院字符型字符型10 ZP照片照片通用型通用型4 BZ备注备注备注型备注型4 1.利用利用“表设计器表设计器”创建表结构创建表结构单击单击“文件文件”菜单中选择菜单中选择“新建新建”选项卡在可滚动表格内显示表字段,每一行包括字段名、选项卡在可滚动表格内显示表字段,每一行包括字段名、数据类型、字符宽度、小数位数、索引,并支持数据类型、字符宽度、小数位数、索引,并支持 null 值。值。单击表格内的单元格可以修改字段。单击表格内的单元格可以修改字段。“插入插入”按钮:在已选定字段上插入一个新字段。按钮:在已选定字段上插入一个新字段。
6、“删除删除”按钮:从表中删除选定字段。按钮:从表中删除选定字段。依次输入各个字段的名称、类型、宽度依次输入各个字段的名称、类型、宽度 单击单击“确定确定 选择选择“是是”立即开始输入记录,选择立即开始输入记录,选择“否否”退出表结构设计退出表结构设计 若要输入备注型字段和通用型字段的数据,若要输入备注型字段和通用型字段的数据,可把光标放置在备注型或通用型字段的可把光标放置在备注型或通用型字段的memo或或gen所在位置,用鼠标双击或用键盘命令所在位置,用鼠标双击或用键盘命令ctrl+pgdn打开相应的字段编辑窗口打开相应的字段编辑窗口 通用型字通用型字段的录入段的录入可通过系可通过系统编辑菜统
7、编辑菜单中的单中的“插入对插入对象象”。二、利用向导创建表结构二、利用向导创建表结构 “表向导表向导”是基于典型的表结构创建表。是基于典型的表结构创建表。“表向导表向导”允许从样表中选择满足需要的表。允许从样表中选择满足需要的表。在一步步经过向导的过程中,可以定制表的在一步步经过向导的过程中,可以定制表的结构和字段。也可以在向导保存表之后修改结构和字段。也可以在向导保存表之后修改表。表。3.1.3 修改表结构修改表结构 利用利用“表设计器表设计器”,可以改变已有表的结构,可以改变已有表的结构,如增加或删除字段、设置字段的数据类型及宽如增加或删除字段、设置字段的数据类型及宽度、查看表的内容以及设
8、置索引。度、查看表的内容以及设置索引。3.1.4 表的打开和关闭表的打开和关闭 单击单击“文件文件”菜单,选择菜单,选择“打开打开”,选定,选定想要查看的表名。然后单击想要查看的表名。然后单击“显示显示”菜单中菜单中的的“浏览浏览”来显示和修改表中记录。来显示和修改表中记录。单击单击“文件文件”菜单,选择菜单,选择“关闭关闭”,关闭,关闭当前已经打开的表。当前已经打开的表。3.2 表记录的基本操作表记录的基本操作 3.2.1 追加记录追加记录 若想在表中快速加入新记录,我们可以将若想在表中快速加入新记录,我们可以将“浏览浏览”和和“编辑编辑”窗口设置为窗口设置为“追加方追加方式式”。在。在“追
9、加方式追加方式”中,文件底部显示了中,文件底部显示了一组空字段,可以在其中填入来建立新记录。一组空字段,可以在其中填入来建立新记录。3.2.2 显示记录显示记录 从从“文件文件”菜单中选择菜单中选择“打开打开”,选定想,选定想要查看的表名要查看的表名“jsqk.dbf”。从从“显示显示”菜单中选择菜单中选择“浏览浏览”。显示的显示的内容是由一系列可以滚动的行和列组成的。内容是由一系列可以滚动的行和列组成的。“编辑编辑”方式方式 3.2.2 显示记录显示记录 从从“文件文件”菜单中选择菜单中选择“打开打开”,选定想,选定想要查看的表名要查看的表名“jsqk.dbf”。从从“显示显示”菜单中选择菜
10、单中选择“浏览浏览”。3.2.3 定位记录定位记录 打开表打开表“jsqk.dbf”,进入表,进入表“浏览浏览”窗口。窗口。在表在表“浏览浏览”窗口,打开窗口,打开“表表”菜单,选择菜单,选择“转到记录转到记录”子菜单子菜单 第一个第一个 把指针放置在表或视图的第一个记录上。把指针放置在表或视图的第一个记录上。最后一个最后一个 把指针放置在表或视图的最后一个记录上。把指针放置在表或视图的最后一个记录上。下一个下一个 把指针放置在紧跟当前记录之后的记录上。把指针放置在紧跟当前记录之后的记录上。上一个上一个 把指针放置在当前记录的上一个记录上。把指针放置在当前记录的上一个记录上。记录号记录号 显示
11、显示“转到记录转到记录”对话框,从中可以指定一对话框,从中可以指定一个记录号个记录号 定位定位 显示显示“定位记录定位记录”对话框,从中可以对话框,从中可以查找表或视图中的索引字段或未索引查找表或视图中的索引字段或未索引字段,或者查找多个记录。字段,或者查找多个记录。ALL,代表全部,可对表或视图中的全部记代表全部,可对表或视图中的全部记录起作用。录起作用。NEXT,代表后续,可对某一范围的记录起作代表后续,可对某一范围的记录起作用,作用范围从当前记录开始,持续用,作用范围从当前记录开始,持续指定数目的记录。键入指定数目的记录。键入1 将只对当前将只对当前记录起作用。记录起作用。RECORD,
12、代表记录号,可对指定记录号的记录代表记录号,可对指定记录号的记录起作用。起作用。REST,代表其余,可对某一范围的记录起作代表其余,可对某一范围的记录起作用,作用范围从当前记录开始,到表用,作用范围从当前记录开始,到表或视图的最后一条记录为止。或视图的最后一条记录为止。FOR、WHILE文本文本框用于显示框用于显示“表达式表达式生成器生成器”对话框。对话框。WHILE 表达式表达式指定指定仅当该逻辑表达式为仅当该逻辑表达式为“真真”时,操作影响时,操作影响记录。一旦表达式取记录。一旦表达式取值为值为“假假”,操作即,操作即停止而不考虑其余记停止而不考虑其余记录。录。3.2.4修改记录修改记录
13、打开要修改记录的表,进入表打开要修改记录的表,进入表“浏览浏览”窗窗口,把光标定位到所需修改的记录。口,把光标定位到所需修改的记录。当我们修改完毕,关闭表窗口,或按当我们修改完毕,关闭表窗口,或按CTRL+W存盘,存盘,CTRL+Q放弃当前的修改。放弃当前的修改。3.2.5 删除记录删除记录 1.逻辑删除表中的记录逻辑删除表中的记录 单击要删除记录的左边的小方框,标记要删除单击要删除记录的左边的小方框,标记要删除的记录,我们称之为的记录,我们称之为逻辑删除逻辑删除。把指针移到要进行逻辑删除的记录上,对准其把指针移到要进行逻辑删除的记录上,对准其删除标志栏单击鼠标左键,标志栏中就会出现一删除标志
14、栏单击鼠标左键,标志栏中就会出现一个黑色的小块,这就是逻辑删除的标志。个黑色的小块,这就是逻辑删除的标志。方法二:方法二:进入表进入表“浏览浏览”窗口,打开窗口,打开“表表”菜单,菜单,选择选择“删除记录删除记录”,进入,进入“删除删除”窗口。窗口。2.恢复表中带有删除标志的记录恢复表中带有删除标志的记录 带有删除标志的记录,系统默认情况下,带有删除标志的记录,系统默认情况下,都参与表中的操作。都参与表中的操作。执行了执行了Set Deleted On命令,带有删除命令,带有删除标志的记录将不参与任何操作。标志的记录将不参与任何操作。打开表打开表“jsqk.dbf”,进入表,进入表“浏览浏览”
15、窗口。窗口。方法一:方法一:把指针移到要进行恢复逻辑删除的记录上,对准把指针移到要进行恢复逻辑删除的记录上,对准其删除标志栏单击鼠标左键,标志栏中黑色的小块其删除标志栏单击鼠标左键,标志栏中黑色的小块(这就是逻辑删除的标志)就消失了。(这就是逻辑删除的标志)就消失了。方法二:方法二:打开表打开表“jsqk.dbf”,进入表,进入表“浏览浏览”窗口,窗口,打开打开“表表”菜单,选择菜单,选择“恢复记录恢复记录”,进入,进入“恢复恢复记录记录”窗口。窗口。3.删除带有删除标记的记录删除带有删除标记的记录 有删除标记记录并不等于删除记录。要有删除标记记录并不等于删除记录。要想真正地删除记录,应从想真
16、正地删除记录,应从“表表”菜单中选择菜单中选择“彻底删除彻底删除”。3.2.6 筛选记录筛选记录 可以在表中设置一个过滤器来定制自己的表,可以在表中设置一个过滤器来定制自己的表,有选择地显示某些记录。还可以通过设置有选择地显示某些记录。还可以通过设置字段过字段过滤器滤器,对表中的某些字段的访问进行限制,这样,对表中的某些字段的访问进行限制,这样可以有选择地显示需要的字段。可以有选择地显示需要的字段。打开表打开表 进进入表入表“浏览浏览”窗口。从窗口。从“表表”菜单菜单上选中上选中“属属性性”选择选择“数据过滤器数据过滤器”边上按钮,进入边上按钮,进入“表达式生成表达式生成器器”窗口,在窗口,在
17、“表达式生成器表达式生成器”窗口中输入条件窗口中输入条件(jsqk.zcjsqk.zc=“=“教授教授”)从从“表表”菜单上选中菜单上选中“属性属性”,在允许,在允许访问选项中,选择访问选项中,选择“字段筛选指定的字段字段筛选指定的字段”,然后单击然后单击“字段筛选字段筛选”按钮按钮 3.2.7表操作的常用命令表操作的常用命令一、表文件的结构操作一、表文件的结构操作1.建表命令格式建表命令格式:格式格式1:CREATE 路径路径 数据表名数据表名功功 能:能:定义表文件的结构,包含表文件名定义表文件的结构,包含表文件名及表的字段名、类型、宽度、小数位等参及表的字段名、类型、宽度、小数位等参数的
18、设置。数的设置。2.表结构的显示表结构的显示功功 能:能:显示出当前正在使用表文件的结构显示出当前正在使用表文件的结构。格式格式1:DISPLAYSTRUCTURETOPRINTER|TOFILE格式格式2:LISTSTRUCTURETOPRINTER|TOFILE其功能的格式其功能的格式1相同,只是相同,只是LIST命令不能分屏显示。命令不能分屏显示。而而DISPLAY命令可以分屏显示。命令可以分屏显示。3.表结构的修改表结构的修改格式格式:MODIFYSTRUCTURE功能功能:修改当前表文件的结构。修改当前表文件的结构。说明:说明:可增减字段可增减字段,也可改变字段名、字段类型、也可改变
19、字段名、字段类型、字段宽度及小数位数。修改完后可以根据字段宽度及小数位数。修改完后可以根据CTRL+W存盘,可用存盘,可用CTRL+Q放弃存盘。放弃存盘。4.表结构的复制表结构的复制 格式:格式:COPYSTRUCTURETO FIELDS功能:功能:复制一个同原表结构一样或相似的新的复制一个同原表结构一样或相似的新的表结构。表结构。二、二、表的数据录入表的数据录入 1.插入命令插入命令 格式:格式:INSERT BLANK功能:功能:用来在表中插入记录用来在表中插入记录说明:说明:如果跟如果跟BLANK子句表示在文件指针所指位置子句表示在文件指针所指位置(当前记录)后而追加一条空白记录,等用
20、户以后(当前记录)后而追加一条空白记录,等用户以后再输入数据。再输入数据。没有没有BLANK子句会弹出编辑窗口,进入编辑状子句会弹出编辑窗口,进入编辑状态,用户可以在窗口输入数据。态,用户可以在窗口输入数据。使用使用BEFORE子句,表示在文件指针所指位置子句,表示在文件指针所指位置(当前记录)前插入新记录。(当前记录)前插入新记录。2.追加命令追加命令命令命令1:APPENDBLANK功功 能:能:向已打开的表文件末尾加入新记录。向已打开的表文件末尾加入新记录。说说 明:明:如果跟如果跟BLANK子句表示在文件尾追子句表示在文件尾追加一条空白记录,等用户以后再输入数据。没加一条空白记录,等用
21、户以后再输入数据。没有有BLANK子句会弹出编辑窗口,进入编辑状子句会弹出编辑窗口,进入编辑状态,用户可以在窗口输入数据态,用户可以在窗口输入数据 三、三、表的打开和关闭表的打开和关闭1.打开表命令格式打开表命令格式:USEIN AGAINALIASEXCLUSIVESHARENOUPDATE功能:功能:在当前工作区内打开已存在的表文在当前工作区内打开已存在的表文件及相关的索引文件。件及相关的索引文件。2.关闭表命令关闭表命令命令命令1:USEIN命令命令2:格式格式1:CLOSE ALL 格式格式2:CLOSE DATABASESALL 格式格式3:CLOSE TABLESALL 命令命令3
22、:QUIT四、显示表的记录四、显示表的记录命令命令1:DISPLAYOFFFIELDSFORTOPRINTER|TO FILE功能:功能:在指定范围内显示表文件中满足条件的记录。在指定范围内显示表文件中满足条件的记录。说明:说明:命令后面没有子句时命令后面没有子句时,则只显示则只显示当前记录当前记录。选项选项OFF将不显示记录的编号。将不显示记录的编号。选项选项为指定范围内的记录,其选择为:为指定范围内的记录,其选择为:ALL:所有记录所有记录RECORD n:第第n个记录个记录NEXT n:从当前记录开始的从当前记录开始的n个记录个记录REST :从当前记录开始到文件结束从当前记录开始到文件
23、结束止的所有记录。止的所有记录。命令命令2:LISTOFFFIELDSFORTOPRINTER|TO FILE 功能:功能:LIST 命令与命令与DISPLAY相同。不同之处相同。不同之处在于在于LIST后面无任何子句时,将显示所有记录。后面无任何子句时,将显示所有记录。命令命令3:BROWSEFIELDSFORLOCK NOAPPEND NODELETENOEDIT|NOMODIFYTITLE VALID:F ERROR 功能功能:浏览表内容,它具有很强的全屏幕编辑功能。浏览表内容,它具有很强的全屏幕编辑功能。五、记录指针定位五、记录指针定位1.绝对定位绝对定位:命令命令1:GO/GOTO
24、TOP|BOTTOM IN功能:功能:把记录指针直接定到指定的记录上。把记录指针直接定到指定的记录上。说明:说明:TOP把记录指针指向第一条记录。把记录指针指向第一条记录。BOTTOM把记录指针指向最后一条记录。把记录指针指向最后一条记录。IN子句子句表示被移动的记录指针不是当前工作区打表示被移动的记录指针不是当前工作区打开的表。开的表。命令命令2:GO/GOTOIN 功能:功能:把记录指针指向记录号等于把记录指针指向记录号等于的的值的记录。值的记录。例:例:USE jsqk&打开数据表打开数据表?RECNO()()&显示记录号,显示记录号,RECNO()为为 测试当前记录号函数测试当前记录号
25、函数1&屏幕显示:屏幕显示:1GO BOTTOM&记录指针指向最后一条记录记录指针指向最后一条记录?RECNO()()&显示记录号显示记录号2.相对定位相对定位SKIP IN 功能:功能:从当前记录开始从当前记录开始,将记录指针向前或向后移若干将记录指针向前或向后移若干条记录。条记录。例:例:USE JSQK?RECNO()()&显示记录号显示记录号1&屏幕显示:屏幕显示:1?BOF()()&BOF()为文件起始函数为文件起始函数.F.&屏幕显示:屏幕显示:.F.SKIP 1&记录指针向文件头移动一个记录记录指针向文件头移动一个记录?RECNO()()&显示记录号显示记录号六、六、表记录内容的
26、修改表记录内容的修改记录修改命令如记录修改命令如EDIT、CHANGE、BROWSE等,可对已输入的数据记录内容进行修改。等,可对已输入的数据记录内容进行修改。1.编辑命令编辑命令 EDIT格式:格式:EDITFIELDSFORFREEZENOEDIT|NOMODIFY功能:功能:对指定的记录进行修改的全屏幕编辑命令对指定的记录进行修改的全屏幕编辑命令。说明:说明:选项选项FIELDS 可选定任意组合的可选定任意组合的字段。字段。改换命令改换命令 CHANGE格式:格式:CHANGEFIELDSFORFREEZENOEDIT|NOMODIFY功能:功能:同同edit命令命令选项选项FREEZE
27、限制可以修改的字段限制可以修改的字段。3.浏览命令浏览命令 BROWSE在前面我们已经介绍,请大家参考前面的内容。在前面我们已经介绍,请大家参考前面的内容。4.替换命令替换命令 REPLACEREPLACE WITH ADDITIVE,WITH ADDITIVE.FOR WHILE 功能:功能:用于成批地快速修改满足条件的一批记录。用于成批地快速修改满足条件的一批记录。七、七、表记录的删除和恢复表记录的删除和恢复 在实际工作中,对不再需要的记录,可用记录删在实际工作中,对不再需要的记录,可用记录删除命令(如除命令(如DELETE)删除;对不小心作错删除)删除;对不小心作错删除标记的记录,又可用
28、恢复命令标记的记录,又可用恢复命令RECALL恢复。恢复。1.删除命令删除命令 DELETEDELETE FORWHILE功能:功能:给当前表中所指定的记录作删除标记给当前表中所指定的记录作删除标记(*)。例:删除性别为女的同志例:删除性别为女的同志USE JSQK&打开表文件打开表文件DELETE FOR xb=”女女”&给女同志加上删除标志给女同志加上删除标志 2.取消删除标记命令取消删除标记命令 RECALLRECALL FORWHILE功能功能:恢复当前表文件中已作了删除标记的记录,恢复当前表文件中已作了删除标记的记录,即取消删除标记即取消删除标记(*)例:恢复出生年月在例:恢复出生年
29、月在1970以后出生的同志以后出生的同志RECALL ALL FOR YEAR(csrq)19703.永久性删除命令永久性删除命令 PACK 在发出在发出 PACK 命令之前,带有删除标记命令之前,带有删除标记的记录并没有在物理上被删除。的记录并没有在物理上被删除。格式:格式:PACK4.全部删除命令全部删除命令 ZAP格式:格式:ZAP功能功能:删除当前表文件中所有的记录删除当前表文件中所有的记录。说明:说明:此命令只剩下表结构,相当于执行了此命令只剩下表结构,相当于执行了DELETE ALL 和和PACK命令命令3.3建立数据库建立数据库3.3.1数据库设计数据库设计1.确定建立数据库的目
30、的确定建立数据库的目的 2.确定需要的表确定需要的表 3.确定所需字段确定所需字段4.确定关系确定关系5.设计求精设计求精 3.3.2创建数据库创建数据库 n方法一:方法一:利用利用“新建新建”创建数据库创建数据库 “文件文件”菜单选择菜单选择“新建新建”,再选择,再选择“数数据库据库”,选择选择“新建文件新建文件”按钮,出现保存文件对按钮,出现保存文件对话框话框数据库创建好之后,里数据库创建好之后,里面是空的,没有包含任面是空的,没有包含任何相关表或其他对象何相关表或其他对象 n方法二:方法二:使用使用“数据库向导数据库向导”向导提供模板并提出一系列问题,然后根向导提供模板并提出一系列问题,
31、然后根据您的回答帮助您建立数据库。据您的回答帮助您建立数据库。n方法三:方法三:使用命令使用命令 创建一个叫做创建一个叫做 Sample 的新数据库。的新数据库。CREATE DATABASE Sample 3.3.3打开数据库打开数据库常用方法:常用方法:n从系统菜单下的从系统菜单下的“文件文件”中选择中选择“打开打开”。n下面的代码打开下面的代码打开 testdata 数据库数据库:OPEN DATABASE testdatan通过项目管理器来打开。通过项目管理器来打开。3.3.4关闭数据库关闭数据库n可以使用可以使用“项目管理器项目管理器”或或 CLOSE DATABASE 命令关闭一个
32、已打开的数据命令关闭一个已打开的数据库。库。n命令窗口命令窗口:CLOSE DATABASE n可以在可以在“项目管理器项目管理器”中,选定要关闭的中,选定要关闭的数据库并选择数据库并选择“关闭关闭”按钮。按钮。3.4 索引和排序索引和排序 表表索引索引是一个记录号的列表,指向待处理是一个记录号的列表,指向待处理的记录,并确定了记录的处理顺序。的记录,并确定了记录的处理顺序。索引索引是由指针构成的文件,这些指针逻辑是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序上按照索引关键字的值进行排序。索引文件。索引文件和表的和表的.dbf 文件分别存储,并且不改变表文件分别存储,并且不改变表
33、中记录的物理顺序。中记录的物理顺序。3.4.1索引文件的类型索引文件的类型1.根据扩展名可以分为:根据扩展名可以分为:(1)包含单一关键字的索引文件(包含单一关键字的索引文件(.IDX)这种索引文件这种索引文件只能按关键字段的值升序排序只能按关键字段的值升序排序。它分为非压缩。它分为非压缩的的.IDX文件和压缩文件和压缩.IDX文件。文件。(2)包含多重关键字的复合索引文件(包含多重关键字的复合索引文件(.CDX)这种索引文件中可以存储多个索引,对每一个索引都取一个这种索引文件中可以存储多个索引,对每一个索引都取一个特殊的名字,称为一个特殊的名字,称为一个标记标记。它分为。它分为:结构化复合索
34、引文件结构化复合索引文件 结构化复合索引文件的文件名是自动分配的,与相关的表文结构化复合索引文件的文件名是自动分配的,与相关的表文件名一样,索引保存在一个结构复合索引文件中,每次表打开件名一样,索引保存在一个结构复合索引文件中,每次表打开时自动打开,而且在表修改时自动更新的索引文件。时自动打开,而且在表修改时自动更新的索引文件。非结构化复合索引文件非结构化复合索引文件 非结构化复合索引文件的文件名与表的名字不同,当表打开非结构化复合索引文件的文件名与表的名字不同,当表打开时,这种索引文件不会自动打开,必须由用户打开它。时,这种索引文件不会自动打开,必须由用户打开它。2.根据索引功能来分的索引根
35、据索引功能来分的索引(1)主索引)主索引 主索引主索引可确保字段中输入值的唯一性并决定了处理记录的顺序。可确保字段中输入值的唯一性并决定了处理记录的顺序。可以为数据库中的每一个表建立一个主索引。如果某个表已经有可以为数据库中的每一个表建立一个主索引。如果某个表已经有了一个主索引,可以继续添加候选索引。了一个主索引,可以继续添加候选索引。(2)候选索引)候选索引 候选索引候选索引象主索引一样要求字段值的唯一性并决定了处理记录象主索引一样要求字段值的唯一性并决定了处理记录的顺序。在数据库表和自由表中均可为每个表建立多个候选索引。的顺序。在数据库表和自由表中均可为每个表建立多个候选索引。(3)普通索
36、引普通索引 普通索引普通索引也可以决定记录的处理顺序,但是允许字段中出现重也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。复值。在一个表中可以加入多个普通索引。(4)唯一索引)唯一索引 为了保持同早期版本的兼容性,还可以建立一个唯一索引,以为了保持同早期版本的兼容性,还可以建立一个唯一索引,以指定字段的首次出现值为基础,选定一组记录,并对记录进行排指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。序。3.4.2索引文件的建立索引文件的建立1.建立结构索引建立结构索引 在在“表设计器表设计器”中,中,选择选择“索引索引”选项卡,选项卡,在在“索引名索
37、引名”框中,框中,键入索引名键入索引名“XB”,从从“类型类型”列表中,列表中,选定选定“普通索引普通索引”类类型,排序选择型,排序选择“升升序序”,确良单击,确良单击“确确定定”。建好表的索引后,在建好表的索引后,在“浏览浏览”状态,选择状态,选择“表表”菜单下的菜单下的“属性属性”菜单,在索引选项中选菜单,在索引选项中选择择 所需操作,单击所需操作,单击“确确定定”,表中记录的顺序,表中记录的顺序发生了改变发生了改变.2.通过命令建立索引文件通过命令建立索引文件INDEXON 索引关键字索引关键字 TO 单索引文件名单索引文件名|TAG 索引标识名索引标识名OF.复合索引文件名复合索引文件
38、名FOR条件条件ASCENDING|DESCENDINGUNIQUEADDITIVE COMPACTnTO子句子句用于建立单索引文件,其名字由单索引文件名标识。用于建立单索引文件,其名字由单索引文件名标识。nTAG 索引标识名索引标识名用于建立复合索引文件和索引标识用于建立复合索引文件和索引标识。nON 索引关键字索引关键字指定索引字段的组合形式,可由单一字段组成,也可指定索引字段的组合形式,可由单一字段组成,也可以多个字段组成。以多个字段组成。n选项选项 OF.复合索引文件名复合索引文件名 指定建立非结构化复合索引文件。指定建立非结构化复合索引文件。n选项选项 ASCENDING|DESCE
39、NDING 项是选择升序还是降序项是选择升序还是降序n选项选项 UNIQUE 只保留索引字段相同的多条记录中的第一条记录。只保留索引字段相同的多条记录中的第一条记录。n选项选项 ADDITIVE 建立一个新索引文件时,不关闭原已打开的索引建立一个新索引文件时,不关闭原已打开的索引文件。文件。n选项选项 COMPACT指定建立的单一索引文件以压缩型方式存储。指定建立的单一索引文件以压缩型方式存储。例:建立单索引文件示例例:建立单索引文件示例根据出生日期生成一单索引文件根据出生日期生成一单索引文件IDX1USE e:xlyjsgljsqk.dbf EXCLUSIVEBROWSE LASTINDEX
40、 ON csrq TO IDX1LIST FIELDS bh,xm,xb,csrq n例例4:根据所在学院和出生日期建立一索引:根据所在学院和出生日期建立一索引,其索引标其索引标识为识为CDX2nINDEX ON SZXY+DTOC(CSRQ)TAG CDX2nLIST FIELDS bh,xm,xb,csrq,szxy3.4.3索引的修改和删除索引的修改和删除 1.修改索引修改索引 若打开一个表而不打开其相应的索引文件,并更改表中与索引相关的关若打开一个表而不打开其相应的索引文件,并更改表中与索引相关的关键字段内容,则索引文件就会过时。当系统被破坏或者从非键字段内容,则索引文件就会过时。当系
41、统被破坏或者从非 Visual FoxPro 程序中访问和更新表索引文件时,都可能导致索引文件无效。程序中访问和更新表索引文件时,都可能导致索引文件无效。如果索引文件过时,可以使用如果索引文件过时,可以使用 REINDEX 命令命令重建索引重建索引,更新它们。,更新它们。若要若要重建活动索引文件方法如下重建活动索引文件方法如下:从从“表表”菜单中选择菜单中选择“重新建立索引重新建立索引”。或者或者 使用使用 REINDEX 命令命令。例如,可以使用以下命令更新例如,可以使用以下命令更新 customer 表的索引文件:表的索引文件:USE customerREINDEX2.删除索引删除索引 我
42、们可以通过删除我们可以通过删除.cdx 文件中的标识来文件中的标识来删除不再使用的索引,或者通过删除删除不再使用的索引,或者通过删除.idx 文件本身来删除独立索引。文件本身来删除独立索引。(1)从结构从结构.cdx 文件中删除标识文件中删除标识 在在“表设计器表设计器”中使用中使用“索引索引”选项卡选选项卡选择并删除索引。择并删除索引。DELETE TAG ALL|(2)从非结构从非结构.cdx 文件中删除标识文件中删除标识 使用使用 DELETE TAG 命令的命令的 OF 子句。子句。例如删除非结构例如删除非结构.cdx 文件文件 QTRLYRPT.cdx 中的标识中的标识 title:
43、DELETE TAG title OF qtrlyrpt(3)删除独立删除独立.idx 索引文件索引文件 使用使用 DELETE FILE 命令命令:例如例如,以下代码删除独立以下代码删除独立.idx 索引文件索引文件 Orddate.idx:DELETE FILE orddate.idx3.4.4 索引文件的使用索引文件的使用 1.打开索引文件打开索引文件格式格式1:SETINDEXTO.索引文件名表索引文件名表ADDITIVE功能:功能:对已打开的表文件,再打开相应的索引文件。对已打开的表文件,再打开相应的索引文件。例:例:USE jsqk&打开打开JSQK数据表数据表SET INDEX
44、TO IDX1,IDX2&打开打开IDX1.IDX和和IDX2.IDXLIST&记录按出生年月升序排列记录按出生年月升序排列,即即IDX1.IDX为主控索引为主控索引 格式格式2:USE 文件名文件名INDEXTO.索引文件名表索引文件名表功能:功能:打开的表文件的同时也打开相应的索引文件打开的表文件的同时也打开相应的索引文件例:例:USE jsqk INDEX TO IDX1,IDX2&打开表时打开表时同时打开同时打开IDX1.IDX和和IDX2.IDX2.选择主索引选择主索引SETORDERTO数值表达式单索引文件名表数值表达式单索引文件名表TAG索引标识索引标识ASCENDING|DES
45、CENDING功能:功能:用来确定主控索引和主控索引文件。用来确定主控索引和主控索引文件。说明:说明:SET ORDER TO 或或SET ORDER TO 0 用于取消主控索引文件和主控索引用于取消主控索引文件和主控索引。例:例:USE jsqk INDEX idx1&打开表时同时打开打开表时同时打开IDX1.IDXUSE jsgz INDEX idx2&打开表时同时打开打开表时同时打开IDX2.IDXLIST&记录按基本工资降序排列记录按基本工资降序排列SET ORDER TO TAG cdx1&打开复合索引文件打开复合索引文件JSQK.CDX 的索引标识的索引标识 CDX1 LIST&记
46、录按出生年月降序排列记录按出生年月降序排列SET ORDER TO 1&指定指定IDX1.IDX为主控索引为主控索引LIST&记录按出生年月升序排列记录按出生年月升序排列SET ORDER TO 3&指定指定JSQK.CDX中的中的CDX1主控索引主控索引LIST&记录按出生年月降序排列记录按出生年月降序排列 3.4.5 排序排序n1.排序与索引的异同排序与索引的异同n排序和索引排序和索引都是对表按一定的顺序重新组织,实都是对表按一定的顺序重新组织,实现的目的相同现的目的相同。n排序排序是重新建立一个表文件,排序完成后,出现是重新建立一个表文件,排序完成后,出现两个表,原表和新的排序表。要使用
47、新的排序后两个表,原表和新的排序表。要使用新的排序后的表,必须打开这个表的表,必须打开这个表。n索引索引是建立索引文件,索引文件中仅包含排了序是建立索引文件,索引文件中仅包含排了序的关键字段内容及其相应记录号并与原表同时使的关键字段内容及其相应记录号并与原表同时使用。用。2.排序文件的建立排序文件的建立SORTTOON/A/C/D,/A/C/D.FIELDSFORWHILE功能:功能:按某一些字段建立一个新的排序文件按某一些字段建立一个新的排序文件。说明:说明:TO :指定排序文件名,指定排序文件名,ON :指定排序的字段。指定排序的字段。/A:表示升序表示升序 ASCENDING,省略为升序
48、;选省略为升序;选/C:表表示按字符型字段排序时示按字符型字段排序时,大小写字母无区别;大小写字母无区别;/D:降序:降序DESCENDING。范围和条件范围和条件缺省表示对所有记录进行操作。缺省表示对所有记录进行操作。3.5记录的查询记录的查询3.5.1顺序查找顺序查找LOCATE 范围范围 For WHILE 功能:功能:按指定条件在一定范围中进行顺序查询按指定条件在一定范围中进行顺序查询。说明:说明:n范围缺省范围缺省,系统默认为,系统默认为ALL,FOR 查找所有使条查找所有使条件表达式为真的记录。件表达式为真的记录。n若找到,记录指针会指向第一个满足条件的记录,若没有满足若找到,记录
49、指针会指向第一个满足条件的记录,若没有满足条件的记录,指针指向表文件尾,主屏幕的状态栏中显示条件的记录,指针指向表文件尾,主屏幕的状态栏中显示“已已到定位范围末尾到定位范围末尾”。n若有多条满足条件的记录,要继续查找下一满足条件的记录,若有多条满足条件的记录,要继续查找下一满足条件的记录,必须用必须用CONTINUE命令命令 3.5.2索引查找索引查找命令命令1:SEEK 索引关键字索引关键字功能:功能:在已打开索引的表中根据关键字的值查找满足条件的第一个记录。在已打开索引的表中根据关键字的值查找满足条件的第一个记录。并把指针指向该记录。并把指针指向该记录。说明:说明:n若找到,记录指针会指向
50、第一个满足条件的记录,若没有满足条件的若找到,记录指针会指向第一个满足条件的记录,若没有满足条件的记录,指针指向表文件尾,主屏幕的状态栏中显示记录,指针指向表文件尾,主屏幕的状态栏中显示“没有找到没有找到”。n执行该命令时,主索引文件的关键值可以是字符型的,也可以是数字执行该命令时,主索引文件的关键值可以是字符型的,也可以是数字型的。型的。n如果是字符型,字符串可以是关键数值的全部,可以是从它左边开始如果是字符型,字符串可以是关键数值的全部,可以是从它左边开始的任一部分。的任一部分。n如果是数值,就必须把数字确切地列出来,字符串必用引号括起来。如果是数值,就必须把数字确切地列出来,字符串必用引
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。