第四章 Visual FoxPro 数据库及其操作

1.创建数据库

可以通过以下几种方式创建数据库:

(1).在“项目管理器”中创建数据库

打开“ 项目管理器” ,选择“ 数据” 选项卡中的“ 数据库”然后单击“ 新建” 按钮,在弹出的“ 创建” 对话框中输入数据库名,单击“ 保存” 。

(2).由文件菜单创建数据库

在系统菜单中,选择“文件”下拉菜单中的“新建”,在“新建”对话框中选择数据库文件类型,然后单击“新建文件”按钮,此时系统会弹出“创建”对话框,在弹出的“创建”对话框中输入数据库名,并单击“保存”按钮。

(3).通过命令建立数据库

CREATE DATABASE [数据库文件名/?]

例 题

1.Visual FoxPro在建立数据库时建立了扩展名分别为____的文件。

A..dbc

B..dct

C..dcx

D.A,B,C

[解析] 本题考查的知识点是创建数据库文件时出现的三个不同类型的文件。Visual FoxPro在建立数据库时建立了扩展名分别为dbc、dct、dcx的三个文件,这三个文件是供Visual FoxPro数据库管理系统管理数据库使用的、用户一般不能直接修改这些文件。因此正确答案为D。

[答案] D

2.下列创建数据库的方法中正确的是——。

A.在“项目管理器”中选定“数据”选项卡,选择“数据库”,单击“新建”按钮

B.在“新建”对话框上选择“数据库”,单击“新建文件”按钮

C.在命令窗口中输入CREATEDATABASE

D.以上方法都可以

[解析] 本题考查的知识点是创建数据库的方法。在Visual FoxPro 中,常用的建立数据库的方法有三种:①在“项目管理器”中选定“数据”选项卡,选择“数据库”,单击“新建”按钮。②在“新建”对话柜上选择“数据库”,单击“新建文件”按钮。③在命令窗口中输入CREATEDATABASE。选项A,B,C 的操作都正确, 因此正确答案为D。

[答案] D

3.在Visual FoxPro中,创建数据库的命令是CREATE DATABAS[数据库文件名|?],如果不指定数据库名称或不使用问号,产生的结果是____。

A.系统会自动指定默认的名称

B. 弹出“保存”对话框,提示用户输入数据库名称并保存

C.弹出“创建”对话框,请用户输入数据库名称

D.弹出提示对话框,提示用户不可以创建数据库

[解析] 本题考查的知识点是利用命令创建数据库。在Visual FoxPro中,创建数据库的命令是CREATE DATABASE[数据库文件名|?],如果不指定数据库名称或使用问号都会弹出“创建”对话框请用户输入数据库名称。选项A中系统不会自动指定名称。选项B中不会出现“保存”对话框;选项D中不会弹出对话框提示不可以创建数据库。

[答案] C

2. 数据库的打开

(1). 利用系统菜单

在系统菜单“文件”中选择“打开”命令(或单击常用工具栏上的“打开”按钮),在弹出的对话框中,指定预打开的数据库文件所在文件夹、类型及文件名,然后单击“确定”按钮。

(2). 利用命令

OPEN DATABASE (p84)

(3).修改编辑数据库

MODIFY DATABASE (p85)

3.删除数据库

(1).在“项目管理器”中删除

打开项目管理器,选择要删除的数据库,单击“移去”按钮,在出现的对话框中选择“移去”或“删除”按钮。

(2).按[Delete]键删除

打开数据库文件所在的文件夹,选定数据库,按[Delete]键。

(3).执行命令删除

DELETE DATABASE

/?[DELETETABLES][RECYCLE]

例 题

1.下列打开数据库文件的操作方法中,正确的是——。

A.单出“文件”菜单中的“打开”命令,在“打开”对话框的“文件类型”下拉列表中选择“数据库”,选择要打开的数据库,单击“确定”按钮

B.利用OPEN DATABASE 命令

C.在项目管理器中选择相对应的数据库时,数据库将自动打开

D.以上方法均正确

[解析] 本题考查的知识点是打开数据库的方法。在Visual FoxPro 中,常用的打开数据库的方法有三种:①单击“文件”菜单中的“打开”命令,在“打开”对话框的“文件类型”下拉列表中选择“数据库”,选择要打开的数据库,单击“确定”按钮。②利用OPEN DATABASE 命令。③在项目管理器中选择相应的数据库时,数据库将自动打开。选项A,B,C 都正确,因此正确答案为D

[答案] D

2. 在Visual FoxPro 中, 打开一个数据库文件的命令是——。

A.CREATE DATABASE

B.OPEN DATABASE

C.CREATE

D.OPEN

[解析] 本题考查的知识点是使用命令打开数据库。在Visual FoxPro中,打开数据库文件的命令是OPEN DATABASE,因此正确答案为B。选项A 中的CREATE 是创建数据库的命令。选项C 和D 的语法错误。

[答案] B

3.在Visual FoxPro中,打开数据库设计器的命令是____。

A.OPEN DATABASE

B.USE DATABASE

C. CREAT DATABASE

D.MODIFY DATABASE

[解析] 本题考查的知识点是打开数据库设计器的命令。在VisualFoxPro中,打开数据库设计器的命令是MODIFY DATABASE; OPEN DATABASE命令用于打开数据库; USE DATABASE命令是使用数据库中的表;CREAT DATABASE命令用于创建数据库。

[答案] D

4.在Visual FoxPro 中,打开数据库设计器的命令是——。

A.OPEN DATABASE

B.USE DATABASE

C. CREAT DATABASE

D.MODIFY DATABASE

[解析] 本题考查的知识点是打开数据库设计器的命令。在Visual FoxPro 中,打开数据库设计器的命令是MODIFY DATABASE; OPEN DATABASE命令用于打开数据库; USE DATABASE 命令是使用数据库中的表;CREAT DATABASE 命令用于创建数据库。

[答案] D

5.在Visual FoxPro中,删除数据库的命令是____。

A.QUIT DATABASE

B.CREATE DATABASE

C.DELETE DATABASE

D.CLEAR DATABASE

[解析] 本题考查的知识点是删除数据库的命令。执行选项A命今后,将会退出Visual FoxPro;选项B中的命令用于创建数据库;选项C中的命令用于删除数据库;选项D中的命令错误。

[答案] C

6.在Visual FoxPro 中,删除数据库的命令是——。

A.QUIT DATABASE

B.CREATE DATABASE

C.DELETE DATABASE

D.CLEAR DATABASE

[解析] 本题考查的知识点是删除数据库的命令。执行选项A 命今后,将会退出Visual FoxPro;选项B 中的命令用于创建数据库;选项C中的命令用于删除数据库;选项D 中的命令错误。

[答案] C

7.利用命令删除数据库文件时,指定RECYCLE 选项后,将会把数据库文件和表文件——。(p56)

A.放入回收站中,需要时可以还原

B.放入回收站中,且不可以还原

C.彻底删除

D.重命名

[解析] 本题考查的知识点是肋CYCLE 的功能。利用命令删除数据库文件时,指定RECYCLE 选项后,将会把数据库文件和表文件放入回收站中,需要时可以还原。回收站中的文件都可以还原,因此选项B 错误。选项C 和D 错误。

[答案] A

4.表结构的建立在数据库设计器中新建表的方法有两种:

(1).在数据库设计器的空白位置单击鼠标右键,选择快捷菜单中的“新建表” 命令,打开“新建表”对话框,选择“新建表”或“表向导”命令。

(2).单击“数据库”菜单中的“新建表”命令。

另外,单击“工具”菜单中的“向导”子菜单中的“表”命令,可以通过向导创建表。

(3).利用命令

CREATE

例如:OPEN DATABASE 学生管理

CREATE 学籍表

5.修改表结构

