1 / 68

第三章

第三章. 表的建立与基本操作. 第三章 表的建立与基本操作. 3.1  创建数据表 3.2  表结构的编辑 3.3  表的基本操作 3.4  排序与索引 3.5  索引查找 3.6  记录的统计与计算. 第三章 表的建立与基本操作. 3.1  创建数据表

layne
Download Presentation

第三章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 表的建立与基本操作

  2. 第三章 表的建立与基本操作 3.1 创建数据表 3.2 表结构的编辑 3.3 表的基本操作 3.4 排序与索引 3.5 索引查找 3.6 记录的统计与计算

  3. 第三章 表的建立与基本操作 • 3.1 创建数据表 • 数据库实际上是由多个表构成的集合,数据库的操作实质上是表的操作。Visual FoxPro中表一般包含在数据库中,称为数据库表。表也可以脱离数据库独立存在,称为自由表。从数据库内部创建的表,总是数据库表;直接创建的表是自由表。自由表可以随时添加到数据库中,成为数据库表;数据库表也可以随时移出数据库,成为自由表。

  4. 第三章 表的建立与基本操作 • 3.1.1 设计表结构 • 在利用Visual FoxPro建立一个新表之前,应当先分析和设计表,了解表中记录要表示怎样的信息以及表的目的,据此设计表中的字段,从而确定表的结构。 • 对学生档案数据库,建立“学生”表来存储学生的个人信息,包括学号、姓名、性别、出生日期、简历等,这些内容是相对独立的,应由不同的字段来表示。而关于学生的成绩与每人选修的课程相关,VF中建立的表是二维关系表,“学生”表如果太复杂不利于操作,所以成绩和课程需要另外建表来处理。如果想知道学生的总体信息,只要将几个相关表中的数据组合,即可得到。据此,建立表3.1、表3.2、表3.3三个表分别表示学生个人信息、课程信息和成绩信息。

  5. 第三章 表的建立与基本操作 • 3.1.1 设计表结构 • Visual FoxPro系统规定其表文件最多可由255个字段组成。在设计表结构时,应遵循Visual FoxPro系统对字段名、类型、宽度和小数位的规定。 • (1)字段名 • 字段名又称字段变量,它的命名规则与内存变量相同,最长为10个字符,允许由字母、汉字、数字和下划线组成,但必须以字母或汉字开头,中间不能有空格。 • (2)字段类型 • 表中的每一个字段由于其数据代表的意义不同,因而都有特定的数据类型,例如姓名、成绩、出生日期这3个字段的类型是各有相同的,在Visual FoxPro中,分别用字符型、数值型或整型、日期型来表示的。熟悉各种数据类型可以帮助我们更方便地对表进行操作。

  6. 第三章 表的建立与基本操作 • 3.1.1 设计表结构 • (3)字段宽度 • 对每个字段都需要确定其宽度,字段宽度表示字段中可以存放数据的最大字符数。 • 各种数据类型的字段宽度如表3.4所示,除字符型、二进制字符型、数值型和浮动型外,其它9种字段宽度是固定不变的。

  7. 第三章 表的建立与基本操作 • 字段宽度

  8. 第三章 表的建立与基本操作 • (4)小数位数 • 数值型字段、双精度型字段、浮点型字段、货币型字段有小数位。只有在需要设计时才规定小数位,否则这个规定可以省略。小数位的最大宽度必须小于字段宽度减2,即要留出小数点前的0和小数点。 • 另外,Visual FoxPro的表文件是真正含义的数据库表文件,所以在设计自由表结构时,还需要考虑字段是否支持空值(NULL)、如何建立索引等。

  9. 第三章 表的建立与基本操作 • 3.1.2 建立表结构 • 建立表结构有两种方式,一种是通过表设计器来建立,一种是通过表向导在已有的表的基础上建立一个新表。本节主要说明表设计器的建表步骤。 • 一、用表设计器建表 • 1、表设计器第一步:指定表名及保存位置 • 在图3.1的新建对话框中,选择表,单击“新建文件”,打开创建新文件的对话框,图3.2所示,选定保存位置,输入表文件名(如本例中“学生”),可以不输扩展名,系统会自动加上扩展名.dbf,单击“保存”按钮。 • 2、表设计器第二步:在表设计器中输入各字段名,设置各字段的数据类型、宽度、小数位数。 • 在图3.3(a)刚刚打开的表设计器中,输入表3.5中给定的内容,逐次输入字段名、类型、宽度及小数位数,输入完毕的表结构如图3.3(b)所示。

  10. 第三章 表的建立与基本操作 学生表的表结构 新建对话框

  11. 第三章 表的建立与基本操作 • 3、表设计器第三步:录入数据 完成图3.3(b)中各个字段值的设置之后,按“确定”按钮,系统显示如图3.4的对话框,单击“是”,打开图3.5输入记录窗口,表示立即输入记录值;如果单击“否”,结束表结构的设计,以后再录入数据。    在图3.5中,各条记录之间用横线隔开,左边显示字段的名称,用颜色块标识当前字段的输入区的大小。用户输完一条记录后,系统自动定位到下一条记录。全部记录输入完毕后,关闭编辑窗口,完成记录的录入操作,表创建完成。

  12. 第三章 表的建立与基本操作 • 二、用命令建表 • 在命令窗口中输入以下命令同样可以打开表设计器创建表。 • 命令格式: • CREAT <表文件名[.DBF]> • 如果要建立课程表,则在命令窗口键入命令: • CREAT 课程.DBF • 回车之后,系统同样打开图3.3的表设计器窗口,再按照前面同样的步骤就可以建立课程表。 • 另外,还可以用表向导建立表,利用Visual FoxPro提供的样本表,选择样本表中的结构和字段,构成所需的表结构。用向导创建的表也可以在保存之后再使用表设计器修改。

  13. 第三章 表的建立与基本操作 • 3.2 表结构的编辑 • 3.2.1 表结构的修改 • 表建立之后,随着对表的操作和情况的变化,有时需要修改表结构。例如,增加字段、删除字段,修改字段名、字段类型宽度、小数位、是否允许空值等,学习索引之后还要添加、修改或删除索引标识等。通常打开表设计器来修改表结构,也可以命令方式来修改表结构。例如,在“学生”表增加“年龄”字段,将奖学金改为数值型。

  14. 第三章 表的建立与基本操作 • 1、菜单方式 • 在“文件”菜单中选择“打开”命令,在“打开”对话框中选择要打开的表,如双击打开“学生”表。 • 在“显示”菜单中选择“浏览学生”命令,打开“学生”表浏览窗口。 • 再次选择“显示”菜单,选择“表设计器”命令,打开表设计器,如图3.6选中“简历”字段,单击“插入”按钮,则在“简历”字段前插入“新字段”,修改字段名称为“年龄”,字段类型为“整型”,然后单击“确定”弹出图3.7示“是否永久修改”,单击“是”。 • 注意:修改表结构同设计表结构类似,但在修改时要注意防止数据的丢失。

  15. 第三章 表的建立与基本操作 • 2、命令方式 • 格式:MODIFY STRUCTURE • 功能:打开表设计器修改表结构。 • 说明:在打开表以后,执行MODIFY STRUCTURE命令,将打开表设计器对表结构进行修改。 • 注意: • 修改字段类型时,并不完全转换字段的内容,或者根本不转换。例如,如果将日期类型的字段转换成数值类型,字段内容是不转换的。 • 在更改表结构之前,Visual FoxPro自动备份当前表。在修改完以后,将备份表中包含的数据追加到新修改的表结构中。如果表中有一个备注字段,也将创建一个备注备份文件。表备份文件的扩展名为.BAK,备注备份文件的扩展名是.TBK。 • 当修改一个具有备注字段的表结构时,备注文件的块大小设置为当前的块大小。可以用SET BLOCKSIZE命令指定备注文件的块大小。

  16. 第三章 表的建立与基本操作 • 3.2.2 表结构的显示 • 格式1:DISPLAY STRUCTURE [IN <工作区号>/<别名>] • 格式2:LIST STRUCTURE [IN <工作区号>/<别名>] • 功能:两条命令的功能相同,都是显示当前打开的表文件的结构,只是DISPLAY STRUCTURE分页显示,而LIST STRUCTURE连续滚动显示。 • 命令说明: • 显示当前打开的表的字段结构,包括每个字段的名称、类型和宽度。如果字段是数值型、双精度型、浮点型或货币型的,还将显示小数点在字段中放置的位数,也支持显示空值。 • 显示表中当前的记录数和最近更新的日期。如果表中有一个相关备注字段,则显示备注字段块的大小。 • 显示所有字段的总宽度和表的代码页。 • 如果建立了结构复合索引文件,则在字段名同行显示该索引的排列顺序。

  17. 第三章 表的建立与基本操作 • 例如,显示“学生.DBF”表结构,可以使用下列命令: • USE 学生 • DISPLAY STRUCTURE • 在图3.8中,总计的字节数为38,比各字段宽度之和多1个字节,用来存放删除标记“*”。

  18. 第三章 表的建立与基本操作 • 3.3 表的基本操作 • 3.3.1 表的打开和关闭 只有刚刚创建的表是自动打开的,否则任何对表的操作,首先应当打开表。在结束对表的操作后,应及时关闭表文件,将内存中的数据存回磁盘。如果没有及时关闭文件,由于人为的误操作或突然停电等因素,有可能造成数据的破坏或损失。

  19. 第三章 表的建立与基本操作 • 一、表的打开 • 表文件的打开有两种方式:菜单方式和命令方式。 • 1、菜单方式。 • 选择“文件”菜单,单击“打开”命令。 • 单击“打开”按钮。 • 选择“窗口”菜单,选择“数据工作期”命令,在“数据工作期”对话框中,单击“打开”按钮。采用上述几种菜单方式后,均会出现“打开”对话框,双击要打开的表名后,即可打开表文件。 • 2、命令方式。 • 格式:USE <表文件名> • 功能:打开表文件名。

  20. 第三章 表的建立与基本操作 • 二、表的关闭 • 关闭表文件的方法有以下几种: • 1、菜单方式 • 选择“窗口”菜单,选择“数据工作期”命令,在“数据工作期”对话框中,选择表的别名后,单击“关闭”按钮。 • 2、命令方式。 • 使用不加表名的USE 命令,在当前工作区中关闭一个已打开的表文件。 • 在一个工作区中打开另一个表时,原来在该工作区中打开的表自动关闭。 • CLOSE TABELS命令关闭在所有工作区打开的自由表。 • CLEAR ALL、CLOSE ALL等命令也将关闭表文件。 • 正常退出Visual FoxPro将关闭一切文件。

  21. 第三章 表的建立与基本操作 • 例3.1关闭表文件。 • USE 学生    &&打开学生.DBF表文件 • USE &&不带任何选项的USE命令关闭当前工作区打开的学生.DBF文件 • USE课程 &&打开课程.DBF表文件 • USE成绩 &&在打开成绩.DBF时自动关闭原先打开的课程.DBF表文件

  22. 第三章 表的建立与基本操作 • 3.3.2 表的编辑与修改 • 打开表文件之后,Visual FoxPro主窗口没有任何显示信息,此时应当打开浏览窗口才能查看表内容。打开浏览窗口有以下几种方式: • 在“项目管理器”中选定表后,单击“浏览”按钮。 • 在“数据工作期窗口”中选定表后,单击“浏览”按钮。 • 打开表后,在命令窗口中输入命令:BROWSE 或BROWSELAST • 打开表后,选择“显示”菜单命令,在下拉菜单中选择浏览命令。

  23. 第三章 表的建立与基本操作 • (1)添加记录  打开浏览窗口后,在图3.10的“表”菜单中 选择“追加新记录”或在“显示”菜单中选择 “追加方式”,浏览窗口尾部会增加一条空 白记录,光标此时定位在空白记录的第一 个字段,在此空白记录处输入新的记录值 (图3.9(b))。 表菜单

  24. 第三章 表的建立与基本操作 对于备注型字段,双击备注字段,或用Ctrl+PageDown、Ctrl+PageUp命令,就会打开备注字段的编辑窗口,图3.11所示。编辑完后,关闭该窗口,此时memo的第一个字母变成大写,即Memo。 (2)修改记录 在浏览窗口中,单击要修改的字段就可以了。 (3)删除记录、 Visual FoxPro中的删除记录分为逻辑删除和物理删除两种,逻辑删除只是将记录加上删除标记,并未真正删除,还可以恢复;物理删除是从表中真正删除记录,无法恢复。

  25. 第三章 表的建立与基本操作 • 3.3.3 输入记录 •   在创建表时可以根据系统提示立即输入记录,也可以不输入记录。没有记录的表叫空表,可以随时向空表追加记录,也可以向已有记录的表追加记录。 • 一、创建时输入记录 • 见表设计器第三步,图3.5输入记录窗口。 • 二、添加记录 • 1、追加记录 • APPEND命令可以在表的末尾增加一条或多条记录。 • 命令格式: • APPEND [BLANK] [IN <工作区号>|<别名>][NOMENU] • 参数说明: • BLANK:在当前表的末尾增加一条空白记录。

  26. 第三章 表的建立与基本操作 • IN <工作区>:指定表的工作区 • IN <别名>:指定表的别名 • 忽略该选项,新记录添加到当前工作区的表中 • NOMENU:禁止在系统菜单条上显示“表”菜单,防止用户对表的格式进行编辑 • 2、添加备注字段 • APPEND命令可以把文本文件的内容复制到备注字段中。 • 命令格式:APPEND MEMO <备注字段名> FROM <文本文件名> [OVERWRITE] … • 参数说明: • OVERWRITE:如无,文件内容将追加到指定备注字段中;       如有,用文件的内容替换备注字段当前的内容。

  27. 第三章 表的建立与基本操作 • 例 3.3把stud.txt文本文件内容复制到“简历”字段中。 • USE 学生 • APPEND MEMO 简历 FROM stud.txt • MODIFY MEMO 简历 • USE

  28. 第三章 表的建立与基本操作 • 三、插入记录 • INSERT命令可以在表的指定位置添加新记录。 • 命令格式: INSERT [BEFORE][BLANK] • 参数说明: • BLANK:同APPEND命令,用来插入一个空记录 • BEFORE:打开浏览窗口,在当前表的当前记录后插入一个新记录,无该选项,在当前表的当前记录前插入一条空记录。

  29. 第三章 表的建立与基本操作 • 3.3.4 显示表记录 • 除了用菜单命令显示表记录外,还可以通过命令设置条件,有选择地显示表中的记录。 • 命令1:连续滚动显示LIST命令 • 格式:LIST [OFF] [<范围>][FOR <条件>][WHILE<条件>][FIELDS <表达式表>] • 命令2:分屏显示DISPLAY 命令 • 格式:DISPLAY [OFF] [<范围>][FOR <条件>][WHILE<条件>][FIELDS <表达式表>]

  30. 第三章 表的建立与基本操作 • 参数说明: • 1、<范围>子句: • 表示命令对表文件进行操作的记录范围,一般有4种选择: • ALL:对表文件所有的记录进行操作。 • NEXT n:只对从当前记录开始的连续若干个指定数目的记录进行操作。 • RECORD n:只对第n个记录进行操作。 • REST:只对从当前记录开始到表文件尾为止的所有记录进行操作。 • 其中,n为数值表达式的值。

  31. 第三章 表的建立与基本操作 • 2、FOR <条件> 和WHILE <条件>子句: • FOR<条件>:在指定的范围内,按条件逐个检查所有记录,直到该范围内的最后一条记录为止。 • WHILE <条件>:在指定的范围内,按条件逐个检查所有记录,一旦遇到第一个不满足条件的记录(即逻辑表达式<条件>计算结果为.F.)时,就停止查找并结束该命令的执行。 • 3、FIELDS子句。 • 该子句用于规定当前处理的字段和表达式。它有三种格式: • 该子句实现对表的字段筛选,完成关系的投影运算。 • 4、OFF子句。 • 不显示记录号。如果省略了OFF,就在每个记录前显示记录号。

  32. 第三章 表的建立与基本操作 • 3.3.5 修改记录 • 除了前面提到的在浏览窗口中修改表记录外,还可以用EDIT或CHANGE命令全屏幕编辑修改表记录。此外,经常使用REPLACE命令在程序中动态更新表记录。 • 命令格式: • REPLACE <字段名1> WITH <表达式1>[ADDITIVE] • [, <字段名2> WITH <表达式2> [ADDITIVE]]… • [<范围>][FOR <条件>][WHILE<条件>] • 参数说明: • <字段名1> WITH <表达式1>[ADDITIVE][, <字段名2> WITH <表达式2>:指定用<表达式1>的值来代替<字段名1>中的数据,用<表达式2>的值来代替<字段名2>中的数据,依此类推。

  33. 第三章 表的建立与基本操作 • 当表达式的值比数值字段的宽度长时,REPLACE采用以下方法来处理数据: • REPLACE截短表达式的小数位,然后取整剩余部分。 • 如果此时数值字段仍然放不下表达式的值,用科学计数法在字段中保存表达式的值。 • 若仍放不下表达式的值,用星号代替字段内容(数据溢出)。 • ADDITIVE:把对备注字段的替代内容追加到备注字段的后面。ADDITIVE只对替换备注字段有用,如果省略ADDITIVE,则用表达式的值改写备注字段原有内容。 • REPLACE命令的默认范围是当前记录(NEXT 1)。 • NOOPTIMIZE:使该命令的Rushmore优化无效。

  34. 第三章 表的建立与基本操作 • 3.3.6 删除记录   • 1、DELETE命令 • DELETE命令是逻辑删除,只是给记录加上删除标记,这些作了删除标记的记录仍保留在表文件中。用LIST命令显示时,仍然可以看到这些记录,逻辑删除的记录在记录号后用“*”表示。 • 命令格式:DELETE [<范围>][FOR <条件>][WHILE<条件>] [IN <工作区号>/<别名>][NOOPTIMIZE] • 命令说明: • 根据SET DELETED ON/OFF设置的不同,操作时将产生不同结果。 • SET DELETED ON:删除标记有效,处理记录时忽略有删除标记的记录。 • SET DELETED OFF(默认值):删除标记失效,处理记录时可以访问标有删除标记的记录。 • [FOR <条件>][WHILE<条件>]子句用于指定一个条件,仅给满足逻辑条件的记录做删除标记。 • 标有删除标记的记录可以用RECALL恢复(清除标记)。 • 不带选项的DELETE命令,其默认范围是当前记录(NEXT 1)。

  35. 第三章 表的建立与基本操作 • 2、RECALL命令 • 该命令恢复所选表中带删除标记的记录。 • 命令格式:RECALL [<范围>][FOR <条件>][WHILE<条件>] [NOOPTIMIZE] • 命令说明: • 缺省范围为当前记录(NEXT 1) • 一旦对表文件使用了PACK命令或ZAP命令,带删除标记的记录将永远消失,无法恢复。

  36. 第三章 表的建立与基本操作 • 3、PACK命令 •   该命令将有删除标记的记录从当前表中永久删除,减少与该表相关的备注文件所占用的空间。 • 命令格式:PACK [MEMO] [DBF] • 参数说明: • MEMO:从备注文件中删除未使用的空间,但不从表中删除标有删除标记的记录。备注字段的信息保存在一个相关的备注文件内。 • DBF:从表中删除标有删除标记的记录,但不影响备注文件。 • 如果不带MEMO和DBF子句发出PACK命令,PACK命令将同时作用于表和备注文件。

  37. 第三章 表的建立与基本操作 • 4、ZAP命令 •   该命令从表中删除所有记录,只留下表的结构。 • 命令说明: • ZAP命令等价于DELETE ALL和PACK联用,但ZAP速度更快。如果SET SAFETY为ON,Visual FoxPro会提示是否要从当前表中删除记录。 • ZAP命令只用来删除表的记录,表结构仍然存在。而删除文件的命令是删除整个文件,将记录与结构全部删除。

  38. 第三章 表的建立与基本操作 • 3.3.7 记录定位 • 对表记录的操作是靠记录指针定位的,它是一种内部标志,用来指出表文件的当前记录。对表文件的许多操作都是对当前记录进行的。在打开表文件时,记录指针指向第一个记录。随着命令的执行,记录指针会发生移动。有时也需要人为移动记录指针,称为记录指针的定位。在表的索引文件未打开的情况下,记录指针是按表的物理顺序移动的。而在表的索引文件打开的情况下,记录指针一般是按表的逻辑顺序移动的。

  39. 第三章 表的建立与基本操作 • 1、绝对移动 • 格式1:GO/GOTO [RECORD] <记录号> [IN <工作区号>/<别名>] • 格式2:GO/GOTO TOP/BOTTOM [IN <工作区号>/<别名>] • 命令说明: • RECORD <记录号>指定一个物理记录号,记录指针将移至该记录。你可以省略GO或GOTO命令而只指定记录号,但如果仅指定记录号,则只能在当前工作区中移动记录指针。该命令所指的物理记录号是记录在表中的物理顺序,执行格式1这条绝对移动命令,无论索引文件是否打开,均移到物理记录号所指的记录,与表的逻辑顺序无关。 • TOP:记录指针指向表的第一个记录上。 • BOTTOM:记录指针指向最后一个记录上。

  40. 第三章 表的建立与基本操作 • 2、相对移动。 • 格式:SKIP <记录数> [IN <工作区号>/<别名>] • 功能:使记录指针在表中向前或向后相对移动。 • 命令说明: • <记录数>:用于指定记录指针需要移动的记录数;缺省,记录指针移到下一条记录,相当于命令SKIP 1。如果<记录数>为正数,记录指针向文件尾移动<记录数>个记录;如果<记录数>为负数,记录指针将向文件头移动<记录数>个记录。 • 如果记录指针指向表的最后一个记录,并且执行不带参数的 SKIP 命令时,RECNO( ) 函数返回值比表中记录总数大1,EOF( )函数返回“真”(.T.);如果记录指针指向表的第一个记录,并执行SKIP -1命令,则RECNO( )函数返回值与第一个记录的记录号相同,BOF( )函数返回“真”(.T.)。

  41. 第三章 表的建立与基本操作 • 3.4 排序与索引 • 3.4.1 排序 • 排序命令可以对当前选定的表进行排序,并将排好序的记录输出到新表中。 • 命令格式: • SORT TO <表文件名> ON <字段名1 > [/A//D] [/C] [,<字段名2 > [/A//D] [/C]…] • [ASCENDING / DESCENDING] [<范围>][FOR <条件>][WHILE<条件>] • [NOOPTIMIZE] [FIELDS <字段名表>/LIKE<通配符>/ EXCEPT<通配符>]

  42. 第三章 表的建立与基本操作 • 命令说明: • <表文件名>:存放排序后记录的新表名,Visual FoxPro为表存取.DBF文件扩展名。 • ON <字段名1 >:指定当前选定的、要排序的表中的字段名, • [/A//D] [/C]:对于排序中包含的每个字段,可以指定排序顺序(升序或降序)。/A为字段指定了升序。/D指定了降序。默认情况下,字符型字段的排序顺序区分大小写。如果在字符型字段名后包含/C,则忽略大小写。 • ASCENDING:将所有不带/D的字段指定为升序排列。 • DESCENDING:将所有不带/A的字段指定为降序排列。 • 默认范围:ALL,即所有记录。 • FIELDS LIKE <通配符>:在新表中包含那些与字段<通配符>相匹配的原表字段,新表用SORT命令创建。 • FIELDS EXCEPT <通配符>:在新表中包含那些不与字段<通配符>相匹配的原表字段。

  43. 第三章 表的建立与基本操作 • 3.3.2 索引的概念 • 1、索引的概念 • Visual FoxPro中的索引是由指针构成的文件,这些指针逻辑上按照索引关键字值的顺序排列,这种顺序称为记录的逻辑顺序。索引文件和表文件分别存储,不改变表中记录的物理顺序。 • 2、索引文件的类型 • (1) 单项索引文件 • 扩展名为.IDX,只能容纳一项索引,只能用命令方式操作。 • (2) 复合索引文件 • 扩展名为.CDX,可以容纳多项索引,索引之间用唯一的索引标识区别,每个索引标识名的作用等同于一个索引文件名。

  44. 第三章 表的建立与基本操作 • 复合索引文件分为两种: • 结构复合索引文件 • 结构复合索引文件的主名与表文件的主名相同。表文件打开时,它随表的打开而打开,关闭表时随表的关闭而关闭。 • 非结构复合索引文件 • 与结构复合索引文件不同,该文件的主名与表文件的主名不同,定义时要求用户为其取名。因此当表文件打开或关闭时,该文件不能自动打开或关闭,必须用户自己操作。

  45. 第三章 表的建立与基本操作 • 3、索引关键字的类型 • 索引关键字是由一个或若干个字段构成的索引表达式。索引表达式的类型决定了不同的索引方式。在Visual FoxPro中,有四种类型的索引:主索引、候选索引、普通索引和惟一索引 • (1) 主索引:绝对不允许在指定的字段或表达式中有重复值。一个表只能建一个主索引。 • (2) 候选索引:同样不允许在指定的字段或表达式中有重复值。与主索引不同,一个表可以创建多个候选索引。 • (3) 普通索引:允许在指定的字段或表达式中有重复值,在数据库库表和自由表中都可以创建普通索引。 • (4) 惟一索引:也允许在指定的字段或表达式中有重复值,但是只存储索引文件中重复值的第一次出现。

  46. 第三章 表的建立与基本操作 • 3.4.3 建立索引 • 1、使用INDEX命令创建索引 • 命令格式: • INDEX ON < 索引表达式> TO <单项索引文件名> | TAG <索引标识名> • [OF <复合索引文件名>] [FOR<条件>] [COMPACT] • [ASCENDING/DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] • 参数说明: • TO <单项索引文件名>:创建一个单项索引文件名,默认的索引文件扩展名为.IDX。 • TAG <索引标识名> [OF <复合索引文件名>]:创建一个复合索引文件。 • [FOR<条件>]:指定条件,索引文件只为那些满足条件的记录创建索引关键字,实现筛选数据

  47. 第三章 表的建立与基本操作 • [COMPACT]:创建一个压缩的.IDX文件 • [ASCENDING/DESCENDING]:指定文件是升序或降序,默认为升序,本选项只对复合索引文件有效。 • [UNIQUE]:当有多个记录的<索引表达式>值相同时,只有其中第一个记录被载入索引。 • [ CANDIDATE]:创建候选结构索引标识,只对结构复合索引标识有效 • [ADDITIVE]:指定先前打开的索引文件保持打开状态。缺省,则用INDEX命令建立索引文件时,所有先前打开的索引将关闭。

  48. 第三章 表的建立与基本操作 • 命令说明: • 该命令默认创建普通索引型索引。 • 索引表达式由当前表中的字段名或由字段名、函数、常数等组成的表达式构成。索引表达式可以是单一字段,也可以是多个字段的组合表达式。 • 索引表达式类型有4种:字符型、数值型、日期型、逻辑型 • 注意:组合表达式中数据类型必须一致。 • (1) 创建单项索引文件,命令的基本格式如下: • INDEX ON <索引表达式> TO <文件名> • (2) 创建结构复合索引文件,命令的基本格式如下: • INDEX ON < 索引表达式> TAG <索引标识>

  49. 第三章 表的建立与基本操作 • (3) 创建非结构复合索引文件,命令的基本格式如下: • INDEX ON < 索引表达式> TAG <索引标识> OF <文件名> • 例3.15 降序排序 • USE 学生 • INDEX ON - 奖学金 TO IJXJ &&单项索引文件的降序排序 • INDEX ON 年龄 DESC TAG AGE &&结构复合索引文件的降序排序 • INDEX ON 奖学金 DESC TAG JXJ OF JXJ &&非结构复合索引文件的降序排序

  50. 第三章 表的建立与基本操作 • 2、在“表设计器”中建立索引 • 打开表设计器,其中有三个选项卡,字段选项卡和索引选项卡,这两个选项卡都可以建立或修改索引,但二者有区别。 • 在字段选项卡中只能建立普通索引,索引关键字为单一字段。

More Related