(1).在项目管理器中修改

在项目管理器中打开需要修改的表,单击“修改”按钮。

(2).在数据库设计器中修改

在数据库设计器中的表上单击鼠标右键,打开快捷菜单,选择“修改”命令。

(3).利用命令

MODIFY STRUCTURE

1.当数据库打开时,包含在数据库中的所有表都可以使用,但这些表不会自动打开, 使用时需要执行——命令。

A.CREATE

B.USE

C.0PEN

D.LIST

[解析] 本题考查的知识点是命令的使用。使用数据库中表的命令是USE.CREATE 命令用于创建文件;OPEN 命令用于打开文件;LIST命令用于显示表中的所有记录。

[答案] B

2.一个表由——个字段组成。

A.一个

B.两

个 C.三个

D.若干个

[解析] 本题考查的知识点是组成表的字段。在Visual FoxPro 中,一个表由若干列(即字段)组成。每个字段都有一个惟一的名字,称为字段名。

[答案] D

3.在Visual FoxPro 中,自由表字段名最长为——个字符。

A.10

B.16

C.128

D.若干个

[解析] 本题考查的知识点是数据库表字段名的长度。系统规定,Visual FoxPro 中自由表的字段名最长为l0 个字符,而数据库表的字段名最长为128 个字符。因此正确答案为C。

[答案] C

4.下列关于字段名的命名规则,不正确的是——。

A.字段名必须以字母或汉字开头

B.字段名可以由字母、汉字、下划线、数据组成

C.字段名中可以包含空格

D.字段可以是汉字或合法的西文标识符

[解析] 本题考查的知识点是字段名的命名规则。在Visual FoxPro 中,字段名的命令规则有以下几个:①字段名可以由字母、汉字、数字、下划线组成。②字段名可以是汉字或合法的西文标识符。③字段名必须以字母或汉字开头。④字段名中不能包含空格。本题选项A,B,D 都符合字段名命名规则,只有选项C 错误,因为字段名中不可以包含空格。

[答案] C

5.下列字段名中不合法的是——。

A. 姓名

B. 3 的倍数

C.abs 7

D.UN

[解析] 本题考查的知识点是字段名的命名规则。在Visual FoxPro 中,字段名的命名规则有以下几个:①字段名可以由字母、汉字、数字、下划线组成。②字段名可以是汉字或合法的西文标识符。③字段名必须以字音或汉字开头。④字段名中不能包含空格。本题选项A,C,D 都符合字段名命名规则,只有选项B 错误,因为字段名只可以字母或汉字开头,不可以数字开头。

[答案] B

6 . 下列字段名中合法的是———。

A. 编口号

B.1B

C. _产品号

D.地产_日期

[答案] D

7. 下列字段名中不合法的是—— 。

A.姓名

B.3 的倍数

C.abs 7

D.UN

[答案] B

8.Visual FoxPro 不支持的数据类型有——。

A.字符型

B.货币型

C.备注型

D.常量型

[解析] 本题考查的知识点是visual FoxPro 中的数据类型。VisualFoxPro 支持的数据类型有字符型、货币型、浮点型、数值型、 日期型、 日期时间型、双精度型、整型、逻辑型、备注型、通用型、字符型(二进制)、备注型(二进制)。选项A。B,C 都正确,选项D 中的常量型不属于Visual FoxPro 中的数据类型。

[答案] D

9.在Visual FoxPro 中,备注型数据类型在表中占用——个字节。

A.1

B.2

C.4

D.8

[解析] 本题考查的知识点是备注型常量在表中占用的字节数。系统规定,备注型数据类型在表中占用4 个字节,所保存的数据信息存储在以.dbt 为扩展名的文件中。

[答案] C

10.在Visual FoxPro 中,修改当前表的结构的命令是——。

A . MODIFY STRUCTIJRE

B . MODIFYDATABASE

C.OPEN STRUCTURE

D.OPENDATABASE

[解析] 本题考查的知识点是修改表结构的命令。在Visual FoxPro 中,修改表结构的命令是MODIFY STRUCTURE。MODIFYDATABASE命令的功能是修改数据库;OPEN STRUCTURE 语法错误;OPEN

DATABASE 命令的功能是打开数据库。

[答案] A

11.在Visual FoxPro 中,表分为——和——。

[解析] 本题考查的知识点是Visual FoxPro 中的表。在Visual FoxPro中,表分为两种:数据库表和自由表。

[答案]数据库表,自由表....

6.浏览表记录

(1).在项目管理器中浏览

在项目管理器中打开要浏览的表,单击“浏览”按钮。

(2).在数据库设计器中浏览

在数据库设计器中的表上单击鼠标右键,打开快捷菜单,选择“浏览”命令。

(3).使用命令

使用USE 命令打开要浏览的表,然后输入BROWER 命令按回车键。

7.增加表记录

(1).APPEND 命令

包括两种格式:APPEND 和APPEND BLANK。APPEND命令需要立刻输入新记录;APPEND BLANK 命令是在表的尾部增加一条空白记录。

(2).INSERT 命令

格式为:INSERT[BEFORE][BLANK]。不指定BEFORE则在当前记录之后插入一条新记录。不指定BLANK 则直接输入新记录。

例 题

1.在Visual FoxPro 中,要浏览表记录,首先用——命令打开要操作的表。

A.USE

B.OPEN STRUCTURE

C.MODIFY STRUCTURE

D.MODIFY

[解析] 本题考查的知识点是使用表的命令打开表。在visual FoxPro 中浏览,首先要用USE 命令打开要操作的表。选项B 中的命令语法错误;选项C 中的命令用未修改当前表的结构;输入选项D 中的命令会出现一个对话框,提示命令中缺少子句。

[答案] A

2.在Visual FoxPro 中,浏览表记录的命令是——。

A.USE

B.BROWSE

C.MODIFY

D.BROWES

[解析] 本题考查的知识点是浏览表记录的命令。在Visual FoxPro 中,浏览表记录的命令是BROWSE;选项A 中的USE 命令用来打开表,所以浏览表之前,首先用USE 命令打开要浏览的表,然后输入BROWSE命令按回车键;选项C 中的命令缺少子句,而且也不是浏览命令;选项D 中的命令书写错误。

[答案] B

3. Visual FoxPro 中APPEND BLANK 命令的作用是——。

A.在表的任意位置添加记录

B.在当前记录之前插入新记录

C.在表的尾部添加记录

D.在表的首部添加记录

[解析] 本题考查的知识点是APPEND BLANK 命令的功能。在VisualFoxPro 中,APPEND 命令的功能是在表的尾部添加记录。在表的任意位置插入新记录的命令是INSERT;在INSERT 命令中指定BEFORE时在当前记录之间插入新记录;指到第一个记录,在执行INSERT 命令时指定BEFORE 时可在表的首部添加记录。

[答案] C

8.删除表记录

表记录的删除也是表维护的一项经常性的工作,因为删除意味着数据的消失,所以对记录的删除操作比较慎重,删除可分为逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物理删除则不可恢复。

(1).逻辑删除

逻辑删除就是给指定的记录作删除标记“*”。

1)命令方式

【格式】DELETE [] [FOR ] [WHILE ]

【功能】对当前表中指定范围内满足条件的记录作删除标记“*”。

【说明】DELETE命令仅仅是在要删除的记录前加上一个删除标记“*”,并不是真正地从表文件中将该记录删除掉。可以用LIST或DISP命令显示带删除标记的记录。发现添加了删除标记的记录前面会显示竖黑条。恢复逻辑删除的记录的命令是RECALL。

【例】删除STUD.DBF中所有男同学的记录。

USE STUD

DELETE FOR 性别="男"

LIST FIELDS 学号,姓名,性别,班级名,系别代号,地址,出生日

期,是否团员

(2)菜单方式

利用菜单方式逻辑删除记录的具体操作步骤如下:

① 首先打开表文件

② 选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。主菜单上增加【表】菜单项。

③ 选择【表】|【删除记录】命令,会弹出 “删除”对话框。

④ 单击删除对话框中的For…按钮或While…按钮,系统弹出表达式生成器,用户可以在表达式框中输入一个逻辑表达式,如性别=”男”,单击【确定】按钮完成条件表达式的输入。

⑤ 在“作用范围”下拉列表框中选择范围,如ALL。

⑥ 单击“删除”对话框中的“删除”按钮,系统将完成对指定范例内满足指定条件的记录的逻辑删除。

(2).物理删除

是真正从表中删除记录,方法是:单击“表”菜单中的“彻底删除”命令。物理删除带删除标记的记录命令是PACK。物理删除表中全部记录的命令是ZAP。

【例】将STUD.DBF中的学号为“021405”的记录进行物理删除。

USE STUD

DELETE FOR 学号=”021405”

PACK

例 题

1.在Visual FoxPro 中删除记录有——和———两种。

A.逻辑删除和物理删除

B.逻辑删除和彻底删除

C.物理删除和彻底删除

D.物理删除和移去删除

[解析] 本题考查的知识点是Visual FoxPro 中的删除方式。在VisualFoxPro 中删除记录有逻辑删除和物理学删除两种。选项B,C,D 中的彻底删除和移去删除的说法都不正确。因此正确答案为A

[答案] A

2.Visual FoxPro 中逻辑删除是指——。

A.真正从磁盘上删除表及记录

B.逻辑删除是在记录旁作删除标记,不可以恢复记录

C.真正从表中删除记录

D.逻辑删除只是在记录旁作删除标记,必要时可以恢复记录

[解析] 本题考查的知识点是Visual FoxPro 中的删除方式。Visual FoxPro 中删除记录的方式有逻辑删除和物理删除两种,逻辑删除是指在记录旁作添加删除标记,必要时可以去掉删除标记恢复

记录;物理删除是真正从表中删除记录,删除的记录不可以再恢复,物理删除但并不删除表。根据这一原则,只有选项D 正确。

[答案] D

3.在Visual FoxPro 中, 恢复逻辑删除的记录的命令是—— 。

A.RECOVER

B.RECALL

C.DELETE

D.PACK

[解析] 本题考查的知识点是恢复删除记录的命令。在Visual FoxPro中,恢复逻辑删除的记录的命令是RECALL; RECOVER 命令错误;DELETE 命令用于逻辑删除记录;PACK 命令用来物理删除结果。

[答案] B

4 . 物理删除表中所有记录的命令是—— 。

A.DELETE

B.PACK

C.ZAP

D.RECALL

[解析] 本题考查的知识点是物理删除表中所有记录的命令。DELETE命令用于逻辑删除结果或者删除标记;PACK 命令用于物理删除有删除标记的记录;ZAP 命令用于物理删除表中的全部记录。

[答案] C

5.在Visual FoxPro 中,逻辑删除表中性别为女的命令是——。

A.DELETE FOR 性别=“女”

B.DELETE 性别=“女” C.PACK 性别=“女”

D.ZAP 性别=“女”

[解析] 本题考查的知识点是利用命令逻辑删除指定的内容。在Visual FoxPro 中,逻辑删除表中记录的命令是DELETE,如果用FOR短语指定了逻辑表达式,则逻辑删除使该表达式为真的所有记录;如果不用FOR 短语指定逻辑条件,则只逻辑删除当前一条记录。

[答案] A

6.要物理删除表中第2-6条的记录,应输入的命令是____。

[解析]本题考查的知识点是用命令物理删除表中的记录。在VisualFoxPro中,物理删除表中记录的命令是PACK和ZAP。PACK命令是物理删除表中带有删除标记的记录;ZAP命令是物理删除表中所有记录。

在物理删除表记录之前,要先使用DELETE命令为记录添加删除标记。

本题应输入的命令是:

GO 2 &&定位到当前记录

DELETE NEXT 5 &&为指定的位置添加删除标记

PACK &&物理删除指定记录

[答案] G0 2 DELETE NEXT 5 PACK

9.显示记录

【格式】LIST | DISPLAY [FIELDS ][] [FOR] [WHILE ]

【功能】将当前表文件的记录按照指定的选项进行显示。

【说明】DISPLAY命令与LIST命令的功能相似,当表文件的数据记录较多时,用DISPLAY命令较为方便。

还有一点不同之处就是,如果同时缺省和 子句,DISPLAY命令只显示当前的一条记录,而LIST命令则是取默认值ALL而显示全部记录。

FIELDS :用来指定显示的字段。

:用来指定显示哪些记录。

“范围”有以下四种表示方法:

ALL:所有记录。

NEXT N:从当前记录开始,后面的N条记录(包括当前记录)

RECORD N:第N条记录。

REST:当前记录后的全部记录(包括当前记录)。

FOR:指定对表文件中指定范围内满足条件的记录进行操作。

WHILE:也是指定对表文件中指定范围内满足条件的记录进行操作,但是,当第一次遇到不满足条件的记录时,停止继续往后搜索。

WHILE若与FOR同时使用,则WHILE项优先;若两者都不选用,则显示中指定的全部记录。

OFF:表示不显示记录号;若不选此项,则在各记录前显示记录号。

【例】显示表STUD.DBF的全部记录。

USE STUD

LIST

10. 修改表记录

(1).EDIT和CHANGE命令用于交互式地修改、编辑表记录。

【格式】EDIT / CHANGE [FIELDS ] [] [FOR ] [WHILE ]

(2). REPLACE命令用指定表达式的值替换当前表中满足条件记录的指定字段的值。

【格式】REPLACE WITH [, WITH ] ... [][FOR ] [WHILE ]

【例】修改职工.DBF中的“工资”字段数据,每个职工工资均涨10%。

USE 职工

REPLACE 工资 WITH 工资*1.1 ALL

例 题

1.在Visual FoxPro 中,显示记录的命令是——和——。它们的区别在于不使用条件时,——默认显示记录,而——则默认显示当前记录。

[解析]本题考查的知识点是Visual FoxPro 中显示记录的命令的使用。在Visual FoxPro 中,显示记录的命令是ST 和DISPLAY 它们的区别在于LIST 默认显示全部记录,而DISPLAY 则默认显示当前记录。

[答案]LIST, DISPLAY, LIST, DISPLAY

2.要为当前表所有职工增加2年工龄,应使用的命令___。

A. CHANGE 工龄 WITH 工龄+2

B. REPLACE 工龄 WITH 工龄+2

C. CHANGE ALL 工龄 WITH 工龄+2

D. REPLACE ALL 工龄 WITH 工龄+2

[解析]本题考查的知识点是Visual FoxPro中修改记录的命令的使用。在VisualFoxPro中,修改记录的命令是 REPLACE。CHANGE命令和EDIT命令等同,均为打开当前表的编辑界面,BROWSE命令打开当前表的浏览界面。REPLACE命令才是修改当前表记录的命令,操作范围ALL不能省略。

[答案] D

3.在Visual FoxPro 中,数据库表与自由表不问,下列不属于数据表特点的是——。

A.数据库表的字段没有默认的控件类

B.数据库表可以使用长表名,在表中可以使用长字段名

C.可以为数据库表的字段指定默认值和输入掩码

D.数据库表支持主关键字、参照完整性和表之间的联系

[解析] 本题考查的知识点是数据库表不同于自由表的特点。数据库表与自由表相比,具有如下特点:①可以为数据库表的字段指定默认值和输入掩码。②数据库表可以使用长表名,在表中可以使用长字段名。③数据库表的字段有默认的控件类。④数据库表支持主关键字、参照完整性和表之间的联系。⑤可以为数据库表中的字段指定标题和添加注释。⑥可以为数据库表规定字段级规则和记录级规则。⑦支持INSERT,DELETE, UPDATE 事件的触发器。由此可知选项A 不是数据库表的特点,因为数据库表的字段有默认的控件类。

[答案] A

4.将表从数据库中移出,使之成为自由表的命令是——。

A.REMOVE

B.DROP TABLE

C.RECYCLE

D.REMOVE TABLE

[解析] 本题考查的知识点是利用命令删除数据库中的表。选项A 语法错误;选项B 是下面要学到的SQL 语句,它不仅会将表从数据库中删除,还会从磁盘上删除,本题只要求将表从数据库中移出,使之成为自由表,因此选项B 错误;选项C 语法错误。因此正确答案为 D。

[答案] D

11.查询定位

记录号用于标识数据记录在表文件中的物理顺序。记录指针是一个指示器,它始终指向当前表中正在操作处理的那条记录,此记录被称为当前记录。如果要对某条记录进行处理,必须移动记录指针,

使其指向该记录。在任意时刻指针只能指向唯一的一条记录。记录指针定位有绝对定位、相对定位和查询定位三种。在这里暂时只讲前二种,查询定位在讲到查询时再详细介绍。

(1). 绝对定位

【格式】[GO | GOTO] [IN | IN ]

【功能】将记录指针绝对定位到指定的记录上。:记录的物理记录号。IN | IN :指定操作表所在的工作区;若缺省,则对当前工作区表操作。工作区的概念在后面再详细介绍。

绝对定位与是否打开索引文件没有关系。

(2).相对定位【格式1】SKIP [] [IN | ]

【功能】记录指针从当前记录向前(或向后)移动若干个记录。

【说明】

:表示移动的记录个数。若数值表达式的值为负值,表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向后移动1 个记录。 如果记录指针已经移过文件的最后一个记 录,则RECNO() 函数返回的值等于文件中的记录总数加 1,EOF()函数返回逻辑真( .T. ) 值。【格式2 】GO|GOTO

【功能】将记录指针移动到表文件的首记录或尾记录 TOP:将记录指针移动到表文件的首记录。 BOTTOM:将记录指针动到表文件的最后一条记录。相对定位与是否打开索引文件有关。如果打开有索引,记录指针按索引文件中顺序移动。否则按表文件中物理顺序移动。

【例1】绝对定位命令的用法。

USE STUD

GOTO 2

GO 3

【例2】相对定位的用法。 USE STUD

SKIP 4 && 系统主窗口显示为5

SKIP -3 && 系统主窗口显示为2

SKIP 8 && 超出了记录总数6

go top && 系统主窗口显示为1

(3).用LOCATE 命令定位

【格式1】LOCATE FOR

【功能】该命令执行后将指针定位在满足条件的第一条记录上,如果没有满足条件的记录则指针指向文件结束位置。

【说明】CONTINUE 命令:LOCATE 找到第一条满足条件的记录后,可以用 CONTINUE 继续查找下一个满足条件的记录。 CONTINUE命令必须在LOCATE 命令之后使用,否则出错。在CONTINUE 命令中实际隐含了前一个LOCATE 命令中的条件。

【例】在STUD.DBF 中查找学号前四位为0111 的同学记录。

USE STUD

LOCATE FOR 学号="0111"

1.定位记录时,可以用——命令向前或向后移动若干条记录位置。

A.SKIP

B.GOTO

C.GO

D.LOCATE

[解析] 本题考查的知识点是定位记录的命令。SKIP 命令的功能是确定了当前记录位置后,向前或向后移动若干条记录位置。GO 和GOTO 命令等价,用于直接定位。LOCATE 命令是按指定条件定位记录位置。

[答案] A2.在当前表中查找班级为1 的记录,应输入命令——。

A.LOCATE FOR 班级=“l”

B.LOCATE FOR 班级=“1”CONTINUE

C.LOCATE FOR 班级= “1” NEXT l

D.UST FOR 班级=“1”

[解析] 本题考查的知识点是定位命令的使用。

LOCATE 命令的功能是按指定条件定位记录位置。该命令执行后将记录指针定位在满足条件的第一条记录上,如果没有满足条件的记录指针将指向文件结束位置。如果要使指针指向下一条满足LOCATE 条件的记录,则使用CONTINUE 命令,如果没有记录要满足条件,则指针指向文件结束位置。由于表中可能含有多个班级为1 的记录,因此需要指定CONTINUE 命令, 因此选项A 错误;选项C 和D 的格式错误。

[答案] B

3.已知当前表中有15 条记录,当前记录为第12 条记录,执行SKIP -2 命令后,当前记录变为第____条记录。

A.2

B.10

C.12

D.15

[解析] 本题考查的知识点是SKIP 命令的使用。SKIP 命令的作用是确定当前位置后,向前或向后移动若干条记录。格式是SKIP[数字],“数字”可以是正整数或负整数,如果是正数,则向后移动;如果是负数,向前移动。本题中共有15 条记录,当前位于第12 条记录。SKIP -2 命令中,整数为负2,所以向前移动2 条记录,即第10 条记录。

[答案] B

4.假设目前已打开表及索引文件,要确保记录指针定位在记录号为1的记录上, 应使用—— 命令。

A.GO TOP

B.GO l

C.LOCATE l

D.SKIP l

[解析]

本题考查的知识点是查询定位命令的使用。在visual FoxPro 中,查询定位的命令有:GOTO/GO,SKIP,LOCATE。GOT0 和GO 命令等价,用未直接定位。TOP 是表头,当不使用索引时定位到记录号为1 的记录,使用索引时是索引项排在最前面的索引对应的记录。LOCSTE 命令是按条件定位记录位置。SKIP 命令的作用是从当前记录开始向前或向后移动记录指针。本题因为使用了索引,所以选项A 错误;选项B 中的GOl 可以直接定位在记录号为1 的记录上;选项C 和D 中需要一定的条件才能确保记录定位在记录音为1 的记录上。因此正确答案为B。

[答案]B

5.打开数据库文件后,当前记录指针指向100,要使指针指向记录号为20 的记录, 应使用命令—— 。

A.LOCATE 20

B.SKIP -80

C.GO 20

D.SKIP 80

[解析] 本题考查的知识点是利用命令定位记录选项A 中的LOCATE 命令使用的格式不正确;打开了索引文件后,SKIP 命令使记录。指针按索引逻辑顺序移动,执行SMP—80 命令之后,记录音不一定是20,GO 命令按指定的物理记录号定位,但若用TOP 或BONOM 短语,则按索引的逻辑顺序定位。

[答案] C

12. 设置字段级规则打开表设计器,在“字段有效性”框的“规则”中设置。

[例题] 在表设计器的——选项卡中,可以设置记录验证规则,有效性出错信息,还可以指定记录插入更新及删除的规则。

[解析] 本题考查的知识点是表设计器的应用。表设计器中有三个选项卡,在“字段”选项卡中可以设置字段名、类型、宽度、显示格式等属性。

“索引”选项卡用来设置有关索引的属性:“表”选项卡用来设置表名,查看表文件的属性,记录有效性规则,指定记录插入、更新及删除的规则。题目中的属性设置都是在“表”选项卡中进行。

[答案] 表

13. 表的索引

(1).索引及索引文件的概述

索引是以索引文件的形式存在的,它根据指定的索引关键字表达式建立的。索引文件可以看成索引关键字的值与记录号之间的对照表,关键字可以是一个字段,也可以是几个字段的组合。在建立索引文件时,把表所有记录的索引关键字表达式的值按指定顺序排序,并把每个索引关键字表达式值与该值在表中所对应的记录对应起来,保存在索引文件中。

索引文件必须与原表一起使用,查询时根据索引关键字表达式的值先在索引文件中找到某字段所在的记录号,然后再到表里直接定位。这样的查找方式使顺序查找和随机查找都有较高的效率。打开索引文件时,将改变表中记录的逻辑顺序,但并不改变表中记录的物理顺序。

一个表文件可建立多个索引文件,也可同时打开多个索引文件,但在同一时间内只有一个索引起作用,这个索引称为主控索引。

Visual FoxPro系统中支持两种不同的索引文件类型,即单索引文件和复合索引文件。

单索引文件是根据一个索引关键字建立的索引文件,文件扩展名为.IDX,它可用INDEX命令的各种形式建立。单索引文件分为标准和压缩两种类型。

复合索引文件是指索引文件中可以包含多个索引标识的扩展名为.CDX。每个索引标识与单索引文件类似,也可以根据一个索引关键字表达式(或关健字)建立。每一个索引标识均有一个特殊的标识名(TAG)。标识名由字母或下划线开头,由字母、数字或下划线组成,长度不超过10个字符。用户可以利用标识名来使用标识,向复合索引文件中追加标识。复合文件中标识的数目,仅受内存和磁盘空间的限制。

复合索引文件又有两种:一种是独立复合索引文件;另一种是结构复合索引文件。结构复合索引文件是由Visual FoxPro自动命名的,与相应的表文件同名,扩展名为.CDX。当Visual FoxPro打开一个表时,便自动查找一个结构复合索引文件,如果找到便自动打开,该索引文件随表文件同时打开和同时关闭。

独立复合索引文件不与表文件同名,扩展名为.CDX。在打开表时不会自动打开此索引文件,由命令指定打开。

索引可分为下列四种类型:

1)主索引

主索引是一个永远不允许在指定字段和表达式中出现重复值的索引。它也是在数据库表的永久关联中创建参照完整性时主表和被引用表使用的索引。每一个表只能建立一个主索引,只有数据库表才能建立主索引。

2)侯选索引

侯选索引也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自由表都可以建立侯选索引,一个表可以建立多个侯选索引。

主索引和侯选索引都存储在.CDX结构复合索引文件中,不能存储在于独立复合索引文件和单索引文件中,因为主索引和侯选索引都必须与表文件同时打开和同时关闭。

3)唯一索引

系统只在索引文件中保留第一次出现的索引关键字值。数据库表和自由表都可以建立唯一索引

4)普通索引

是一个最简单的索引,允许关键字值的重复出现,适合用来进行表中记录的排序和查询,也适合于一对多永久关联中“多”的一边(子表)的索引。数据库表和自由表都可以建立普通索引。普通索引和唯一索引可以存储在.CDX独立复合索引文件和.IDX单索引文件中。

(2).索引文件的建立

1)命令方式

【格式】INDEX ON TO | TAG [OF ]

[FOR ] [COMPACT]

[ASCENDING | DESCENDING][UNIQUE] [ADDITIVE]

(p99)

【功能】对当前表文件按指定的关键字建立索引文件。

【说明】:指定建立索引文件的关键字表达式,可以是单一字段名,也可以是多个字段组成的字符型表达式,表达式中各字段的类型只能是数值型、字符型和日期型和逻辑型。当表达式是单个字段名时,字段类型不用转换;应转换成同一类型的表达式。

TAG :此选项只对建立复合索引文件时有效,指定建立或追加索引标识的标识名。

OF :指定独立复合索引文件名。若有此选项,表示在指定的独立复合索引文件中追加一个索引标识,若指定的独立复合索引文件不存在,系统将自动建立指定的文件。若没有此选项,表示在结构复合文件中追加一个索引标识,若结构复合索引文件不存在,系统将自动建立结构复合索引文件。

FOR :表示只对满足条件的记录建立索引。

COMPACT:此选项只对单索引文件有效,表示建立压缩索引文件。

ASCENDING|DESCENDING: ASCENDING 表示按升序建立索引,DESCENDING 表示按降序建立索引。缺省时,按按升序建立索引。单索引文件不能选用DESCENDING 选项。UNIQUE:表示建立的是唯一索引。

ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。

新建的索引文件自动打开,并开始起作用。

【例1】对STUD.DBF 表文件建立出生日期单索引文件STUD.IDX。

USE STUD

INDEX ON 出生日期 TO STUD

【例2】对表文件STUD.DBF,建立一个基于出生日期字段的结构复合索引文件。

USE STUD

INDEX ON 出生日期 TAG 出生日期 DESCENDING

【例3】在表文件STUD.DBF的结构复合索引文件中,按学号 追加一个标识。

USE STUD

INDEX ON 学号 TAG 学号

【例4】在表文件STUD.DBF的结构复合索引文件中,先按性别再按学号追加一个标识XBXH。

USE STUD

INDEX ON 性别+学号 TAG XBXH

【例5】在表文件STUD.DBF中,先按性别再按是否团员建立一个独立复合索引文

件SXBTY.CDX。

USE STUD

INDEX ON 性别+IIF(是否团员,’团员’,’非团员’) TAG 性别团员 OF SXBTY

2)菜单方式

① 打开表文件。

② 选择【显示】|【表设计器】命令,打开表设计器对话框,选择“索引”标签。

③ 在索引名中输入索引标识名,在类型的下拉列表框中确定一种索引类型,在表达式中输入索引关键字表达式,在筛选中输入确定参加索引的记录条件,在排序序列下默认的是升序按钮,单击可改变为降序按钮。

④ 确定好各项后,选择“确定”,关闭表设计器,同时索引建立完成。

⑤ 同样的方法也可以将以前建立的索引调出,利用表设计器上的“插入”或“删除”按钮进行插入或删除。

注意:用表设计器建立的索引都是结构复合索引文件。

(3).索引文件的打开

【格式1】USE [INDEX ][ORDER | | [TAG] [OF ][ASCENDING | DESCENDING]]

【功能】打开指定的表文件及相关的索引文件

【说明】:

INDEX | ?:表示打开的索引文件;如果选择“?”,则系统将出现“打开”对话框,供用户选择索引文件名;如果中的第一个索引文件是单索引文件,则它是主索引文件,若第一个索引文件是复合索引文件,则表文件的记录将以物理顺序被访问。

:指定要打开的索引文件,索引文件中的文件扩展名可以省略,但如果存在同名的单索引文件和复合索引文件,必须带扩展名。

中的单索引文件和复合索引文件的标识有一个唯一的编号,编号最小值为1,编号规则为:先将单索引文件按它们在中的顺序编号,再将结构复合索引文件按标识产生的顺序连续编号,最后将独立复合索引文件中的标识先按它在中的顺序,再按标识产生的顺序连续编号。

[ORDER]子句:指定主索引。选择此选项时,主索引文件将不是中的第一个单索引文件,而是此选项指定的单索引文件或标识。[ORDER]子句中各选项的含义如下:

..指定主索引的编号,若的值为0,表示不设主索引。

..指定的单索引文件设置为主索引。

.. [TAG] [OF ]:表示将中的指定标识作为主索引。[OF ]缺省表示为结构复合索引文件。

ASCENDING | DESCENDING:表示主索引被强制以升序或降序索引;缺省此选项,主索引按原有顺序打开。

【格式2】SET INDEX TO [ ] [ORDER | | [TAG] [OF ] [ASCENDING | DESCENDING]][ADDITIVE]

【功能】在已打开表文件的前提下, 打开相关索引文件。

【说明】ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。

(4).索引文件的关闭

【格式1】USE

【功能】关闭当前工作区中打开的表文件及所有索引文件。

【格式2】SET INDEX TO

【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。

【格式3】CLOSE INDEXS

【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。

注意:结构复合索引文件不能用以上命令关闭,它随表文件的打开而打开,随表文件的关闭而关闭。

(5).索引的删除

1)标识的删除

【格式】DELETE TAG [OF ][,

[OF ]] ...

或:DELETE TAG ALL [OF ]

【功能】从指定的复合文件中删除标识

【说明】OF :指定复合索引文件名,若缺省,则为结构复合索引文件。

2)单索引文件的删除

【格式】DELETE FILE

【功能】删除指定的单索引文件

【说明】关闭的索引文件才能被删除,文件名必须带扩展名。

【例】删除表文件STUD.DBF 的单索引文件STUD.IDX 及结构复合

索引文件中的所有标识。 DELETE FILE STUD.IDX

USE STUD

DELETE TAG AL

(6). 索引查询(FIND、SEEK)

1).菜单方式

① 首先打开表文件

② 选择【显示】|【浏览】命令。

③ 选择【表】|【转到记录】|【定位】命令,打开定位记录对话框。

④ 在“作用范围”下拉列表框中选择查询范围,在FOR或WHILE框中输入查询条件,选择定位按钮。系统将指针定位于符合条件的第一条记录上。

2). 索引查询(FIND、SEEK)

LOCATE命令用于按条件进行顺序定位,无论索引文件是否打开都可使用。在打开索引文件后,还可以用FIND、SEEK命令进行快速检索。

a.FIND命令

【格式】FIND /

【功能】在表文件的主控索引中查找关键字值与或相匹配的第一个记录。

【说明】必须打开相应的库文件、主索引文件。

查询字符串,字符串可以不用定界符括起来,但前后有空格的,则必须要括进来。

查询常数,必须使用索引关键字的完整值。允许查询字符型内存变量,但必须使用宏替换函数。由于索引文件中关键字表达式值相同的记录总是排在一起的,可用SKIP、DISP 命令来逐个查询。

查询完满足条件的记录后,不能自然给出提示,常借助于EOF()函数来判断查询是否完成。

多关键字查询,建立索引时STR 函数若没有指定小数位,则应补齐不足10 位的空格。

如果用SET EXACT ON 命令,则匹配必须是精确的。即FIND 命令中的查询内容必须与记录的关键字段值完全相等。如果用SET EXACT OFF 命令,则匹配可以是不精确的,即只要FIND 命令中的查

询内容与记录的关键字段值的左侧相等即可。

【例】打开表文件

STUD.DBF,查找姓“赵”的记录。 USE STUD

SET ORDER TO 姓名 FIND 赵

b.SEEK 命令

【格式】SEEK

【功能】在表文件的主索引中查找关键字值与值相匹配的第一个记录。

【说明】SEEK 命令可以查找字符型、数值型、日期型、逻辑型表达式的值。

SEEK 命令中的表达式的类型必须与索引表达式的类型相同。

可以查找字符、数值、日期和逻辑型字段的值。

内存变量可以直接进行查询,不用进行宏替换。

表达式为字符串时,必须用定界符括起来。日期常量也必须用大括号括起来。

表达式可以为一复杂的表达式,计算机先计算表达式的值,然后用其值进行查询。

由于索引文件中关键字表达式值相同的记录总是排在一起的,可用SKIP、DISP 命令来逐个查询。

如果用SET EXACT ON 命令,则匹配必须是精确的。

【例】用SEEK 命令在STUD.DBF 中查找记录。

USE STUD

INDEX ON 是否团员 TAG 是否团员 SET ORDER TO 姓名

SEEK "孙"

例 题

1.visual FoxPro 中的索引有———。

A.主索引、候选索引、普通索引、视图索引

B.主索引、次索引、惟一索引、普通索引

C.主索引、次索引、候选索引、普通索引

D.主索引、候选索引、惟一索引、普通索引

[解析] 本题考查的知识点是visual FoxPro 中的索引。Visual FoxPro 中包括4 种索引,分别为主索引、候选索引、惟一索引、普通索引。选项A 中的视图索引错误;选项B、C 中的次索引错误。

[答案] D

2. 在Visual FoxPro 中, 一个表可以创建____ 个主索引。

A.1

B.2

C.3

D.若干

[解析] 本题考查知识点是Visual FoxPro 中的主索引。在Visual FoxPro中,建立主索引的字段可以看作是主关键字,一个表只能有一个主关键字,所以一个表可以创建一个主索引。因此正确答案为A。

[答案] A

3.主索引可确保字段中输入值的_____性。

A.惟一

B.重复

C.多样

D.兼容

[解析] 本题考查的知识点是主索引的特性。主索引在指定字段或表达式中不允许出现重复值的索引,这种索引可以起到主关键字的作用,所谓不允许出现重复值是指建立索引的字段值不允许重复,即惟一的特性。

[答案] A

4.惟一索引中的“惟一性”是指———的惟一。

A.字段值

B.字符值

C.索引项

D.视

图项

[解析] 本题考查的知识点是惟一索引的特性。在Visual FoxPro 中,惟一索引是为了保持同早期版本的兼容性,它的“惟一性”是指索引项的惟一,而不是字段值的惟一。选项A 中字段值惟一是指主索引中字段值惟一。选项B 和D 说法错误。

[答案] C

5.在Visual FoxPro 中的4 个索引中,一个表可以建立多个_____。

A.主索引、候选索引、惟一索引、普通索引

B.候选索引、惟一索引、普通索引

C.主索引、候选索引、惟一索引

D.主索引、惟一索引、普通索引

[解析] 本题考查的知识点是visual FoxPro中的索引。在Visual FoxPro 中,由于主索引中不允许出现重复值,一个表只能有一个主关键字,因此一个表只可以建立一个主索引。建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。惟一索引中的惟一是指索引项的惟一,不是指字段值的惟一,因此一个表中可以建立多个索引。普通索引可以决定记录的处理顺序,它不仅允许字段中出现重复值,并且索引项也允许出现重复值,因此一个表中可以建立多个普通索引。本题选项A 中的“主索引”错误;选项C 中多了主索引,缺少普通索引;选项D 中多了主索引,缺少候选索引。

[答案] B

6.下列更改索引类型的操作方法正确的是——。

A.打开表设计器,选定“字段”选项卡,从“索引”下拉列表中选择

B.打开表设计器,选定“索引”选项卡,在“索引名”下拉列表中选择

C.打开表设计器,选定“表”选项卡,在“索引名”下拉列表中选择

D.打开表设计器,选定“索弓[”选项卡,在“类型”下拉列表中选择

[解析] 本题考查的知识点是更改索引类型的操作。正确的操作方法是打开表设计器,选定“索引”选项卡,在“类型”下拉列表中选择。选项A中“字段”选项卡下的索引用未设置索引的排序方式;选项B 中的“索引名”不能用来定义索引的类型。它只是索引的名称;选项C 中“表”选项卡下没有“索引名”项。因此正确答案为D

[答案] D

7.在Visual FoxPro 中,结构复合压缩索引文件的特点是——。

A.在打开表时自动打开

B.在同一索引文件中能包含多个索引方案,或索引关键字

C.在添加、更改或删除记录时自动维护索引

D.以上答案均正确

[解析] 本题考查的知识点是结构复合压缩索引文件的特点。在VisualFoxPro 中,结构复合压缩索引文件的特点是:在打开表时自动打开;在同一索引文件中能包含多个索引方案,或索引关键字;在添加、更改或删除记录时自动维护索引。因此正确答案为D。

[答案] D

8. 在Visual FoxPro 中,SKIP 命令是按___定位,即如果使用索引时,是按___的顺序定位。

[解析] 本题考查的知识点是SKIP 命令的使用。在VisualFoxPro 中。SKIP 命令是按逻辑顺序定位,即如果使用索引时,是按索引项的顺序定位的。

[答案] 逻辑顺序,索引项

9. 在Visual FoxPro 中,创建索引的命令是——。

[解析] 本题考查的知识点是创建索引的命令。在VisualFoxPro 中,创建索引的命令是INDEX。

[答案] INDEX10. 在Visual 标FoxPro 中,用命令 可以创建——索引,但不可以创建——索引。

[解析] 本题考查的知识点是利用命令创建索引。在VisualFoxPro 中,利用命令可以创建普通索引、惟一索引(UNIQUE)和候选索引(CANDIDATE)。这是因为表设计器中指定一个主索引实际就是指定了一个主关键字

[答案] 普通索引、惟一索引、候选索引,主索引

11. 在Visual FoxPro中,惟一索引中的“惟一”是指——。

[解析] 本题考查的知识点是惟一索引中的 “唯一”的含义。在VisualFoxPro 中,惟一索引与字段值的惟一性无关、即建立了惟一索引的字段,它的字段值可以重复, “惟一”是指在使用相应的索引时,重复的索引字段值只有 唯一一个值出现在索引项中。

[答案] 在使用相应的索引时,重复的索引字段值只有惟一一个值出现在索引项中

12. Visual FoxPro 索引是——

[解析] 本题考查的知识点是索引的概念。在Visual FoxPro 中,索引是由指针构成的文件,这些指针逻辑上按索引关键字值进行排序。

[答案] 由指针构成的文件,这些指针逻辑上按索引关键字值进行排序。

13.在Visual FoxPro 中,打开索引文件的命令格式是——。

[解析] 本题考查的知识点是打开索引文件的命令格式。在VisualFoxPro 中,打开索引文件的命令格式是:SET INDEX T0。其中IndexFileList 是用逗号隔开的索引文件列表。

[答案] SET INDEX T0

14. 候选关键字是指——。

[解析] 本题考查的知识点是候选关键字的概念。在Visual FoxPro 中,如果一个字段的值或几个字段的位能够惟一标识表中的一条记录,则这样的字段称为候选索引。

[答案] 如果一个字段的值或几个字段的值能够惟一标识表中的一条记录,则这样的字段称为候选索引。15.在Visual FoxPro 中,复合索引文件包括——和——。

[解析] 本题考查的知识点是复合索引文件。在Visual FoxPro 中,复合索引文件包括结构复合索引文件和非结构复合索引文件。

[答案] 结构复合索引文件和非结构复合索引文件

16.结构复合索引文件的主名与——相同,它随——的打开而打开,在删除记录时会自动维护。

[解析] 本题考查的知识点是结构复合索引文件。结构复合索引文件是复合索引文件一种。结构复合索引文件的主名与表的主名相同,它随表的打开而打开、在删除记录时会自动维护。[答案] 表的主名,表17.非结构复合索引文件在——时用户为义取了名字,打开非结构复合索引文件要使用———或———,因而使用很少。

[解析] 本题考查的知识点是非结构复合索引文件。非结构复合索引文件在定义复合索引文件时用户为其取了名字,打开非结构复合索引文件要使用SETINDEX 命令或USE 命令中的INDEX 短语, 因而使用很少。

[答案] 定义复合索引文件,SETINDEX 命令,USE 命令中的INDEX短语

18.单击表单设计器中的“索引”选项卡上的——按钮,可以在当前行插入一个空行,以定义新的索引。

[解析]本题考查的知识点是利用选项卡上按钮定义新索引。在表单设计器的索引选项卡上共有4 个按钮:确定、取消、插入、删除。 “确定”按钮用来确认所做的操作;“取消”按钮用来取消所做的操作;“插入”按钮用来添加新索引;“删除”按钮用来删除索引。根据题意,此题答案为“插入”。

[答案] 插入

15. 多表的操作

迄今所讲述的对表的操作都是在一个工作区进行的,每个工作区最多只能打开一个表文件,用USE命令打开一个新的表,同时也就关闭了前面已打开的表。在实际应用中,用户常常需要同时打开多个表文

件,以便对多个表文件的数据进行操作。为了解决这一问题,VisualFoxPro引入了工作区的概念。Visual FoxPro允许用户在表间建立临时关系和永久关系。

16. 工作区与多个表

(1).工作区和当前工作区

Visual FoxPro 能同时提供32767个工作区。系统默认值为1区。在任意时刻,只有一个工作区是当前工作区,用户只能在当前工作区对打开的当前库进行操作。

每一个工作区都可以并且只能打开一个数据库文件。

同一个数据库文件不允许同时在多个工作区打开,但在其它工作区中被关闭之后,可以在任意一个工作区中被打开。

各工作区中打开的数据库彼此相互独立(指针不受影响)。

(2).选择当前工作区

每一个工作区用工作区号或别名来标识

1)工作区号

利用数字1~32767来标识32767个不同的工作区

2)别名

前10工作区用A~J10个字母来标识。

采用该工作区中已打开的数据库的库名来作别名

用户自己定义

【命令格式】 :USE 〈数据库名〉[ALIAS〈别名〉]

【功能】 :打开数据库文件并为该数据库起一个别名。

【说明】给数据库起了别名后,数据库名就不是默认的别名了。

3)工作区的选择

当系统启动时,1号工作区是当前工作区,若想改变当前工作区,则可使用SELECT命令来转换当前工作区。

【命令格式】:SELECT/

【功能】:选择一个工作区作为当前工作区。

【说明】:

.... | :指定当前工作区。选择工作区时,可以直接指定区号,也可以通过别名指定工作区,二者是等效的。

.... 别名可以是系统规定的别名,也可以是用户规定的别名,甚至可以用已打开的表名替代工作区别名。此命令允许选用“0”号工作区。如果指定“0”,则表示选用当前未使用过的编号最小的工作区作为当前工作区。

.... 执行该命令后,对任何工作区中的表及记录指针均不发生影响,仅实现各个工作区之间切换。

【例1】在1号和2号工作区内分别打开ST.DBF和SE.DBF表文件,并选择1号工作区为当前工作区。

SELECT 1 && 或 SELECT A

USE ST

SELECT 2

USE SE

SELECT 1

【例2】在1 号和2 号工作区打开STUD.DBF 和SC.DBF,在1 号工作区内查看当前记录的学号、姓名、性别、出生日期、课程号、成绩等字段内容。

SELECT A

USE STUD && 在一号工作区中打开STUD

SELECT B

USE SC && 在二号工作区中打开SC

SELECT A && 选择1 号工作区为当前工作区

DISPLAY 学号,姓名,性别,出生日期,B->课程号,SC.成绩

....

17. 表的关联

(1).关联的概述

所谓表文件的关联是把当前工作区中打开的表与另一个工作区中打开的表进行逻辑连接,而不生成新的表。当前工作区的表和另一工作区中的打开表建立关联后,当前工作区是表的记录指针移动时,被关联工作区的表记录指针也将自动相应移动,以实现对多个表的同时操作。

在多个表中,必须有一个表为关联表,此表常称为父表,而其他的表则称为被关联表,常称为子表。在两个表之间建立关联,必须以某一个字段为标准,该字段称为关键字段。表文件的关联可分为一对一关联、一对多关联和多对多关联。

(2).表文件关联的建立

1)一对一关联的建立

1)命令方式

【格式】SET RELATION TO [ | ] [INTO | ] [ADDITIVE]

【功能】将当前工作区的表文件与(或工作区号)指定的工作区中的表文件按或建立关联。

【说明】

.... 当用建立关联时,关键字必须是两个表文件共有字段,且别名表文件已按关键字段建立了索引文件,并已指定关键字段为主索引。

.... 当父表文件的记录指针移动时,子表文件的记录指针根据主索引文件指向关键字段值与父表文件相同的记录。如果子表中没有与关键字段值相同的记录,记录指针指向文件尾,EOF()为.T.。

.... 当按建立关联时,别名表不需要打开索引文件,两个表文件按照记录号相联系,父表文件的记录指针移动时,子表文件的记录指针移至与数值表达式相等的记录上。若找不到此记录,记录指针指向文件尾,EOF()为.T.。

.... ADDITIVE:表示当前表与其他工作区表己有的关联仍有效,实现一个表和多个表之间的关联;否则取消当前表与其他工作区表已有的关联,当前表只能与一个表建立关联。

.... SET RELATION TO则表示取消当前工作区与其他工作区的关联。

【例1】 将表文件STUD.DBF和SC.DBF以学号为关键字段建立关联。

SELECT 2 && 选择工作区2

USE SC && 打开表文件SC.DBF

INDEX ON 学号 TAG 学号 && 建立学号标识

SET ORDER TO TAG 学号 && 指定学号为主索引

SELECT 1 && 选择工作区1

USE STUD && 打开表文件STUD.DBF

SET RELATION TO 学号 INTO 2 && 建立一对一关联

【例2】 将表文件STUD.DBF和SC.DBF按记录号建立关联。

SELECT 2 && 选择工作区2

USE SC && 打开表文件SC.DBF

SELECT 1 && 选择工作区1

USE STUD && 打开表文件STUR.DBF

SET RELATION TO RECNO() INTO 2

18.设置参照完整性

用来控制数据库中数据一致性的规则,也是用来控制不同表的主关键字和外部关键字之间关系的规则。

19.表的联接

包括内部联接和外部联接,其中外部联接又包括左联接、右联接和完全联接。

例 题

1.Visual FoxPro 中的参照完整性规则包括——。

A.更新规则

B.删除规则

C.插入规则

D.以上答案均正确

[解析] 本题考查的知识点是参照完整性的规则包含的内容。在VisualFoxPro 中,参照完整性规则包括更新规则、删除规则、插入规则。因此正确答案为D。

[答案] D

2. 在Visual FoxPro 中,要建次参照完整性,必须首先建立——。

[解析] 本题考查的知识点是建立参照完整性的前提。在 VisualFoxPro 中,参照完整性与表之间的联系有关,它是指:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据未检查对表的数据操作是否正确。

[答案] 表之间的关系

3.执行下列命令序列后,XY3 的指针指向第____条记录,XY2 指向第——条记录。

SELECT 2 USE XY3 SELECT 3USE XY2 SELECT 2 SKIP 2

A.1,2

B.1,1

C.3,l

D.2,1

[解析] 本题考查的知识点是SELECT 命令的使用。SELECT 命令用未指定工作区,SELECT 2 即指定2 工作区。本题中因为没建立关联,因此工作区2 的指针从第l 条记录移到第3 条记录,并不会影响工作区3 的指针。

[答案] C

计算机二级vf知识点总结,2015年计算机二级考试《VFP》复习重点:第四章相关推荐

  1. 全国计算机二级考试vf知识点总结,全国计算机等级考试二级VF知识点(完整版)..doc...

    全国计算机等级考试二级VF知识点(完整版). 数据处理的中心问题是数据管理.多年来,数据管理经历了 人工管理阶段.文件管理阶段.数据库系统阶段. 人工管理阶段面对的主要问题:1.数据不能独立.2.数据 ...

  2. 4. 计算机会计报表编制的基本流程,初级会计电算化考试重点 第四章

    初级会计电算化考试重点 第四章 第四章 会计核算软件的操作要求 一.电算化会计核算基础流程 电算化会计核算流程与手工会计核算流程基原形同,但核算流程中各环节的工作内容有很大差异.实际工作中,单位电算化 ...

  3. 计算机一级b教程execl,全国计算机等级考试一级教程B第四章Excel教案.ppt

    全国计算机等级考试一级教程B第四章Excel教案 第4章:表格处理软件Excel 2003设计:孙学军 2011年4月10日 第4章 表格处理软件Excel 2003 第4章 表格处理软件Excel ...

  4. 计算机图形学期末复习之第四章:基本图形生成算法

    可能这会是图形学期末复习最后一个整理了, 感觉其实不如直接看PPT. 1.填空20+选择20+判断10+简答20+综合30 2.没有编程题 3.复习PPT上的基本概念和算法 计算机图形学期末复习之第四 ...

  5. 计算机色彩模式的相关知识,2015年计算机一级PS知识点辅导:图像的色彩模式

    2015年计算机一级PS知识点辅导:图像的色彩模式 1)RGB彩色模式: 又叫加色模式,是屏幕显示的最佳颜色,由红.绿.蓝三种颜色组成,每一种颜色可以有0-255的亮度变化. 2)CMYK彩色模式: ...

  6. 计算机专业综合素质试题答案,2015中学教师资格证考试试题及答案《综合素质》(4)...

    1.字顺法不包括( ). A.形序法 B.音序法 C.号码法 D.学科法 [答案]D [答案解析]字顺法是根据字符的形体特征或读音排检字(词)的方法,包括形序法.音序法和号码法. 2.人的日常思维和行 ...

  7. 计算机课程延伸知识点,【非计算机专业计算机基础课程教学改革】 计算机基础知识点归纳...

    摘要:在各种学科知识迅猛发展的今天,计算机技术已经渗透到社会的各个领域,它改变了人们的生活,也对现代人提出了更高的要求,让我们面临着许多新的技术挑战,因而计算机基础技术教育也越来越体现出其重要性.在该 ...

  8. 2015计算机一级试题及答案,2015年计算机一级考试选择试题及答案

    2015年计算机一级考试选择试题及答案 (1)能保存网页地址的文件夹是 D A)收件箱 B)公文包 C)我的文档 D)收藏夹 [解析]能保存网页地址的文件夹是收藏夹. (2)拥有计算机并以拨号方式接入 ...

  9. 2015计算机一级试题及答案,2015年计算机一级统考试题及答案

    2015年计算机一级统考试题及答案 27 .下列 IP 地址中,可能正确的是( D ). A ) 192 . 168 . 5 B ) 202 . 116 . 256 . 10 C ) 10 . 215 ...

最新文章

  1. 玩Android微信小程序版
  2. 设计模式复习-桥接模式
  3. MFC程序崩溃的友好处理
  4. veket智能机器人
  5. 关于移动端的一些tip
  6. 分享一个IIS日志分析工具-LogParse
  7. android 发送csv邮件,无法在android中使用电子邮件发送.csv文件
  8. Elasticsearch 7.x Nested 嵌套类型查询 | ES 干货
  9. 简单易懂的讲解深度学习(入门系列之一)
  10. idea--Preferences
  11. 机器人感知:因子图在SLAM中的应用(读书笔记)第一至三章
  12. 微信小程序 手机号 邮箱正则表达式验证
  13. 炉石传说 历代无面斩杀宇宙龙术
  14. ng-alain st 列表排序
  15. php图片文字水印透明度,php图片水印 可以设置透明度
  16. 用CSS实现HTML图文混排
  17. bzoj1202 狡猾的商人[并查集]
  18. ceph(2)--Ceph RBD 接口和工具
  19. 阿里云盘太小啦,所以自己动手写了一个阿里云盘的搜索引擎
  20. 一秒7步解决校园网刷知乎显示不了图片

热门文章

  1. 出现java.lang.IllegalArgumentException异常
  2. JMeter java.net.URISyntaxException:Illegalcharacterinquery解决方案
  3. SSH登录很慢问题的解决
  4. 关于Jupyter Notebook默认起始目录设置无效的解决方法
  5. 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML
  6. HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed out的解决方法
  7. 一个或多个实体的验证失败。 有关更多详细信息,请参见“ EntityValidationErrors”属性
  8. 如何检查字符串是否包含特定单词?
  9. JavaScript闭包如何工作?
  10. Kotlin的解析(下)