61阅读

全国计算机二级考试-2015年全国计算机二级VFP考试练习

发布时间:2018-01-06 所属栏目:高级会计师考试

一 : 2015年全国计算机二级VFP考试练习

一、基本操作题

在考生文件夹下有一表单文件formone.scx,其中包含一个文本框和一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:

1.将表单的标题设置为"表单操作";命令按钮的标题设置为"显示"。

。www.61k.com)

2.将文本框的初始值设置为数值0、宽度设置为60。

3.设置文本框的InputMask属性,使其只能输入数值,其中:小数部分为两位、整数部分(包括正负号)最多为5位。

4.修改命令按钮的Click事件代码,使其中的wait命令功能为显示文本框的值。注意:需要将文本框中的数值转换成字符串,其中:小数位数保留两位,字符串的长度为8。

本题主要考核点:表单、命令按钮、文本框属性的设置、事件代码的编写。

解题思路:

1、打开表单formone,将表单的Caption属性值设置为表单操作,命令按钮的Caption属性值设置为显示。

2、将文本框的Value属性值设置为0,Width属性值设置为60。

3、将文本框的InputMask属性值设置为99999.99。

4、设置"显示"按钮的Click事件代码:wait str.value,8,2) window

二、简单应用

1.编写SELECT语句,从customers(客户)表中统计各年份出生的客户人数。统计结果依次包含"年份"和"人数"两个字段,各记录按年份升序排序,统计结果存放在tableone表中。最后要执行该SELECT语句,并将该SELECT语句存放在命令文件pone.prg中。

2.首先创建数据库orders_m,并向其中添加customers(客户)和orders(订单)表。然后在数据库中创建视图viewone:利用该视图只能查询2007年签订的订单信息,查询结果依次包含订单号、签订日期、姓名(即客户姓名)和联系电话四项内容,各记录按签订日期降序排序。最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。

本题主要考核点:利用SQL_SELECT语句建立查询、数据库的创建、向数据库中添加表、视图的创建。

解题思路:

第1题:本题的考查点是利用SQL_SELECT语句建立查询。其命令如下:

SELECT year(Customers.出生日期) as 年份, COUNT(Customers.客户号) as 人数 FROM customers;

GROUP BY 1 ORDER BY 1 INTO TABLE tableone.dbf

然后将此命令保存在pone.prg文件中。

第2题:创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加customers和orders表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加customers和orders表,并设置两表间的联系;在"字段"选项卡中选择订单号、签订日期、姓名和联系电话4个字段;切换到"筛选"选项卡,在其中进行如下设置:

字段名条件 实例

YEAR(Orders.签订日期) = 2007

切换到"排序依据"中选择字段"order.签订日期",在"排序选项"处选择"降序",最后将视图保存在viewone文件中。利用刚创建的视图viewone查询视图中的全部信息,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。

三、综合应用

在考生文件夹下有一个未完成的程序文件ptwo.prg,其功能是进行订单处理,具体功能如下:

(1)利用SELECT语句产生goods(商品)表的一个副本goods_t表。

(2)根据orders、orderitems和goods_t表中的数据、按照签订日期的先后次序依次处理各订单:(a)若订单所订购的所有商品都有足够的库存量,则相关商品的库存量做相应处理(即减去该商品的订购数量),然后将该订单的状态设置为"处理";(b)若订单中有商品没有有足够的库存量,则整个订单不做处理(没有商品库存量被改变),只需将该订单的状态设置为"缺货"。

程序中共有5条语句需要考生给定,请根据程序文件中相应的注释信息将正确的语句插入在形如"&&语句"的注释前,不要增、删或修改其他代码。

完善程序后,必须执行该程序、产生相应的结果。

本题主要考核点:补充程序。

解题思路:

利用"文件"菜单下的"打开"命令打开程序文件ptwo.prg或者用命令:MODIFY COMMAND ptwo.prg来打开文件。

语句1为:set relation to 商品号 into goods_t或其等价语句。

语句2为:set relation to 订单号 into orderitems或其等价语句。

语句3为:if 数量>goods_t.库存量或其等价语句。

语句4为:skip -n或其等价语句。

语句5为:replace 库存量 with 库存量-orderitems.数量或其等价语句。

二 : Visual_FoxPro计算机二级考试复习资料大全

1 第一章 Visual FoxPro 基础

VISUAL FOXPRO基础知识

1、 基本概念

数据库、数据模型、数据库管理系统、类和对象、事件、方法。

2、 关系数据库:

(1) 关系数据库:关系模型、关系模式、关系、元组、属性、域、主关键字和外部关键字。

(2) 关系运算:选择、投影、联接。

(3) 数据的一致性和完整性:实体完整性、域完整性、参照完整性。

知识要点

1. 数据和信息

数据是存储在某一媒体上能够识别的物理符号。

数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,

而且还包括图形、图像、动画、影像和声音等多媒体数据。

信息是一种已经被加工为特定形式的数据,信息是以某种数据形式表现的。

【例题】:

____是存储在某一媒体上能够识别的物理符号,其概念包括两个方面:一是____;二是____。

[解析]本题考查的知识点是数据的概念及包括的内容。数据是存储在某一媒体上能够识别的物理符号,其概念包括两个方面:一是描述事物特性的数据内客;二是存储在某一种媒体上的数据形式。做好该题的关键是熟练掌握数据的概念及包含的两个方面。

[答案]数据 描述事物特性的数据内容 存储在某一媒体上的数据形式

2.数据处理

数据处理是指将数据转换成信息的过程,其中心问题是数据管理。数据处理的内容主要包括:数据的收集、整理、存储、加工、分类、维护、排序、检索和传输等一系列活动的总和。数据处理的目的是从大量的数据中,根据数据自身的规律和及其相互联系,通过分析、归纳、推理等科学方法,利用计算机技术、数据库技术等技术手段,提取有效的信息资源,为进一步分析、管理、决策提供依据。数据处理也称信息处理。

【例题】:

数据处理的中心问题是____。

A.数据

B.处理数据

C.数据管理

D.数据计算

[解析] 本题考查的知识点是数据处理。数据处理是指将数据转换成信息的过程。完成这一过程的中心问题是管理好数据。

[答案] C

3.计算机数据管理

是指对数据进行组织、分类、编码、存储、检索和维护等操作。计算机数据管理经历了人工管理、文件系统、数据系统、分布式数据库系统和面向对象数据库系统等几个阶段。

【例题】:

计算机数据管理经历了____等几个阶段。

A.文件管理、文件系统、数据系统、分布式数据库系统和面向对象数据库系统

B.人工管理、文件系统、数据系统、分布式数据库系统和面向对象数据库系统

C.人工管理、文件管理、数据系统、分布式数据库系统和面向对象数据库系统

D.文件管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统

[答案] B

应用程序硬件语言编译 DBMSOS

4.数据库(DB)

即DataBase,是存储在计算机存储设备上的结构化的相关数据集合,包括描述事物的数据本身及相关事物之间的联系。

【例题】:

数据库是存储在计算机存储设备上,结构化的相关数据集合。它不仅包括____,而且还包括____。

[解析]本题考查的知识点是数据库的概念及相关的内容。数据库是存储在计算机存储设备上的结构化的相关数据集合,其概念包括两个方面:一是描述事物的数据本身;二是相关事物之间的联系。做好该题的关键是熟练掌握数据库的概念及包含的两个方面。

2 [答案]描述事物的数据本身 相关事物之间的联系

5.数据库系统(DBS)

数据库应用系统简称为数据库系统(DBS),是一个计算机应用系统。也可以说它是指引进数据库技术后的计算机系统。

(1). 数据库系统有下列特点:

① 提高数据的共享性,使多个用户能够同时访问数据库中的数据

② 减少数据的冗余度,以提高数据的一致性和完整性

③ 提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价

(2). 数据库系统的组成 数据库系统由计算机硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员(用户)五部分组成。

【例题】:

1. 数据库系统由____组成。

A.计算机硬件系统、数据集合、数据库管理系统、相关软件、数据管理员(用户)

B.计算机软件系统、数据库集合、数据库管理系统、相关软件、数据管理员(用户)

C.计算机硬件系统、数据库集合、数据系统、相关软件、数据管理员(用户)

D.计算机硬件系统、数据库集合、数据库管理系统、相关软件、数据管理员(用户)

[解析] 本题考查的知识点是数据库系统的组成。本题需要记忆。在Visual FoxPro中,数据库系统由计算机硬件系统、数据库集合、数据库管理系统、相关软件、数据管理员(用户)。选项A,B,C的说法都不正确,目的是迷惑考生。

[答案]D

2.下列关于数据库系统的说法,正确的一项是____。

A.数据库中只存在数据项之间的联系

B.数据库中只存在记录之间的联系

C.数据库的数据项之间和记录之间都存在联系

D.数据库的数据项之间和记录之间都不存在联系

[解析]本题考查的知识点是数据库系统的概念。数据库中的数据是有结构的,这种结构由数据管理系统所支持的数据模型表现出来。数据库系统不仅可以表示事物内部各数据项之间的联系,而立可以表示事物之间的联系,从而反映出现实事物之间的联系。

[答案]C

6.数据库管理系统(DBMS)

数据库管理系统(DBMS)是指负责数据库存取、维护、管理的系统软件。DBMS提供对数据库中数据资源进行统一管理和控制的功能,将用户应用程序与数据库数据相互隔离。它是数据库系统的核心,其功能的强弱是衡量数据库系统性能优劣的主要指标。

Visual FoxPro就是一种在微机上运行的数据库管理系统软件。

DBMS必须运行在相应的系统平台上,在操作系统和相关的系统软件支持下,才能有效地运行。

【例题】

1. 下列关于Visual FoxPro 的说法,正确的一项是____。

A.Visual FoxPro 是一种在微机上运行的数据库管理系统软件

B.在微机上运行的数据库管理系统软件指的是VisualFoxPro 6.0

C.Visual FoxPro 是一种在微机上运行的数据库系统

D.Visual FoxPro 6.0 是一种在微机上运行的数据库系统

[解析] 本题考查的知识点是数据库管理系统。数据库管理系统(DBMS)是为数据库的建立、使用和维护而配置的软件。Visual FoxPro 就是这样的系统软件;选项B 说法不完全正确。Visual FoxPro 起源于xBase 系列,该系列包括早期的dBASEII/III、FoxBASE 和FoxPro。Visual FoxPro 6.0 亦包含在该领域中。选项C 和D的说法都不正确。

[答案]A

2.数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是___。

A.DB包括DBS和DBMS

B.DBS包括DB和DBMS

C.DBMS包括DBS和DB

D.三者等级,没有包含关系

[解析] 本题考查的知识点是数据库、数据库系统和数据库管理系统之间的关系。做该题之前,首先要掌握数据库、数据库系统、数据库管理系统的概念及含义。数据库是指存储在计算机存储设备、结构化的相关数据库的集合。数据库系统是指引进数据库技术后的计算机系统。数据库管理系统是为数据库的建立、使用和维护而配置的软件系统。数据库系统由五部分组成:计算机硬件系统、数据库集合、数据库管理系统、相关软件、数据管理员(用户)。掌握了这些知识,就很容易将选项A,C,D排除,正确答案为B。

3 [答案]B

7.实体客观事物在信息世界中称为实体,它是现实世界中任何可区分、识别的事物。实体可以是具体的人或物,也可以是抽象概念;

(1)属性

实体具有许多特性,实体所具有的特性称为属性。一个实体可用若干属性来刻画。每个属性都有特定的取值范围即值域,值域的类型可以是整数型、实数型、字符型等;

(2)实体型和实体集

属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。同类型的实体的集合称为实体集。

性质相同的同类实体的集合称实体集。如一个班的学生。

(3).实体联系

建立实体模型的一个主要任务就是要确定实体之间的联系。常见的实体联系有3种:一对一联系、一对多联系和多对多联系。

1)一对一联系(1:1)

若两个不同型实体集中,任一方的一个实体只与另一方的一个实体相对应,称这种联系为一对一联系。如班长与班级的联系,一个班级只有一个班长,一个班长对应一个班级。

2)一对多联系(1:n)

若两个不同型实体集中,一方的一个实体对应另一方若干个实体,而另一方的一个实只对应本方一个实体,称这种联系为一对多联系。如班长与学生的联系,一个班长对应多个学生,而本班每个学生只对应一个班长。

3)多对多联系(m:n)

若两个不同型实体集中,两实体集中任一实体均与另一实体集中若干个实体对应,称这种联系为多对多联系。如教师与学生的联系,一位教师为多个学生授课,每个学生也有多位任课教师。

8. 数据模型

数据模型是指数据库中数据与数据之间的关系。

数据模型是数据库系统中一个关键概念,数据模型不同,相应的数据库系统就完全不同,任何一个数据库管理系统都是基于某种数据模型的。数据库管理系统常用的数据模型有下列三种:

层次模型

网状模型

关系模型。

(1).层次数据模型(Hierarchical Model)

层次模型是用树型结构来表示实体类型以及实体间联系的模型。它只能表示1:n的联系,不能表示实体类型之间的多对多的联系。

(2).网状数据模型(Network Model)

网状模型是用网状结构来表示实体类型以及实体间联系的模型。网中的每个结点表示一个实体类型。它能够表示实体间的多种复杂联系和实体类型之间的多对多的联系。

支持网状模型的DBMS称为网状数据库管理系统,在这种系统中建立的数据库是网状数据库。网络结构可以直接表示多对多联系,这也是网状模型的主要优点。

(3).关系模型(Relational Model)

关系模型是用二维表格结构来表示实体以及实体联系间模型。关系是由若干个二维表组成的集合。每个二维表又称为关系。Visual FoxPro是一种典型的关系型数据库管理系统。

9.关系

一个关系就是一张二维表,每个关系有一个关系名。在Visual FoxPro 中,一个关系存储为一个文件,其扩展名为.dbf,称为“表”。在关系模型中,关系具有以下基本特点:(1)关系必须规范化,属性不可再分割(2)在同一关系中不允许出现相同的属性名(字段)(3)关系中不允许有完全相同的元组(记录)(4)在同一关系中元组(行)的顺序可以任意(5)任意交换两个属性(列)的位置,不会改变关系模式。

以上是关系的基本性质,也是衡量一个二维表格是否构成关系的基本要素。在这些基本要素中,有一点是关键,即属性不可再分割,也即表中不能套表。

10.关系模式

对关系结构的描述称为关系模式,一个关系模式对应一个关系的结构。关系模式的简化表示模式:关系名(属性名1, 属性名2, ?, 属性名n)

在VF 中使用:

表名(字段名1,字段名2,??,字段名n)关系既可以用二维表格描述,也可以用数学形式的关系模式来描述。一个关系模式对应一个关系的数据结构,也就是表的数据结构。

【例题】

4 1.关系数据库管理系统所管理的关系是____。

A.若干个二维表

B.一个DBF文件

C.一个DBC文件

D.若干个DBC文件

[ 解析] 本题考查的知识点是关系数据库管理系统的概念。Visual FoxPro就是一种关系数据库管理系统。一个“表”就是一个关系,一个关系就是一个二维表。关系数据库管理系统可管理若干个二维表。在本题的四个选项中,DBF 文件是数据表文件(即“表”文件);DBC 文件是数据库文件。如果将选项B 改成“若干个DBF 文件”,该答案也正确。

[答案]A

2.在Visual FoxPro 中,用二维表数据来表示实体与实体之间联系的数据模型称为____ 。

A.层次模型

B.网状模型

C.关系模型

D.联系模型

[解析]本题考查的知识点是数据模型的概念。

数据库管理系统支持的数据模型有3 种:层次模型、网状模型和关系模型。层次模型是指用树形结构表示实体及其之间联系的模型;网状模型是指用网状结构表示实体及其之间联系的模型;选项D 中的联系模型不属于数据模型。

[答案]C

3. Visual FoxPro是一种关系数据库管理系统,所谓关系是指____。

A.表中各记录间的关系

B.表中各字段间的关系

C.数据模型符合满足一定条件的二维表格式

D.一个表与另一个表间的关系

[解析] 本题考查的知识点是数据库管理系统中的关系的基础知识。在Visual FoxPro中,一个关系就是一个二维表。掌握了这一点,很容易将选项C选出来,选项A,B,D对关系的描述都不正确。

[答案] C

4. 下列关于关系模型的叙述,正确的是____。

A. 用二维表的形式表示实体和实体间联系的数据模型即为关系模型

B.数据管理系统用来表示实体及实体间联系的方法即为关系模型

C.用一维表的形式表示实体和实体间联系的数据模型即为关系模型

D.用三维表的形式表示实体和实体间联系的数据模型即为关系模型

[解析] 本题考查的知识点是关系统模型的概念。用二维表的形式表示实体和实体间联系的数据模型即为关系模型;选项B是数据模型的概念;选项C和D的说法错误,目的是迷惑考生。

[答案]A

5. 下列关于关系模式的说法不正确的一项是____。

A.关系模式即是对关系的描述

B.一个关系模式对应一个关系的结构

C.关系模式的格式为关系名(属性名1,属性名2,?,属性名n)

D.关系模式的格式为表名(字段名1,字段名2,?,字段名n)

[解析] 本题考查的知识点是关系模式。对关系的描述即为关系模式,一个关系模式对应一个关系的结构,其格式为:关系名(属性名1,属性名2,?,属性名n)。掌握了这一知识点,可以确定选项A,B,C都正确。选项D只有在Visual FoxPro中关系模式才表示为表结构:即表名(字段名l,字段名2,...,字段名n)。

[答案]D

6.任何一个数据库管理系统都是基于____建立的。数据库管理系统支持的数据模型分三种:____、____、____。

[解析] 本题考查的知识点是数据库管理系统。任何一个数据库管理系统都是基于某种数据模型建立的。数据库管理系统支持的数据模型分三种:关系模型、层次模型、网状模型。

[答案] 某种数据模型,关系模型,层次模型,网状模型

11.对象

客观世界里的任何实体都可以看作是对象。对象可以是具体的实物,也可以是一些概念。例如一个命令、一个人、一个桌子等都可以看作是一个对象。

5 12.方法

方法是描述对象行为的过程,是某个对象接受了某个消息后所采取的一系列操作的描述。

13.类

类是对一类相似对象的性质描述,这些对象具有相同的性质:属性及方法种类相同。类可以看作是一类对象的模板,有了类,基于类就可以生成这类对象中的任何一个对象。

14.事件

事件是一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并做出相应的反应。

事件可以由系统引发,也可以由用户引发。

15.元组

在一个二维表中,每一行是一个元组。元组对应存储文件中的一个具体记录。

16.属性

二维表中垂直方向的列称为属性,每一列有一个属性名,在Visual FoxPro中表示为字段名。每个字段的数据类型、宽度等在创建表的结构时规定。

17.域

指属性的取值范围,即不同元组对同一个属性的取值所限定的范围。

【例题】

1. 下列关于对象的说法不正确的一项是____。

A.对象可以是具体的实物,也可以是一些概念

B.一条命令、一个人、一个桌子等都有可以看作是一个对象

C.一个命令按钮可以看作是一个对象

D.一个程序不可以看作是一个对象

[解析]本题考查的知识点是对象。客观世界里的任何实体都可以看作是对象。对象可以是具体的实物,也可以是一些概念。选项A,B,C都正确;选项D错误,因为程序也是对象。

[答案]D

2.在Visual FoxPro中,____是描述对象行为的过程:____用来表示对象的状态。

A.属性;方法

B.方法;属性

C.方法;类

D.属性、类

[解析] 在Visual FoxPro中。属性用来表示对象的状态;方法用来描述对象的行为。在面向对象的方法里,对象被定义为由属性和相关的方法组成的包。

[答案]B

18.关键字

关键字是指属性或属性的组合,其值能唯一区分、确定不同元组(记录),在Visual FoxPro中表示为字段或字段的组合。需要强调的是,关键字的属性值不能取“空值”,所谓空值就是“不知道”或“不确定”的值,因而无法唯一地区分、确定元组。

在考试表中“准考证号”及“身份证号”属性可以作为关键字,因为准考证号和身份证号不允许相同。而“姓名”及“出生日期”则不能作为关键字,因为考生中可能出现重名或相同出生日期。

(1). 主关键字

关键字是指属性或属性的组合,其值能够惟一地标识一个元组。在VisualFoxPro 中表示为字段或字段的组合。在Visual FoxPro 中,起惟一标识一个元组的作用的关键字为主关键字或候选关键字。

(2).外部关键字

如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段就称为外部关键字。

19.关系运算

关系的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影和联接。

(1) 传统的集合运算

进行并、差、交集合运算的两个关系必须是具有相同的关系模式,既结构相同。

1).并

两个相同结构关系的并是有属于这两个关系的元组(记录)组成的集合。

2).差

有关系R 和关系S,是有属于R 而不属于S 的元组组成的集合,从R 中去掉S 中也有的元组。

6 3).交

有关系R 和关系S,既属于R 又属于S 的元组组成的集合。

(2).专门的关系运算

在关系数据库中查询用户所需数据时,需要对关系进行一定的关系运算。关系运算主要有选择、投影和联接三种。

1). 选择(Selection)

是指从关系中找出满足指定条件的元组的操作。选择是从行的角度进行的运算,即选择水平方向的记录。选择的操作对象是一个表。运算是从关系中查找符合指定条件元组的操作。(对记录)

2). 投影(Projection)

投影是指从一个关系模式中选择若干个属性组成新的关系的操作。投影是从列的角度进行运算。投影的操作对象是一个表。运算是从关系中选取若干个属性的操作。 (对字段)

3). 联接(Join)

联接是从两个关系模式选择符合条件的元组或属性组成一个新的关系。联接结果是满足指定条件的所有记录。联接的操作对象是两个表。运算是将两个关系模式的若干属性拼接成一个新的关系模式的操作,对应的新关系中,包含满足联接条件的所有元组。(对字段)

20.自然联接在联接运算中,按照字段值对应相等为条件进行的联接操作称为等值联接。自然联接是去掉重复

【例题】

1. 在Visual FoxPro中,专门的关系运算不包括____。

A.选择

B.投影

C.联接

D.差运算

[解析]本题考查的知识点是关系运算。关系的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影、联接。差运算属于传统的集合运算,所以选项D不属于关系运算。

[答案]D

2.查询关系数据库中用户需要的数据时,需要对关系进行一定的____。关系的基本运算有两类:一类是传统的集合运算,包括____;另一类是专门的关系运算,包括____。

[解析] 本题考查的知识点是关系运算。

查询关系数据库中用户需要的数据时,需要对关系进行一定的关系运算。关系的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影和联接。[答案] 关系运算;并、差、交;选择、投影和联接

3. 如果表中的一个字段不是本表的____或____,而是另外一个表的____或____,这个字段(属性)就称为外部关键字。

[解析] 本题考查知识点是外部关键字的概念。如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字。这个字段(属性)就称为外部关键字。

[答案]主关键字,候选关键字,主关键字,候选关键字

21. 实体完整性

实体完整性保证了表中记录的惟一性,即在一个表中不能出现重复记录。

22. 参照完整性

参照完整性与表之间的联系有关,当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,可以检查对表的数据操作是否正确。

23. 域完整性

数据类型的定义即属于域完整性的范畴。例如对于数值型字段,通过指定宽度,可以限定字段的取值类型和取值范围。

【例题】

1. 在Visual FoxPro 中,数据库完整性一般包括____。

A.实体完整性、域完整性

B.实体完整性、域完整性、参照完整性

C.实体完整性、域完整性、数据库完整性

D.实体完整性、域完整性、数据表完整性

[解析] 本题考查的知识点是数据库的完整性。数据库的完整性一般包括实体完整性、域完整性、参照完整性;选项A 说法不完全正确;选项C 和D 的说法错误,目的是迷惑考生。

[答案]B

2. 建立参照完整性的前提是____。

A.先建立表之间的联系

7 B.系统存在两个自由表

C.系统存在两个数据表

D.有一个表

[解析]本题考查的知识点是数据库完整性中的参照完整性。建立参照完整性的前提是先建立表之间的联系。选项B 和C 中只存在两个表还不够,两个表之间要有一定的联系才可以。选项D 中只有一个表说法错误,只存在一个表建立不了参照完整性。

[答案]A

一.选择题

1.Visual FoxPro关系数据库管理系统能够实现的三种基本关系运算是。(A)

A.选择、投影、联接

B.索引、排序、查找

C.选择、索引、联系

D.差、交、并

2.Visual FoxPro是一种关系数据库管理系统,所谓关系是指。(A)

A.数据模型符合满足一定条件的二维表格式

B.表中的各个记录之间有联系

C.表中的各个字段之间有联系

D.数据库中的一个表与另一个表有联系

3.下列关于数据库系统的说法,不正确的一项是。(C)

A.数据库系统由五部分组成:计算机硬件系统、数据库集合、数据库管理系统、相关软件、数据管理员(用户)

B.数据库系统中减少了数据冗余

C.数据库系统中没有数据冗余

D.数据库系统可以实现有组织地、动态地存储大量相关数据

4.关系数据库管理系统所管理的关系是。(D)

A.一个表

B.一个二维表

C.一个数据库文件

D.若干个二维表

5.要控制两个表中数据的完整性和一致性,可以设置“参照完整性”,它要求这两个表。(B)

A.是不同数据库中的两个表

B.是同一数据库中的两个表

C.两个相同的自由表

D.两个相关的数据库表

6.数据库系统的核心是。(A)

A.数据库管理系统

B.数据库

C.数据

A库系统

D.文件系统

7.数据处理的中心问题是。(D)

A.数据

B.处理数据

C.表中的数据

D.数据管理

8.用二维表结构来表示实体及实体之间联系的模型称为。(C)

A.层次模型

B.数据库模型

C.关系模型

D.网状模型

9.二维表中的列称为关系的____;二维表中的行称为关系的____。(D)

8

A.元组,属性

B.列,行

C.行,列

D.属性,元组

10.关系数据库中每个关系的形式是____。(B)

A.表

B.二维表

C.自由表

D.数据库表

11.在Visual FoxPro中,一个关系存储为一个文件,文件扩展名为.dbf,称为____。(D)

A.元组(记录)

B.属性

C.字段

D.表

12.在关系数据库的基本操作中,从表中选出满足条件的元组的操作称为____。(A)

A.选择

B.投影

C.联接

D.联系

13.从表中选出属性值满足条件的列的操作称为____。(B)

A.选择

B.投影

C.筛选

D.联接

14.将两个关系中相同的属性的元组联接在一起构成新的二维表的操作称为____。(D)

A.选择

B.投影

C.筛选

D.联接

15.数据库中的数据是有结构的,这种结构是由数据库管理系统所支持的____表现出来的。(C)

A.关系模型

B.数据库模型

C.数据模型

D.关系模式

16.实体完整性保证了表中记录的____,即在一个表中不能出现____。(C)

A.特性,重复记录

B.惟一性,重复字段

C.惟一性,重复记录

D.特性,重复字段

17.参照完整性与表之间的____有关。(A)

A.联系

B.元组

C.联接

D.属性

18.在Visual FoxPro中,____的定义属于域完整性的范畴。(A)

A.数据类型

B.数据模型

C.关系模型

D.关系模式

19.通过数据库系统可以____。(D)

9

A.提高数据的共享性,使多个用户能够同时访问数据库中的数据

B.减小数据的冗余度,以提高数据的一致性和完整性

C.提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价

D.以上答案均正确

20.关系运算中,选择的操作对象是____;投影的操作对象是____;联接的操作对象是____。(D)

A.两个表,一个表,两个表

B.一个表,两个表,两个表

C.一个表,一个表,一个表

D.一个表,一个表,两个表

21.选择是从____的角度进行的运算;投影是从____的角度进行的运算。(A)

A.行,列

B.行,行

C.列,列

D.列,行

22.在联接运算中,按照字段值对应相等为条件进行的联接操作称为—。(B)

A.联接

B.等值联接

C.自然联接

D.关系联接

23.VisualFoxPro将表分为____和____。(C)

A.数据库、自由表

B.单表,自由表

C.自由表,数据库表

D.单表,数据库

二、填空题

1.____是用来表示对象的状态;____描述对象行为的过程。(属性;方法)

2.数据处理是指____。(将数据转换成信息的过程)

3.数据库是存储在计算机存储设备上,结构化的相关数据集合。它不仅包括____,而且还包括____。(描述事物的数据本身;相关事物之间的联系)4.实体完整性主要用于____,它是保证表中记录____的特性,即在一个表中不允许出现重复记录。(表;唯一)

5.参照完整性与____有关,它是指____。(表之间的联系;当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,可以检查对表的数据操作是否正确)

6.____是指属性或属性的组合,其值能够唯一地标识一个____。(关键字;元组)

7.事件可以由____引发,也可以由____引发。(系统;用户)

8.关系数据库中每个关系的形式是____。(二维表)

9.数据库系统的核心是____。(数据库管理系统)

10.对关系进行选择、投影、联接运算之后,运算结果仍然是一个____。(关系)

11.从关系中找出满足指定条件的元组的操作称为____。(选择) 第二章 Visual FoxPro系统初步

大纲要求:

VISUAL FOXPRO系统特点与工作方式:

(1) WINDOWS版本数据库的特点。

(2) 主要数据类型和主要文件类型。

(3) 各种设计器和向导

(4) 工作方式:交互方式(命令方式、可视化操作)和程序运行方式。

知识特点:

1. windows版本数据库的特点

(1)查询与管理功能

(2)数据库表新概念

10 (3)可视化的界面操作工具

(4)支持更多的SQL语言

(5)互操作性

(6)支持网络

2. Visual FoxPro6.0的启动

启动Visual FoxPro6.0方式可归纳为下述几种:

(1). 双击桌面上的Visual FoxPro6.0图标,可直接进入Visual FoxPro6.0。

(2). 单击Windows的【开始】/【程序】/【Microsoft Visual FoxPro 6.0】/【Microsoft Visual FoxPro 6.0】,可启动Visual FoxPro6.0。

(3). 单击Windows的【开始】/【运行】,输入打开路径C:\Programs Files\Microsoft Visual Studio\VFP98\Visual FoxPro6.0.exe,然后单击【确定】来进入。

(4). 在“资源管理器”中找“Visual FoxPro6.0.exe” 文件,然后双击该文件名进入Visual FoxPro6.0。

3. Visual FoxPro6.0的退出

当用户完成了Visual FoxPro6.0中的各项操作并决定退出时,可选用以下任何一种方法退出Visual FoxPro6.0:

(1). 选择“文件”菜单中“退出”菜单项。

(2) 鼠标单击Visual FoxPro6.0窗口右上角的关闭按钮。

(3). 双击Visual FoxPro6.0主窗口左上角的“控制”菜单按钮,或单击标题栏最左端的控制按钮,打开下拉菜单,选择“关闭”命令;

(4). 在命令窗口输入命令“Quit”,然后按回车键。

(5). 直接按Alt+F4组合键。

4. Visual FoxPro 6.0的基本组成

Visual FoxPro 6.0启动后,打开主窗口,主窗口包括:标题栏、菜单栏、常用工具栏、状态栏、命令窗口和主窗口工作区几个组成部分。

8个下拉式菜单项 Alt+”热键”下拉菜单 ctrl+相应的“热键”

5.VFP 主要数据类型

数据类型 功 能

字符型(C) 由英文字母、汉字、数字、空格和各种符号组成的字符串。0-254 各字节。每个字符占1 个字节,每个汉字占2 个字节。 货币型(Y) 主要用来存储货币量。8 个字节,小数点超过4 位,系统会自动四舍五入。

数值型(N) 数值型的数据包含正负号、数字及小数点。长度为1-20 个字节,在内存中占8 个字节。

浮动型(F) 浮动型数据与数值型数据完全等价。

日期型(D) 日期型字段包括年、月、日。占8 个字节。

日期时间(T) 这种数据类型包括日期和时间。占8 个字节。

双精度型(F) 这种数据类型有更高的精确度,所表示的数值范围也最大。占8 个字节。

整型(I) 整型数据是没有小数位数的数字。占4 个字节。

逻辑型(L) 它的值只有真(.T.)和假(.F.)两种。占1 个字节。

备注型(M) 种数据型可容纳数量不限的字符数据,在表中占4 个字节。

通用型(G) 通用型字段用来存储OLE 对象,如扩展名为.doc 的文档或位图文件等。在表中占4 个字节。

字符型(二进制) 这种类型与上述的“字符型”相同,只是当更改代码页时字符值不会改变。该类型字段用于在表中保存用户密码。 备注型(二进制) 这种类型与上述的“备注型”相同,只是当更改代码时备注内容不变,用于存储不同国家(地区)的登录脚本。

6.VFP 文件扩展名与文件类型

扩展名 文件类型 扩展名 文件类型

APP 生成的应用程序 MEM 内存变量保存

CDX 复合索引 MNT 菜单备注

DBC 数据库 MNX 菜单

DCT 数据库备注 MPR 生成的菜单程序

DCX 数据库索引 MPX 编译后的菜单程序

DBF 表 PJT 项目备注

FPT 表备注 PJX 项目

EXE 可执行文件 PRG 程序

FRX 报表 QPR 生成的查询程序

11 FRT 报表备注 QPX 编译后的查询程序

IDX 索引、压缩索引 SCT 表单备注

LBT 标签备注 SCX 表单

LBX 标签 TXT 文本

1.下列方法中,不能退出Visual FoxPro 的一项是____。 A.单击“文件”菜单中的“关闭”命令 B.单击“文件”菜单中的“退出”命令 C.单击窗口标题栏右端的“关闭”按钮 D.按[A1t 十F4]组合键

[解析] 本题考查的知识点是退出Visual FoxPro 的操作。常用的退出VisualFoxPro 的方法有五种: ①单击“文件”菜单下的“退出”命令; ②单击标题栏最右端的关闭按钮; ③单击标题栏最左端的控制按钮,打开下拉菜单,选择“关闭”命令;或双击标题栏最左端的控制按钮 ④按[A1t 十F4]组合键; ⑤在命令窗口中输入QUIT 命令,按[Enter]健。 因此选项B,C,D 都正确。执行选项A 中的命令,只能关闭当前打开的文件,不能退出Visual FoxPro。本文来源:考试大网

[答案] A

2.扩展名为.DBC 的文件表

扩展名 文件类型 扩展名文件类型

.APP 生成的应用程序.MEM 内存变量保存

.CDX 复合索引 .MNT 菜单备注

.DBC 数据库 .MNX 菜单

.DCT 数据库备注.MPR 生成的菜单程序

.DCX 数据库索引.MPX 编译后的菜单程序

.DBF 表 .PJT 项目备注

.FPT 表备注 .PJX 项目

.EXE 可执行程序.PRG 程序

.FRX 报表 .QPR 生成的查询程序

.FRT 报表备注 .QPX 编译后的查询程序

.IDX 索引,压缩索引.SCT 表单备注

.LBT 标签备注 .SCX 表单

.LBX 标签 .TXT 文本

示____。

A.表文件

B.备份文件

C.数据库文件

D.项目文件

[解析]本题考查的知识点是Visual FoxPro 中的文件类型。选项A 中“表文件”的扩展名为.DBF;选项B 中“备份文件”的扩展名为.BAK;选项C 中“数据库文件”的扩展名为.DBC;选项D 中“项目文件”的扩展名为.PJX。

[答案] C

7.项目

项目是文件、数据、文档和Visual FoxPro 对象的集合。项目文件的扩展名为 .PJX 。

8.项目管理器

项目管理器 是VFP 中用来创建、修改、组织项目中各种对象和数据的主要组织工具,是 VFP 的“控制中心” ,在项目管理器中也可以将应用系统编译成一个扩展名为.app 的应用文件或.exe 的可执行文件。考试大-全国最大教育类网站(www.Examda。com)

9.项目管理器中的选项卡

(1).“数据”选项卡

“数据”选项卡负责管理项目的数据库、自由表、查询及视图等内容。

(2).“文档”选项卡

“文档”选项卡负责管理处理数据时的全部文档,如输入和查看数据所用的表单,及打印表和查询选项卡结果所用的报表及标签等。

(3).“类”选项卡

“类”选项卡包含用户所有定义的类,可以新建一个类,也可以添加已存在的类。

(4).“代码”选项卡

“代码”选项卡包含用户创建的所有源程序和API 库。

(5).“其他”选项卡

12

“其他”选项卡包含用户创建的菜单、文本文件及其他文件。

用户可以利用Visual FoxPro6.0 提供的菜单设计功能来设计自己的菜单栏及快捷菜单。文本文件是存储纯文字的文件,可以用来存储文件的说明信息。其他文件用来存储图形文件,如*.bmp 、*.jpg 格式的文件。

1. “项目管理器”中的“全部”选项卡用于显示和管理____。

A.Visual FoxPro 包含的各类文件,包括数据、文档、类库、代码、其他

B.数据库、自由表、查询

C.表单、报表、标签

D.菜单、文本文件、其他文件

[解析] 本题考查的知识点是“全部”选项卡包含的内容及作用。 “全部”选项卡中显示了Visual FoxPro 中的各类文件,包括数据、文档、类库、代码、其他,因此选项A 正确;选项B 是“数据”选项卡中显示和管理的内容;选项C 是“文档”选项卡中显示和管理的内容;选项D 是“其他”选项卡中显示和管理的内容。

[答案] A

2. “项目管理器”中的“数据”选项卡用于显示和管理____。

A.本地视图、远程视图、连接、存储过程

B.数据库、自由表、查询

C.数据库、自由表、视图

D.数据库、自由表、查询、视图

[解析] 本题考查的知识点是“项目管理器”中“数据”选项卡的作用。在Visual FoxPro 中, “数据” 选项卡用来显示和管理数据库、自由表、查询,因此选项B 正确;选项A 中的本地视图、远程视图、连接、存储过程是在新建了数据库之后,在“数据”选项卡中的“数据库”中显示和管理的内容;选项C,D 错误, 目的是迷惑考生。来源:www.61k.com

[答案] B

3. 在Visual FoxPro中,显示命令窗口的操作正确的是____。

A.单击常用工具栏上的“命令窗口”按钮

B.单击“窗口”菜单中的“命令窗口”命令

C.按[Ctrl十F2]组合键

D.以上方法均可以

[解析] 本题考查的知识点是显示命令窗口的几种不同的方法。在Visual FoxPro中,显示命令窗口的方法有三种:一是单击常用工具栏上的“命令窗口”按钮;二是单击“窗口”菜单中的“命令窗口” 命令;三是按[Ctrl十F2]组合键。所以正确答案为D。

[答案] D

4. 下列在“项目管理器”中移去数据库文件的操作方法正确的是____。

A.选定文件,单击“项目”菜单中的“移去文件”命令

B.选定文件,单击“项目管理器”上的“移去”按钮

C.选定文件,按[Delete]键

D.A,B,C

[解析] 本题考查的知识点是在“项目管理器”中移去数据库文件的操作。通常情况下,移去数据库文件的方法有三种:选定文件,单击“项目”菜单中的“移去文件”命令,或单击“项目管理器”上的“移去”按钮,或按[Delete]键。因此选项A,B,C都正确,所以正确答案为” D。

[答案] D

5.在Visual FoxPro中,打开“文件”菜单的快捷键是____。

A. [A1t]+[E]

B. [A1t]+[F]

C. [A1t]+[V]

D. [A1t]+[W]

[解析]本题考查的知识点是利用快捷键打开菜单。选项A中[A1t十E]组合健用来打开“编辑”菜单;选项B中[A1t十F]组合键用来打开“文件”菜单;选项C中[A1t+V]组合健用来打开“显示” 菜单;选项D中[A1t十W]组合键用来打开“窗口”菜单。

[答案] B

6.Visual FoxPro主界面的菜单栏中包括____菜单。

A. 文件、编辑、视图、格式、工具、程序、窗口、帮助

B.文件、编辑、显示、格式、工具、程序、窗口、帮助

C.文件、编辑、视图、格式、工具、程序、表格、窗口、帮助

13

D.文件、编辑、显示、格式、工具、表格、窗口、帮助

[解析] 本题考查的知识点是Visual FoxPro 6.0主界面的菜单中的菜单项;刚一打开Visual FoxPro窗口,菜单栏中默认出现8个菜单,分别为文件、编辑、显示、格式、工具、程序、窗口、帮助。本题选项A中“视图”菜单错误;选项B完全正确;选项C中“视图”菜单和“表格”菜单不正确;选项D中的“表格”菜单不正确。因此正确答案为B。

[答案] B

7.通过项目管理器窗口的按钮不可以完成的操作是____。

A.新建文件

B.添加文件

C.删除文件

D.为文件重命名

[解析]本题考查的知识点是项目管理器窗口上的按钮的作用。项目管理器窗口上有6个按钮:新建(用来新建文件)、添加(用来添加文件)、修改(用来修改文件)、预览(用来预览文件)、移去(用来移

去或删除文件)、连编(连编一个项目或应用程序)。本题4个选项中的A,B,C都可以通过项目管理器中的按钮完成。选项D中的为文件重命名,不可以通过项目管理器上的按钮来完成,只可以通过在文件上单击鼠标右键,选择快捷菜单中的“重命名”命令来完成。因此正确答案为D。

[答案] D

10.VFP6.0 中的设计器Visual FoxPro 6.0 提供的一系列设计器,为用户提供了一个友好的图形界面操作环境,用以创建、定制、编辑数据库结构、表结构、报表格式、应用程序组件等。 VisualFoxPro 6.0 提供的设计器及其功能,见表。

设计器名称 功能 及 用 途

表设计器( TableDesigner)通过表设计器可以修改表字段和索引的结构,还可以设置有效性规则和触发器。

数据库设计器(DatabaseDesigner)可以用数据库设计器编辑、增加以及删除数据库中的表,也可以修改视图和存储程序。

标签设计器(Label Designer) 它与报表设计器相似,用于创建许多标准尺寸的标签,可以创建包括图形、标题、脚注的自定义标签 表单设计器(Form Designer) 它是设计表单的工具。可以把控件放到这些表单中,增加代码并控制事件的发生。表单设计器与前面看到的设计器不同,它实际上有两个窗口,设计器本身和控件的属性窗口。

菜单设计器(Menu Designer) 菜单设计器提供一种创建、编辑菜单和子菜单,修改菜单项的图形方法。

类设计器(Class Designer) 类设计器用来产生可视化类。

例题

利用项目管理器打开“表单设计器”的操作步骤是:打开“项目管理器”,选择____选项卡,选定“表单”,单击“新建”按钮,打开____对话框,单击“新建表单”按钮,即可打开表单设计器。

标签设计器( LabelDesigner)它与报表设计器很相似,用于创建许多标准尺寸的标签,可以创建包括图形、标题、脚注的自定义标签。

表单设计器( FormDesigner)它是设计表单的工具。可以把控件放到这些表单中,增加代码并控制事件的发生。表单设计器与前面看到的设计器不同,它实际上有两个窗口,设计器本身和控件的属性窗口。

菜单设计器( MenuDesigner)菜单设计器提供一种创建、编辑菜单和子菜单,修改菜单项的图形方法。

类设计器( ClassDesigner)类设计器用来产生可视化类。

[解析] 本题考查的知识点是利用项目管理器打开“表单设计器”。在Visual FoxPro中,利用项目管理器打开“表单”设计器的操作步骤是:打开“项目管理器”,选择“文档”选项卡,选定“表单”,单击“新建”按钮,打开“新建表单”对话框,单击“新建表单”按钮,即可打开表单设计器。来源:考试大

[答案]文档,新建表单

11.Visual FoxPro 中的向导

Visual FoxPro 6.0 系统为用户提供了许多功能强大的向导(Wizards)。用户可以在向导程序的引导、帮助下,不用编程就能快速地建立良好的应用程序,完成许多数据库操作、管理功能,为非专业用户提供了一种较为简便的操作使用方式。Visual FoxPro 6.0 系统提供的向导及其功能,见表。

向导名称 功能及用途

应用程序向导 创建一个VFP应用程序或项目的框架

文档向导 从项目和程序文件的代码中生成文本文件,并编排文本文件的格式

表单向导 为单个表单创建操作数据的表单

一对多表单向导 为两个相关表创建操作数据的表单,在表单的表格中显示

子表的字段标签向导 创建一个符合标准格式的标签

本地视图向导 利用来源于VFP表的数据产生一个视图

14

远程视图向导 产生一个通过ODBC从远程服务器上使用数据的视图

查询向导 创建一个标准的查询

报表向导 用一个单一的表创建一个带格式的报表

12. Visual FoxPro 6.0的操作方式

Visual FoxPro 6.0系统为用户提供了几种各具特点的操作方式,我们可根据情况以及应用的需要,选择合适的操作方式,实现数据库的操作、应用。

Visual FoxPro 6.0系统的操作方式主要有:

(1)命令操作方式

(2)菜单操作方式

(3)程序操作方式

(1).命令操作方式

命令操作是在命令窗口中逐条输入命令,直接操作指定对象的操作方式。命令操作为大家提供了一个直接操作的手段,其优点是能够直接使用系统的各种命令和函数,有效操纵数据库,但要求熟练掌握各种命令和函数的格式、功能、用法等细节;来源:考试大

(2).菜单操作方式

Visual FoxPro 6.0系统将许多命令做成菜单命令选项,我们通过选择菜单项来使用数据库的操作方式。在菜单方式中,很多操作是通过调用相关的向导、生成器、设计器工具,以直观、简便、可视化方式完成对系统的操作,我们不必熟悉命令的细节和相应的语法规则,通过对话来完成操作。有了这种方式,一般用户无需编程就可完成数据库的操作与管理;

(3).程序操作方式

程序操作就是预先将实现某种操作处理的命令序列编成程序,通过运行程序来实现操作、管理数据库的操作方式。根据实际应用需要编写的应用程序,能够为用户提供界面更简洁直观、操作步骤更符合业务处理流程和规范要求的操作应用环境。

13. VFP 命令的格式与特点

(1).命令格式:

一般说,VFP 的命令总是由一个命令的动词开头,后随一个宾语和若干子句(命令子句),用来说明命令的操作对象、操作结果与操作条件。如:

use SB

list

list for 价格<10000

copy to ZSB

sort to PX on 价格 fields 名称,价格

(2).命令特点:

命令的特点有三:一是采用英文祈使句的形式;二是操作对象、结果和条件均可以用命令子句的形式来表示;命令只讲对操作的要求,不描述具体的操作过程。

(3).命令分类:

VFP 拥有近500 条命令,大致可分为以下7 类:

1.是建立和维护数据库命令;

2.是数据查询命令;

3.是程序设计命令;

4.界面设计命令;

5.是文件和程序管理命令;

6.是面向对象设计命令;

7.是其它命令。 第三章 数据与数据运算

VISUAL FOXPRO的基本数据元素:

(1) 常量、变量、表达式。

(2) 常用函数:字符处理函数、数值计算函数、日期时间函数、数据类型转换函数、测试函数。

1.常量

常量是指在程序运行过程中始终不变化的数据,又称为常数。在VFP 中常量可分为六种类型:

15

2. 变量

变量是在操作过程中可以改变其取值或数据类型的数据项。在Visual FoxPro系统中变量分为字段变量、内存变量(简单变量、数组变量)2类。此外,作为面向对象的程序语言,Visual FoxPro在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。 确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。

(1).命名约定

使用字母,下划线和数字命名。内存变量一般建议不采用汉字命名;命名以字母或下划线开头;除自由表中字段名、索引的TAG 标识名最多只能10 个字符外,其他的命名可使用1~128 个字符;

避免使用 Visual FoxPro 的保留字;文件名的命名应遵循操作系统的约定。

(2).字段变量

字段变量是数据库管理系统中的一个重要概念。它与记录一纵一横构成了数据表的基本结构。一个数据库是由若干相关的数据表组成,一个数据表是由若干个具有相同属性的记录组成,而每一个记录又是由若干个字段组成。字段变量就是指数据表中已定义的任意一个字段。 我们可以这样理解:在一个数据表中,同一个字段名下有若干个数据项,而数据项的值取决于该数据项所在记录行的变化,所以称它为字段变量。字段变量的数据类型与该字段定义的类型一致。字段变量的类型有数值型、浮点型、整型、双精度型、字符型、逻辑型、日期型、时间日期型、备注型和通用型等。使用字段变量首先要建立数据表,建立数据表时首先定义的就是字段变量属性(名字、类型和长度)。字段变量的定义及字段变量数据的输入、输出需要在表设计器中进行。

3.内存变量

内存变量可用来存储数据,定义内存变量时需为它取名并赋初值,内存变量是一个临时变量,内存变量建立后存储于内存中,以便在需要时引用它的内容。当退出程序时,变量所占的内存自动释放。Visual FoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。内存变量可分为简单变量和数组变量两类。

(1)内存变量的建立

建立内存变量就是给内存变量赋值。内存变量赋值既可定义一个新的内存变量,也可改变已有内存变量的值或数据类型。

【格式1】:〈简单变量〉=<表达式〉

【格式2】:STORE <表达式> TO <简单变量表>

【功能】: 计算〈表达式〉,然后将计算结果赋给简单变量。使用格式1,一次可给一个简单变量赋值;使用格式2,一次可给一批简单变量赋值,各变量之间用逗号分隔。

(2).内存变量的输出格式1: ? <表达式表>格式1: ?? <表达式表>功能: 计算表达式的值,并将表达式的值显示在屏幕上。

【说明】

(1)命令格式中的? 表示从屏幕下一行的第一列起显示结果 ,?? 表示从当前行的当前列起显示结果。

(2)<表达式表>是表示用逗号隔开的多个表达式组,命令执行时遇逗号就空一格。

4. 数组变量

数组是具有相同的变量名、不同下标值的一组变量。数组中的每个数据值称为数组元素,数组中元素的

16 顺序号称为下标,每个数组元素在数组中的位置是固定的,数组中的元素可以通过下标来进行区分。

数组在使用时要用DIMENSION或DECLARE命令来定义。这两个命令完全相同,都是用于建立一维或二维数组。在VisualFoxPro6.0中,同一个数组元素在不同时刻可以存储不同类型的数据,在同一数组中,每个数组元素可以被赋予不同数据类型的值。

(1)数组的定义

数组必须先定义后使用,定义数组是向系统申请数组元素在内存中的存储空间。

【格式】:

DIMENSION | DECLARE <数组名1>(<数值表达式1>[,<数值表达式2>])

[,<数组名2>(<数值表达式3>[,<数值表达式4>])?]

【功能】:定义指定的各个数组。

(2)数组的赋值与引用

数组元素的赋值与引用,与普通内存变量的规则相同。

5.系统变量

系统变量是Visual FoxPro 系统特有的内存变量,它由Visual FoxPro 系统定义、维护。系统变量有很多,其变量名均以下划线“_”开始,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。系统变量设置、保存了很多系统的状态、特性,了解、熟悉并且充分地运用系统变量,会给数据库系统的操作、管理带来很多方便,特别是开发应用程序时更为突出,学习时可对此有所关注。

例题

1.下面关于常量的叙述,不正确的一项是____。

A.常量用以表示一个具体的、不变的值

B.常量是指固定不变的值

C.不同类型的常量的书写格式不同

D.不同类型的常量的书写格式相同

[解析] 本题考查的知识点是常量。在Visual FoxPro中,常量用以表示一个具体的、不变的值,值固定不变。常量的类型共有6种:数值型、字符型、货币型、 日期型、 日期时间型、逻辑型,不同类型的常量,书写格式不相同。本题的4个选项中,A,B,C的叙述都正确,选项D中认为不同类型常量的书写格式相同是错误的,因此正确答案为D。

[答案] D

2.数值型常量在内存中用____个字节表示。

A.4

B.6

C. 8

D.10

[解析] 本题考查的知识点是数值型常量。系统规定,数值型在内存中用8个字节表示。掌握这一点,一看便知选择选项C。这种类型的题主要靠记忆,没有技巧可言。

[答案] C

3.货币型常量与数值型常量的书写格式类似,但也有不同,表现在____。

A.货币型常量前面要加一个“$”符号

B.数值型常量可以使用科学计数法,货币型常量不可以使用科学计数法

C.货币数据在存储和计算时采用4位小数,数值型常量在此方面无限制

D.以上答案均正确

[解析] 本题考查的知识点是货币型常量同数值型常量书写格式的不同之处。在VisualFoxPro中,货币型常量与数值型常量的书定格式大体相似,但也有区别:货币型常量前面需要加一个前置符号;数值型常量可以用科学计数法表示,货币型常量不可以用科学计数据法表示;货币数据在存储和计算时采用4位小数,多余的小数按四舍五入处理。选项A,B,C叙述都正确,因此正确答案为D。

[答案] D

4.字符型常量的定界符不包括____。

A.单引号

B.双引号

C.花括号

D.方括号

[解析] 本题考查的知识点是字符型常量的定界符。在Visual FoxPro中,字符型常量的定界符有三种:单引号、双引号、方括号。选项A,B,D都是字符型常量的定界符,只有选项C中的花括号是日期型常量的定界符,因此正确答案为C。

17 [答案] C

5.下列关于字符型常量的定界符书写格式,不正确的是____。

A.‘我爱中国’

B.[‘20387’]

C.‘¥#123”

D.[“Visual FoxPro 6.0”]

[解析] 本题考查的知识点是字符型常量的定界符的使用。Visual FoxPro规定,字符型常量的定界符必须成对匹配,不能有一边单引号一边双引号等定界符不匹配的情况出现,选项A和D符合要求。此外,如果某种定界符本身也是字符串的内容,则可以使用其他定界符,因此选项B正确;选项C中的定界符不匹配,一边是单引号一边是双引号,不符合要求。因此正确答案为C。

[答案] C

6.在命令窗口中输入下列命令:

? "Visual FoxPro",'程序设计',[好帮手]

?? [学习Visual FoxPro],"的",‘好方法'。

主屏幕上显示的结果是____。

A.Visual FoxPro程序设计好帮手

B.学习Visual FoxPro的好方法

C.Visual FoxPro程序设计好帮手学习Visual FoxPro的好方法

D.Visual FoxPro 程序设计 好帮手 学习Visual FoxPro的好方法

[解析] 本题考查的知识点是单问号命令与双问号命令的区别。在Visual FoxPro中,单问号命令的功能是在下一行显示若干个表达式的值,双问号命令的功能是在同一行显示表达式的值。选项A和B只是显示结果的一部分。选项C中显示的方式不正确,由于第2行是双问号命令,所以显示结果应该与第l行的显示结果在同一行中,所以选项C不正确。选项D中两个命令的显示结果在同一行内,符合双问号命令的规则,因此正确答案为D。

[答案] D

7.下列符号中____不能作为Visual FoxPro中的变量名。

A.abc

B.XYZ

C.口xyz7

D.Good22luck

[解析] 本题考查的知识点是变量名的书写规则。题目中的口表示空格。VisualFoxPro变量名的命名规则是变量名必须以字母、汉字、下划线开头,变量名中不能包括小数点,在同一个范围内必须是惟一的。此题中的4个变量中,只有选项C中的口xyz7是以空格开头,它不可以作为变量名。其他选项中的变量名都满足Visual FoxPro中变量名的命名规则,是合法的变量名。因此正确答案为C。

[答案] C

8.日期型常量的定界符是____。

A.单引号

B.花括号

C.方括号

D.双引号

[解析] 本题考查的知识点是日期型常量的定界符。Visual FoxPro规定,日期型常量的定界符是一对花括号。本题选项A,C,D都是字符型常量的定界符,因此正确答案为B。

[答案] B

9.下列符号中,不能作为日期型常量的分隔符的是____。

A.斜杠(/) B.连字号(-)

C.句点(.) D.脱字符(^)

[解析] 本题考查的知识点是日期型常量的分隔符的形式。在日期型常量中,系统默认的分隔符为斜扛,常用的其他分隔符还有连字号、句点和空格。本题4个选项中的A,B,C都可作为分隔符,只有选项D中的脱字符虽然是严格的日期格式中不可缺少的一部分,但它不可以作为分隔符。因此正确答案为D。

[答案] D

10.下面货币型常量的书写格式,正确的一项是____。

A.$666.666 B.1323.4228$

18

C.$123.45321 D.$123.45E4

[解析] 本题考查的知识点是货币型常量的书写格式。在Visual FoxPro中,货币型常理的书写格式要求如下:前面需加一个前置符($)、小数点保留4位小数、不可以使用科学计数法。本题中的选项B错误在于$符号写在了后面;选项C错误在于小数点后面没保留4位小数;选项D错误在于使用了科学计数法。因此正确答案为A。

[答案] A

11.下面严格日期书写格式正确的一项是____。

A. {2002-06-27} B.{06/27/02}

C.{^2002-06-27} D.{^02-06-27}

[解析] 本题考查的知识点是严格日期的书写格式。书写严格日期格式时要注意以下几点:花括号中的第一个字符必须是脱字符(^);年份必须用4位表示;年、月、日的次序不能颠倒。本题选项A中没有脱字符;选项B是传统的书写格式;选项D的年份只有两位,规定年份要4位;只有选项C符合书写要求。因此正确答案为C。

[答案] C

12.在命令窗口中输入下列命令:

SET MARK TO [-]

? {^2004-06-27}

主屏幕上显示的结果是____。

A.06/27/04 B.06-27-04

C.2004-06-27 D.2004/06/27

[解析]本题考查的知识点是SET MARK TO命令的功能。SET MARK TO命令的功能是指定日期分隔符。如果执行SET MARK TO命令没有指定任何分隔符,表示恢复系统默认的斜扛分隔符。本题指定了连接号作为分隔符,因此显示的结果中日期的分隔符应该为“-”,选项A和D被排除;选项C实际上是字符型常量{^2004/06/27}执行的结果,该选项主要用来迷惑考生;选项B符合命令指定的要求。因此正确答案为B。

[答案] B

13.下列常量中,只占用内存空间1个字节的是____。

A.数值型常量 B.货币型常量

C.日期型常量 D.逻辑型常量

[解析] 本题考查的知识点是各种常量占用内存的空间。在Visual FoxPro中,数值型常量在内存中占用8个字节;日期型常量占用8个字节,货币型常量占用8个字节,日期时间型常量占用8个字节,逻辑型常量占用1个字节。本题中选项A,B,C都占用8个字节,只有选项D占用1个字节。因此正确答案为D。

[答案] D

14.下列关于变量的叙述不正确的一项是____。

A.变量值可以随时更改

B.变量值不可以随时更改

C.Visual FoxPro的变量分为字段变量和内存变量

D.在Visual FoxPro中,可以将不同类型的数据赋给

同一个变量

[解析] 本题考查的知识点是变量。在Visual FoxPro中,变量是可以随时更改的。变量分为字段变量和内存变量。变量的类型可以改变,也就是说可以把不同类型的数据赋给同一个变量。本题中选项A,C,D中的叙述都是正确的,只有选项B说变量值不可以随时更改是错误的。因此正确答案为B。

[答案] B

15.在Visual FoxPro中,T表示____内存变量。

A.字符型 B.数值型

C.日期型 D.日期时间型

[解析] 本题考查的知识点是内存变量的数据类型的字母表示。在Visual FoxPro的内存变量中,C表示字符型、N表示数值型、Y表示货币型、L表示逻辑型、D表示日期型、T表示日期时间型。本题中选项A字符型内存变量用字母C表示;选项B数值型内存变量用字母N表示;选项C日期型内存变量用字母D表示;选项D日期时间型内存变量用字母T表示。选项A,B,C都不正确,因此正确答案为D。

[答案] D

16.下列内存变量的书写中,格式不正确的是____。

A..COMX B.Flash_8

C._MUMU D.好心情

19

[解析] 本题考查的知识点是内存变量的书写格式。在Visual FoxPro中,内存变量的命名规则有3条:以字母、汉字和下划线开头;长度不行超过128个字符;由字母、汉字、下划线或数字组成。选项B,C,D都符合内存变量的命名规则,只有选项A以英文句点开头,不符合规则,因此正确答案为A。

[答案] A??

6.表达式在Visual FoxPro系统中,表达式是由常量、变量、函数及其他数据容器单独或与运算符组成的有意义的运算式子。 运算符是对数据对象进行加工处理的符号,根据其处理数据对象的数据类型,运算符分为算术(数值)运算符、字符运算符、日期时间运算符、逻辑运算符和关系运算符五类,相应的,表达式也分为算术表达式、字符表达式、日期时间表达式、逻辑表达式和关系表达式五类。

在一个表达式中可能包含多个由不同运算符连接起来的、具有不同数据类型的数据对象,但任何运算符两侧的数据对象必须具有相同数据类型,否则运算将会出错;由于表达式中有多种运算,不同的运算顺序可能得出不同结果,甚至出现运算错误,因此当表达式中包含多种运算时,必须按一定顺序施行相应运算,才能保证运算的合理性和结果的正确性、惟一性。用户也可以通过给表达式加圆括号的方式,改变其默认运算顺序。在Visual FoxPro 系统中,各类运算的优先顺序如下:

圆括号>算术和日期运算>字符串运算>关系运算>逻辑运算同一类运算符也有一定的运算优先顺序,这在各类表达式中分别介绍。如果多个同一级别的运算,则按在表达式中出现的先后顺序进行运算。

(1)算术表达式

算术表达式又称数值表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如表所示。表中运算符按运算优先级别从高到低顺序排列。

表 算术运算符

运算符 功能 表 达 式 举 例 运算结果 优先级别

( ) 圆括号 (2-5)*(3+2) -15 最高

- 取相反数 -(3-8) 5

**、^ 乘幂 2**5、3^2 32、9

*、/ 乘、除 2*10、25/5 20、5

% 取余数 20%5 0

+、- 加、减 36+19、29-47 55、-18 最低

(2).字符表达式

字符表达式是由字符运算符将字符型数据对象连接起来进行运算的式子。字符运算的对象是字符型数据对象,运算结果是字符常量或逻辑常量。"+"与 "-"都是字符连接运算符,都将两字符串顺序连接,但“+”是直接连接,“-”则将串1尾部所有空格移到串2尾部后再连接;“$”运算实质上是比较两个串的包含关系,因此有些书籍中将其归于关系运算,其作用是比较、判断串1 是否为串2的子串,如果串1是串2的子串,运算结果为“真”,否则为“假”。所谓子串,如果串1中所有字符均包含在串2中、且与串1中排列方式与顺序完全一致,则称串1为串2的子串。

表 字符运算符

运算符 功能 表达式举例 运算结果

+ 串1+串2:两串顺序相连接 ’12 ‘+’56’ ’12 56’

- 串1-串2:串1尾空格移到串2尾

后再顺序相连接 ’12 ‘-‘56’ ‘1256 ‘

$ 串1$串2:串1是否为串2子串 ‘1234’$ ‘12345’ .T.

‘ 1234’$‘34512’ .F.

两个连接运算的优先级别相同,但高于$的比较运算。

例: LEN1=”Visual FoxPro6.0 ” LEN2=”数据库教程” ?

LEN1+LEN2 &&结果为:Visual FoxPro6.0 数据库教程 ?

LEN1-LEN2 &&结果为:Visual FoxPro6.0数据库教程

? len(LEN1-LEN2) && 结果为:28

(3).日期表达式

由日期运算符将一个日期型或日期时间型数据与一个数值型数据连接而成的运算式称为日期表达式。日期运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数。两个运算的优先级别相同。

日期时间操作符有:

+:添加一个天数或秒数

-:减少一个天数或秒数

例如:

20

? {^2003-09-04}+10 &&结果为:09/14/03

? {^2003-11-30}-15 &&结果为:11/15/03

? {^2003-08-04 10:10a}+10 &&结果为:08/04/03 10:10:10 AM

? {^2003-08-04 10:35p}-10 &&结果为: 08/04/03 10:34:50 PM

注意:日期和日期、日期时间和日期时间只能相减,不能相加。(p64)

(4).关系表达式

由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。关

系表达式的值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。

表 关系运算符

运算符 功能 表 达 式举例 结果

< 小于 15<4*6 .T.

> 大于 ‘A’ > ‘1’ .T.

= 等于 2+4 = 3*5 .F.

<>、#、!= 不等于 5 <> -10 .T.

关系运算符的优先级别相同。关系表达式运算时,就是比较同类两数据对象的“大小”,对于不同类型的数据,其“大小”或者是值的大小,或者是先后顺序。日期或日期时间数据以日期或时间的先后顺序为序。在Visual FoxPro系统中,字符型数据的比较相对复杂,默认规则为:

1)单个字符

单个字符的比较是以字符ASCII码的大小,作为字符的“大小”,也就是先后顺序;

2)汉字

系统默认按汉字的拼音排列汉字的顺序,也就是以汉字的拼音顺序比较“大小”

3)字符串

两个字符串进行比较的基本原则是从左到右逐个字符进行比较。

当两串做“==”和“=”比较时,运算结果与SET EXACT ON/OFF的设置有关。默认是OFF状态。

● 精确比较:用运算符==进行两串的精确比较时,只有当两串长度相同,字符相同,排列一致时才成立;(EXACT ON或OFF)

● 相等比较:用运算符=进行两串比较,当处于OFF状态时,只要右边的字符串与左边字符串的前部分内容相匹配,结果就为真.T.。例如:“abc”=“abd”为假, “abc”=“abcde”为假,“abcde”=“abc”为真;当处于ON状态时,先在较短字符串的尾部加上若干个空格,使两个字符串长度相等,然后再进行比较。例如: “abc”=“abcde”为假,“ab”=“ab ”为真;

● 大小比较:用运算符< 或 >进行两串比较时,比较到第1个不相同字符为止,否则,长度较长的串较“大”;

● 其他比较:除上述运算符之外的其他运算符<>、<=和>=的比较,均可看作是两个运算符以逻辑“或”的关系构成的复合运算;

(5).逻辑表达式

由逻辑运算将逻辑型数据对象连接而成的式子称为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑型数据。表为逻辑运算符的功能。逻辑运算符前后一般要加圆点“.”标记,以示区别。

表 逻辑运算符

运算符 功能 优先级别

( ) 圆括号 最高

.NOT.或! 逻辑非

.AND. 逻辑与

.OR. 逻辑或 最低

对于各种逻辑运算,其运算规则可由逻辑运算真值表确定,表所示就是逻辑运算真值表。

表 逻辑运算真值表

A B A .AND.B A .OR. B .NOTA

T T T T F

T F F T F

F T F T T

F F F F T

例如:

?17>33 .AND.”A”<”a” && 值为.F.?

17>13 .or."A"<"a" .and..not..t. && 值为.T.

例 题

21

1.在命令窗口中输入下列命令:

x=1

STORE x+l TO a,b,c

? a,b,c

主屏幕上显示的结果是____。

A.1

B.1 1

C.2 2 2

D.1 1 1

[解析] 本题考查的知识点是内存变量赋值命令“ST0RE<表达式>To<内存变量名>”的使用。STORE命令可以将同一个表达式的值应该赋与多个内存变量。本题根据输入的命令,可以看出是将表达式分别赋与a,b和c三个内存变量,因此显示的结果也应用是3个值,此时排除选项A,B。再看前提,已知x=1,命令中的表达式为x+1,因此应该赋与3个内存变量的值一定为2。因此正确答案为C。

[答案] C

2.在命令窗口中输入下列命令:

m=”发展口口口”

n="生产力"

?m-n

主屏幕上显示的结果是____。

A. 发展口口口生产力 B.发展生产力口口口

C.m,n D.n,m

[解析]本题考查的知识点是字符串运算符的使用。题目中“发展”后的空余部分表示空格。在VisualFoxPro中,字符串运算符有两个:十和—。 “十”表示前后两个字符串首尾连接形成一个新的字

符串; “—” 连接前后两个字符串,并将前后字符串的尾部空格移到合并后的新字符串尾部。本题用“—”作为连接符,前一个字符(即m)尾部的空格应该移到合并后的新字符串尾部,因此结果中的空格都应该移到字符串的尾部,选项A中结果的空格在字符串中间,所以不正确,因此正确答案为B。

[答案] B

3.已知x=8,y=5,z=27,求表达式x^3/4+6*y-7*2+(4+z/9)^2的值为____。

A.88 B.100

C.72 D.193

[解析]本题考查的知识点是算术表达式的运算优先级。在Visual FoxPro中,算术运算符的运算优先级是:先算括号中的部分,再算**或^(乘方),再算*(乘)、/(除)、%(“取模”),再算(加)、—(减)。

将已知数代入表达式中,计算过程如下:

x^3/4+6*y-7*2+(4+z/9)^2

=8^3/4+6*5-7*2+(4+27/9)^2

=8^3/4+6*5-7*2+7^2

=128+30-14+49

=193

[答案]D

4.关系表达式中关系运算符的作用是____。

A.比较两个表达式的大小

B.计算两个表达式的结果

C.比较运算符的优先级

D.计算两个表达式的总和

[解析] 本题考查的知识点是关系表达式中关系运算符的作用。在Visual FoxPro中,关系运算符有大于(>)、小于(<等于(=)、不等于(<>、#、!=)、小于等于(<=)、大于等于(>=)、字符串精确比较(==)、包含测试( $),其作用是比较两个表达式的大小和结果,其运算结果是逻辑型数据。选项B,C,D的说法都错误,因此正确答案为A。

[答案] A

5.关系型表达式的运算结果是____。

A.数值型数据 B. 逻辑型数据

C.字符型数据 D.日期型数据

22

[解析] 本题考查的知识点是关系型表达式的运算结果。在Visual FoxPro中,关系型表达式的作用是比较两个表达式的大小或前后,其结果只有两种情况:逻辑真或逻辑假。关系型表达式的运算结果不可能是数值型数据、字符型数据、日期型数据,而只能是逻辑型数据。因此正确答案为B。

[答案] B

6.数组是____,它由一系列____组成,每个数组元素可通过____及相应的下标来访问。

[解析] 本题考查的知识点是数组的概念。在Visual FoxPro中,数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。

[答案]内存中连续的一片存储区域 元素 数组名

7.在Visual FoxPro中,只可以使用____和____数组,数组必须先____后____。

[解析] 本题考查的知识点是Visual FoxPro支持的数组及使用数组的前提。Visual FoxPro只支持一维数组和二维数组,数组必须先定义后使用。

[答案] 一维数;二维数;定义;使用

8.根据表达式值的类型,表达式可分为____、____、____、____;大多数____表达式是带比较运算符的关系表达式。

[解析] 本题考查的知识点是表达式的类型。根据表达式值的类型,表达式可分为数值表达式、字符表达式、日期时间表达式和逻辑表达式。大多数逻辑表达式是带比较运算符的关系表达式;

[答案] 数值表达式、字符表达式、日期时间表达式、逻辑表达式;逻辑

9.数值表达式由____构成,其运算结果是____型数据。

[解析] 本题考查的知识点是数值表达式的概念。在Visual FoxPro中,数值表达式由算术运算符将数值型数据连接起来构成。其运算结果仍然是数值型数据。本题是概念性知识,需要记忆。

[答案] 数值型数据和算术运算符 数值

10.在Visual FoxPro中,算术运算符有多种,按优先等级排列,依次为____、____、____、____。

[解析] 本题考查的知识点是算术运算符及优先等级。在Visual FoxPro中,算术运算符共有6种,按优先等级排列,依次为①括号(形成表达式内的子表达式)②乘方( ^或**)③乘(x)、除(/)、取模(%)④加(+)、减(-)。

[答案] ①括号(形成表达式内的子表达式) ②乘方(^或%)③乘(x)、除(/)、求余(%) ④加(+)、减(-)

7.函数

Visual FoxPro 系统中,函数是一段程序代码,用来进行一些特定的运算或操作,支持和完善命令的功能,帮助用户完成各种操作与管理。

Visual FoxPro 系统有数百种不同函数。按函数提供方式,可分为系统函数和用户自定义函数;按函数运算、处理对象和结果的数据类型,可分为数值型函数、字符型函数、逻辑型函数、日期时间型函数、数据转换函数等,按函数的功能和特点,可分为数据处理函数、数据库操作函数、文件管理函数、键盘和鼠标处理函数、输出函数、窗口界面操作函数、程序设计函数、数据库环境函数、网络操作函数、系统信息函数和动态数据操作函数等。

Visual FoxPro 的函数由函数名与自变量两部分组成。标准函数是Visual FoxPro 系统提供的系统函数,其函数名是Visual FoxPro 保留字,自定义函数是用户自已定义的函数,函数名用户指定;自变量必须用圆括号对括起来,如有多个自变量,各自变量以逗号分隔;有些函数可省略自变量,或不需自变量,但也必须保留括号;自变量数据类型由函数的定义确定,数据形式可以是常量、变量、函数或表达式等。函数是一类数据项,除个别(如宏替换)函数外,函数都不能像命令一样单独使用,只能作为命令的一部分进行操作运算。

(1).数值函数

数值函数用于数值运算,其自变量与函数都是数值型数据。

1).取绝对值函数ABS( )

【格式】ABS(<数值表达式>)

【功能】计算数值表达式的值,并返回该值的绝对值。

【例】 ? ABS(-43.29) 43.292).指数函数EXP( )

【格式】EXP(<数值表达式>)

【功能】求以e 为底、数值表达式值为指数的幂,即返回该数的指数值。

3).取整函数INT( )

【格式】INT(<数值表达式>)

【功能】计算数值表达式的值,返回该值的整数部分。

【例】 ? INT(-76.93) -764).自然对数函数LOG( )

【格式】LOG(<数值表达式>)

【功能】求数值表达式的自然对数。数值表达式的值必须为正数。

5).平方根函数SQRT( )

23

【格式】SQRT(<数值表达式>)

【功能】求非负数值表达式的平方根。

【例】 ? SQRT(5*5)

5.00

6).最大值函数MAX( )和最小值函数MIN( )

【格式】

MAX(<数值表达式1>,< 数值表达式2>[,< 数值表达式3>...])

MIN(<数值表达式1>,< 数值表达式2>[,< 数值表达式3>...])

【功能】返回数值表达式中的最大值MAX( )和最小值MIN( )。

7).求余数函数MOD( )

【格式】MOD(<被除数>,<除数>)

【功能】返回<被除数>除以<除数>得到的余数值。

【说明】在求摸运算中应注意以下几点:

(1) 除数不能为0。

(2) 除数为正数,返回正数;如果为负数,返回负数。

(3) 如果被除数与除数能够整除,结果为0。

(4) 如果被除数与除数不能整除,且被除数与除数同号,则结果为被除数除以除数而得到的余数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2 。

(5) 如果被除数与除数不能整除,且被除数与除数异号,则结果为被除数除以除数而得到的余数再加上除数。来源:考试大 即:MOD(X1,X2)=X1-INT(X1/X2)*X2+X2 。

【例】 ? MOD(10,3) &&结果为:1

? MOD(-10,-3) &&结果为:-1

? MOD(-10,3) &&结果为:2

? MOD(10,-3) &&结果为:-2

8).四舍五入函数ROUND( )

【格式】ROUND(<数值表达式1>,< 数值表达式2>)

【功能】返回数值表达式1四舍五入的值, 数值表达式2表示保留的小数位数。

【ày】 ? R0UND(3.14159£?4),ROUND(1234.9962,0),ROUND(1234.567,-1)

3.1416 1235 1230

9).π函数PI( )

【格式】PI( )

【功能】返回常量π的近似值。

10)。随机函数RAND( )

【格式】RAND(<数值表达式>)

【功能】产生0-1之间的随机数。

(2).字符函数

字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以cExp表示。

1).子串位置函数

【格式】AT(,< cExp 2>)

【功能】返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。

【例】 X=”Visual FoxPro 8.0”

? AT(”Fox”£?X) && 显示结果为 8

? AT(”fox”£?X) && 显示结果为 0

? AT(”o”£?X) && 显示结果为 9

? AT(”o”£?X £?2) && 显示结果为 13

2).取左子串函数LEFT( )

【格式】LEFT(,)

【功能】返回从cExp串中第一个字符开始,截取nExp个字符的子串。

3).取右子串函数RIGHT( )

【格式】RIGHT(,< nExp>)

【功能】返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。

24

4).取子串函数SUBSTR( )

【格式】SUBSTR (, [,] )

【功能】返回从串cExp 中第nExp1 个字符开始,截取nExp2 个字符的子串。

【例】 CN=”ABCDEFG” ? SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,6,3) DE ABCD FG

若省略〈长度〉,或者〈长度〉超过从〈起始位置〉到末尾的长度,则截取的子字符串为从〈起始位置〉到〈字符串表达式〉末尾的所有字符。www.Examda.CoM考试就到考试大

例如: ? SUBSTR(”计算机程序设计教程”,11) 设计教程

5).字符串长度函数LEN( )

【格式】LEN()

【功能】返回cExp串的字符数(长度)。函数值为N型。

【例】 ? LEN(”Visual FoxPro8.0”)16

6).删除字符串前导空格函数LTRIM( )

【格式】LTRIM()

【功能】删除cExp串的前导空格字符。

7).删除字符串尾部空格函数RTRIM( ) | TRIM( )

【格式】RTRIM | TRIM()

【功能】删除cExp串尾部空格字符。

8).空格函数SPACE( )

【格式】SPACE ()

【功能】返回一个包含nExp 个空格的字符串。

【例】 X=SPACE(2)+”学生情况”+ SPACE(4) ?

LEN(X),LEN(TRIM(X)),LEN(LTRIM))14 10 129).字符串替换函数STUFF( )

【格式】STUFF(,,,)

【功能】从nExp1指定位置开始,用cExp2串替换 cExp1串中nExp2个字符。

【ày】X1="ABCDEFG"

X2="abcd"

? STUFF(X1,4,3,X2),STUFF(X1,1,4,X2)

ABCabcdG abcdEFG

10).大小写转换函数LOWER( ) 和UPPER( )

【格式】LOWER ()

UPPER ()

【功能】LOWER( )将cExp串中字母全部变成小写字母,UPPER( )将cExp串中字母全部变成大写字母,其它字符不变。

11).字符匹配函数LINK( )

【格式】LIKE(,)

【功能】比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)

【说明】 中可以使用通配符*和?。*可以与任何数目的字符相匹配,?可以与任何单个字符相匹配。

【例】X=“abc”

Y=“abcd”

? LIKE(X,Y),LIKE(“ab*”,X),LIKE(“a*”,Y),LIKE(“?b”,X)

.F. .T. .T. .F.

(3).日期时间函数(p73)

日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。

1).系统日期函数DATE( )

【格式】DATE()

【功能】返回当前系统日期,此日期由系统设置。函数值为D型。

2).系统时间函数TIME( )

【格式】TIME([])

【功能】返回当前系统时间,时间显示格式为hh:mm:ss。是以24小时指制表示的。函数值为C型。

3).日期函数DAY( )

【格式】DAY()

25

【功能】返回指定的dExp式中的天数。函数值为N型

4).星期函数DOW( )、CDOW( )

【格式】DOW()

CDOW()

【功能】DOW( )函数返回dExp式中星期的数值,用1~7表示星期日~星期六。函数值为N型。CDOW( ) 函数返回dExp式中星期的英文名称。函数值为C型。

5).月份函数MONTH( )、CMONTH( )

【格式】MONTH()

CMONTH()

【功能】MONTH( )函数返回dExp 式中月份数。函数值为N 型。CMONTH( )函数则返回月份的英文名。函数值为C 型。

6).年份函数YEAR( )

【格式】YEAR()

【功能】函数返回dExp 式中年份值。函数值为N 型。

(4). 转换函数

在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。Visual FoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题。

1).ASCII码函数ASC( )

【格式】ASC ()

【功能】返回cExp串首字符的ASCII码值。函数值为N型。

【例】 ? ASC(“abc”) && 结果为:97

2).ASCII 字符函数CHR( )

【格式】CHR()

【功能】返回以nExp 值为ASCII 码的ASCII 字符。函数值为C 型。

【例】 ? CHR(99) && 结果为:c

3).字符日期型转换函数CTOD( )

【格式】CTOD()

【功能】把“××/××/××”格式的cExp串转换成对应日期值。函数值为D型。

【ày】 DA=”12/12/99”

? CTOD(DA)

12/12/99

4).日期字符型转换函数DTOC( )

【格式】DTOC([, 1])

【功能】把日期dExp转换成相应的字符串。函数值为C型。

【ày】 D={^2004/11/24}

DT=DTOC(D)

? DT

?? LEN(DT)

11/24/04 8

5).数值转换成字符串函数STR( )

【格式】STR([,< nExp2>][,< nExp3>])

【功能】将nExp1 的数值转换成字符串形式。函数值为C 型。

【例】 ?

STR(1324.46,6,1) 1324.5 ?

STR(1324.46,8,3) , STR(1324.46,3,1) 1324.460 ***

注:如果长度小于的位数则返回一串*号。

6).字符串转换成数值函数VAL( )

【格式】VAL ()

【功能】将cExp 串中数字转换成对应数值,转换结果取两位小数。函数值为N 型。【例】 ? VAL(”32”+”18”) 3218.00 ?VAL(”112GH”),VAL(”AB204”),VAL(”ASD”) 112.00

0.00 0.00

26

7).宏代换函数 &

[格式]:&<字符型内存变量>

[功能]:取“字符型内存变量”的值。

[说明]:

(1)宏代换是一种间接取值的操作,在&符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。

(2)若&<字符型内存变量>与后面的字符之间无空格分界时,应加上“.”符号作为分界符。

(3)宏代换的使用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。

(4)对于数字字符串,可以通过&函数使其与其他数字进行计算。

[例]:求宏代换。

<1>. CH=”X”

X=9

? &CH &&结果为:9

<2> TT=”学生”

USE &TT &&结果为:打开了“学生.dbf”表文件。

<3> X=”2004”

M=”+”

Y=”&X.&M.1”

? Y &&结果为:2004+1

? &Y &&结果为:2005

(5).测试函数

在数据库应用的操作过程中,用户需要了解数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。

1).数据类型函数VARTYPE( )

【格式】VARTYPE(<表达式>)

【功能】返回<表达式>表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型,D:日期型,N:数值型,L:逻辑型,M:备注型,G:通用型,U:未定义。

2).值域测试函数BETWEEN()

【格式】BETWEEN(,,)

【功能】判断当表达式的值大于等于的值且小于等于的值时,函数值为真(.T.),否则函数值为假(.F.)。如果或有一个是NULL 值,那么函数值也是NULL 值。

【例】? BETWEEN(3*5,10,50),BETWEEN(80,.null.,100).T. .NULL.

3).条件测试函数IIF( )

【格式】IIF(,,)

【功能】逻辑表达式lExp 值为真(.T.),返回表达式eExp1 的值,否则返回表达式eExp2 的值。eExp1 和eExp2 可以是任意数据类型的表达式。

【例】成绩=78

?IIF(成绩<60,“不及格”,“及格”)及格

4).当前记录号函数RECNO()

【格式】RECNO([<工作区号> | <别名>])

【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为1。

【例】 测试记录指针的当前位置。 USE 学生档案.dbf GOTO

BOTTOM ? RECNO() && 显示结果为:10

SKIP ? RECNO() && 显示结果为:11 GO

TOP ? RECNO() && 显示结果为: 1

SKIP -1 ? RECNO() && 显示结果为: 15).表结束标志测试函数EOF( )

【格式】EOF([<工作区号> | <别名>])

【功能】测试记录指针是否移到表结束处。如果记录指针指向表中尾记录之后,函数返回真(.T.),否则为假(.F.)。

【例】测试文件记录是否指向文件尾。USE 学生档案.dbf

GOTO BOTTOM

? EOF() && 显示结果为:.F.

27

SKIP && 移动记录指针到下一条记录命令

? EOF() && 显示结果为:.T.

6).表起始标识测试函数BOF ( )

【格式】BOF ([<工作区号> | <别名>])

【功能】测试记录指针是否移到表起始处。如果记录指针指向表中首记录前面,函数返回真(.T.),否则为假(.F.)。

【例】 测试文件记录是否指向文件头。 USE 学生档案.dbf ?

BOF() && 显示结果为:.F. SKIP -1 &&

移动记录指针到上一条记录命令 ? BOF() &&

显示结果为:.T.

7).记录删除测试函数DELETED( )

【格式】DELETED([<工作区号> | <别名>])

【功能】测试指定工作区中表的当前记录是否被逻辑删除。如果当前记有逻辑删除标记,函数返回真(.T.),否则为假(.F.)。

8).记录个数测试函数RECCOUNT( )

【格式】RECCOUNT ([<工作区号> | <别名>])

【功能】返回指定工作区中表的记录个数。如果工作区中没有打开表则返回0。

【例】 USE XY && 假设表中有10条记录

GO BOTTOM

? EOF(),RECNO() && 显示 .F. 10

SKIP

? EOF(),RECNO(),RECCOUNT() && 显示 .T. 11 10

例 题

1.函数INT(RAND()*20)的值是在____范围内的整数。

A. (O, O) B. (O, 20)

C. (20, 20) D. (20, O)

[解析] 本题考查的知识点是INT()和RAND()函数的取值范围。本题中函数RAND()是0到1之间的数,因此INT(RAND()*20)的值是在0到20之间的整数。

[答案] B

2.数学式sin45。写成Visual FoxPro表达式是____。

A.SIN45。 B.SIN(45。)

C.SIN45。 D.SIN(45*PI()/180)

[解析] 本题考查的知识点是数学式与Visual FoxPro之间的转换。本题由于sin()函数中的参数据要求是弧度数。题目中选项A,B,C中都是角度数,所以排除。因此正确答案为D。

[答案] D

3.在Visual FoxPro 中,ABS()函数的作用是____。

A.求数值表达式的绝对值

B.求数值表达式的整数部分

C.求数值表达式的平方根

D.求两个数值表

达式中较大的一个[解析] 本题考查的知识点是函数的使用。在Visual FoxPro 中,ABS()函数的作用是求数值表达式的绝对值。选项

B 中求数值表达式的整数部分的函数是INT();选项C 中求数值表达式的平方根的函数是SQRT();选项D 中求两个数值表达式中较大的一个的函数是MAX()。

[答案] A4.在Visual FoxPro 中,?

ABS(-7*6)的结果是____。

A.-42

B.42

C.13

D.-13

[解析] 本题考查的知识点是ABS()函数的应用。在Visual FoxPro 中,函数的ABS()函数的作用是求数值表达式的绝对值。数值表达式求绝对值之后,其结果是一个正数,所以排除选项A 和D;选项C 中的结果是表达式相加所得结果,而题目中是-7*6,所以选项C 错误。因此正确答案为B。

28

[答案] B

5.函数?INT(53.76362)的结果是____。

A.53.7

B.53.77

C.53

D.53.76362

[解析]本题考查的知识点是INT()函数的应用。在Visual FoxPro中,INT()函数是求数值表达式的整数部分。题目中53.76362的整数部分是53,结果中带有小数的选项都错误。所以正确答案为C。

[答案] C

6.函数?SQRT(9)的运算结果是____。

A.3.00

B.9.00

C.0.00

D.-3.00

[解析] 本题考查的知识点是SQRT()的应用。在Visual FoxPro 中,SQRT()函数是用来求平方根的。本题中9 的平方根是3.00,因此很容易选择选项A。选项B 和C 的值错误,目的是迷惑考生;SQRT()函数的自变量表达式的值不可以为负,因此选项D 错误。 [答案] A

7.函数?SIGN(4-7)的计算结果是____。

A.3

B.-3

C.1

D.-1

[解析] 本题考查的知识点是SIGN()函数的应用。在Visual FoxPro中,SIGN()函数用来返回指定数值表达式的符号,当表达式的运算结果为正负和零时,函数值分别为1、-l、0。本题中SIGN()的返回值只有1、-1、0三个值,由此可知选项A和B错误。题目中4-7等于-3,符号为负,因此选项C错误。因此正确答案为D。

[答案] D

8 . 函数? ROUND(552.30727 , 4) 的计算结果是____ 。

A.552

B.552.307

C. 552.3073

D.552.3072

[解析] 本题考查的知识点是ROUND()的使用。在Visual FoxPro 中,ROUND()函数的格式是ROUND(<数值表达式1>,<数值表达式2>),功能是返回指定表达式在指定位置四舍五入的结果。<数值表达式2>指明四舍五入的位置。如果<数值表达式>大于等于0,那么表示要保留小数位数;如果<数值表达式2>小于0,那么它表示的是整数部分的四舍五入位数。本题中,<数值表达式2>为4,大于0,因此 要保留小数点后面的4 位小数,多余的小数部分四舍五入处理。本题4 个选项中,选项A 没保留小数,因此不正确;选项B 只保留了三位小数,因此不正确;选项C中保留了四位小数,多余的小数四舍五入处理了,因此符合要求,此选项正确;选项D 的错误在于没有四舍五入。

[答案] C

9. 函数 LEN(”计算机等级考试VisualFoxPro”)的计算结果是____。

A.计算机等级考试Visual FoxPro

B.计算机等级考试

C. Visual FoxPro

D.27

[解析] 本题考查的知识点是?LEN()函数的应用。在Visual FoxPro 中,IEN()函数的格式是:LEN(<字符表达式>),功能是返回指定字符表达式值的长度,也就是所包含的字符个数,函数值为

数值型。本题是求字符表达式长度,因此所得结果应为数值。掌握LEN()函数的应用,一目了然选择D。

[答案] D

10.下列函数中,其值不为数值型的是____。

A.LEN()

B.DATE()

C.SQRT()

29

D.SIGN()

[解析]本题考查的知识点是函数返回值的类型。本题选项A 中LEN()用来返回指定字符表达式值的长度函数值为数值型;选项B 中DATE()用来返回当前系统日期,函数值为日期时间型;选项C 中SQRT(),返回指定表达式的平方根,函数值为数值型;选项D 中SIGN()用来返回指定数值表达式的符号。4 个选项中A,C,D 的值都是数值,只有选项B 的值是日期型。因此正确答案为B。

[答案] B

11.下列四个表达式中,运算结果为数值的是____。

A.? CTOD([07/21/02])-20

B.? 500+200=400

C.? “100”-“50”

D.? LEN(SPACE(4))+1

[解析]本题考查的知识点是表达式运算结果的数值类型。字符型常量就是常数。字符型常量也称为字符串,表示方法是用半角括号、双引号或方括号将字符括起来。 选项A 运算结果为07/0l/02,是日期型常量。选项B 运算结果是逻辑型常量,逻辑位为.F.。选项C 结果是10050,是字符型常量, “-”是连接符。选项D 中的SPACE()返回由指定数目的空格组成的字符串,LEN()函数返回指定字符表达式值的长度,函数值为数值型。

[答案] D

12.函数INT(数值表达式)的功能是____。

A.返回指定数值表达式的整数部分

B.返回指定数值表达式的绝对值

C.返回指定数值表达式的符号

D.返回指定表达式在指定位置四舍五入后的结果

[解析]本题考查的知识点是函数的功能。在Visual FoxPro 中,INT()函数的功能是返回指定数值表达式的整数部分。返回选项B 结果的函数是ABS()。返回选项C 结果的函数是SIGN()。返回选项D 结果的函数ROUND()。

[答案] A

13.函数?AT(“读书”,”唯有读书高“)的结果是____。

A.读书 唯有读书高

B.万般皆下品唯有读书高

C.5

D.0

[解析] 本题考查的知识点是AT()函数的使用。

AT()是求子串位置的函数,格式为: AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]如果<字符表达式1>是<字符表达式2>的子串,则返回<字符表达式1>值的首字符在<字符表达式2>值中的位置;若不是子串,则返回0。本题选项<字符表达式1>是<字符表达式2>的子串,位置为5,所以返回5。因此选项A,B,D 都错误,只有选项C 正确。

[答案] C

14.逻辑运算符的优先级顺序依次为____,____,____。

[解析] 本题考查的知识点是逻辑运算符的优先级。在Visual FoxPro 中,逻辑运算符的优先级顺序依次为NOT,AND,OR。

[答案] NOT,AND,OR

15.函数名后要紧跟____,____中是____(即自变量) 没有____的函数称为无参数函数。

[解析] 本题考查的知识点是函数的基本概念。在Visual FoxPro 中,函数名后要紧跟括号,括号中是参数(即自变量),没有“参数”的函数称为无参数函数。[答案] 括号,括号,参数,参数

16.? LOWER(”ABCl23”)的值是____。

[解析] 本题考查知识点是LOWER()函数的使用。在Visual FoxPro 中,LOWER()函数的功能是将指定表达式值中的大写字母转换成小写字母,其他字符不变。所以,ABCDEFl23 转换后应为abcl23, 因此

LOWER(”ABCl23”) 的值应为abcl23 。

[答案] abcl23 17 . ?

UPPER(”welcome 你”)的值是____。

[解析] 本题考查知识点是UPPER()函数的使用。在Visual FoxPro 中,UPPER()函数的功能是将指定表达式值中的小写字母转换成大写字毋,其他字符不变。 所以,“welcome 你”转换后应为“WELCOME 你”,因此,UPPER(”welcome 你”)的值应为“WELCOME 你”。

[答案]WELCOME 你

18.在命令窗口中输入?VARTYPE(”计算机等级考试”)的结果是____。

[解析] 本题考查的知识点是VARTYPE()函数的功能。在Visual FoxPro 中,VARTYPE()函数的格式是:VARTYPE(<表达式>[,<逻辑

30

表达式>]),功能是测试<表达式>的类型,返回一个大写字母(即数据类型)。本题中表达式的数据类型为字符型,字符型数据类型用大写字母“C’’表示,因此VARTYPE(“ 计算机等级考试”) 的结果应该是C 。

[ 答案]C

19.LIKE(”welcome“,”welcome you”)的结果是____。

[解析] 本题考查的知识点是LIKE()函数的使用。LIKE()函数的格式是:LIKE(<字符表达式1>,<字符表达式2>),功能是比较两个字符串对应位置上的字符,若所有对应字符都匹配,函数返回逻辑真(.T.),反之则返回逻辑假(.F.)。本题中的两个字符表达式中,只有“welcome”匹配,所以返回的值应是逻辑假,.F.。[答案] .F.

20. MOD(10,-3)函数的结果是____。

[解析] 本题考查的知识点是?MOD 函数的使用。在Visual FoxPro中,MOD()函数返回两个数值相除后的余数,格式是:MOD(<被除数>,<除数>)。功能是:返回被除数与除数相除后的余数,余数的正负号与除数相同,如果除数与被除数异号,则函数值为两数相除的余数再加上除数的值。本题中,10 除以-3 等于-3 余l,因此余数为-2,因为被除数与除数异号,因此要用余数加上除数的值,即1+(-3),等于-2。所以结果为-2。

[答案] -2 一、单选题

1.在命令窗口中输入下列命令,并按回车键,主屏幕上显示的结果是____。(A)

?{^2004-6-27}

A.06/27/04

B.04/06/27

C.06.27.04

D.06-27-02

2.执行SET EXACT OFF命令后,再执行 ? ”白云蓝天”=”白云“,显示结果是—。(

A..T.

B..F.

C.是

D.非

3.在命令窗口中输入下列两条命令,并按回车键:

SET MARK TO ";"

? {^2004-6-27},{^2005-1-05}

主屏幕上显示的结果是____。(C)

A.04.06.27 05.05.01

B.06.27.04 01.05.05

C.06;27;04 01;05;05

D.06/27/04 01/05/05

4. 下面关于Visual FoxPro 数组的叙述中,不正确的是____。(A)

A.一个数组中各个数组元素必须是同一种数据类型

B.新定义的数组的各个数组元素初值为.F.

C.Visual FoxPro 只支持一维数组和二维数组

D.用DIMENSION命令可以定义数组

5.在命令窗口中输入下列命令: X=4*5 ? X 主屏幕上显示的结果是____。(D)

A.4

B.5

C. X

D.20

6.在命令窗口中输入____命令,主屏幕上将显示“Visual FoxPro 6.0”。(C)

A.?Visual FoxPro 6.0 回车 A)

31 B.? {Visual FoxPro 6.0 } 回车

C.? 'Visual FoxPro 6.0' 回车

D.VisualFoxPro 6.0 回车

7 . 设置当前系统时间是2004 年12 月28 日, 则表达式VAL(SUBSTR(“2004”,2)+RIGHT(STR(YEAR(DATE())),2))+13 的值是____。

(B)

A.388.00

B.418.00

C.398.00

D.288.00

8.8E+9 是一个____。(C)

A.内存变量

B.字符常量

C.数值常量

D.非法表达式

9.下面的Visual FoxPro表达式中,不正确的是____。(A)

A.{^2002-06-29}+DATE()

B. {^2002-06-29}-DATE()

C.{^200206-29}+[200]

D.{^2002-06_29 16:30 PM}-2

10.在Visual FoxPro中,有下面几个内存变量的赋值语句。 (D)

M={^2002-07-01}

N=.F.

X="3.1438372"

Y=16.272

Z=$57632

执行上述赋值语句后,内存变量M、N、X、Y、z的数据类型分别为____。

A.T、L、N、C、Y

B.T、M、N、C、Y

C.D、L、Y、C、Y

D.D、L、C、N、Y

11.?{^2004-6-3}+29 的运算结果是____。(C)

A.07/29/04

B.06/30/04

C. 07/02/04

D.07/30/04

12.函数SQRT(3*SQRT(9))的计算结果是____。(A)

A.3.00

B.2.00

C.1.68

D. –2.00

13.函数? ROUND(3.14159,4)的计算结果是____。(D)

A.3

B.3.14

32 C.1.1415

D.3.1416

14.下列函数中,函数值为字符型的是____。(A)

A.TIME()

B.LEN()

C. DATE()

D.MAX()

15.下面表达式中,运算结果为逻辑真的是____。(D)

A.AT('a','476292')

B.SPACE(2)

C.? MAX(2,3)

D.BOF()

16.下列函数中, 函数值为数值的是____ 。(D)

A . TIME()

B . DATETIME()

C . CTOD('06/28/02')

D.YEAR(DATE())

17.表达式?VAL(SUBS(”数据库”,2))*LEN(‘Visual FoxPro’)的结果是____。(A)

A.0.00

B.19.00

C.20.00

D.21.00

18.输入下列命令,结果是____。(A)

a=.NULL. ? a,ISNUIL(a)

A..NULL. .T.

B..NUlL.

C. .T.

D..NUIL. .F.

19.输入下列命令,结果是____。(D)

X=-43.611 ? "X="+STR(X,6,2)

A.46.61

B.X=46.61

C. -46.61

D.X=-46.61

20.假如当前时间为2004 年6 月30 日上午11 点31 分41 秒,输入下列命令,结果是(C)。 A=DATETME() ? A

A.30/06/04 11:31:41 AM

B.06/30/04 11:31:41 PM

C.06/30/04 11:31:41 AM

D.30/06/04 11:31:41 PM

21.下列四个函数中,结果相同的是(D)。

A.YEAR(DATE())与SUBSTR(DTOC(DATE),7,2)

B.假设 X="我是",Y="中国人",X-Y 与Y-X

33 C.VARTYPE("38+53*2")与VARTYPE(38+53*2)

D.LEFT("Visual FoxPro",6)与SUBSTR("Visual FoxPro",1,6)

二.填空题

1.表达式的形式包括____和____。

(单一的运算对象,由运算符将运算对象连接起来形成的式子)

2.写出下列数学表达式的值。

① 5+3*2^2-7

② 10+4%3-(2*3^2)

② {^2004/12/28}-23

④ "666口口口"+"52口口口"-"我的家"

⑤ 10-18/6+5*8

(10.00,-7,12/05/04,666口口口52我的家口口口,47.00)

3.在Visual FoxPro中,数组在使用之前必须先定义后使用,数组在使用前一般用____或____命令定义。(DIMENSION,DECLARE)

4.在命令窗口中输入____命令,主屏幕上将显示“学习Visual FoxPro的方法”。

(? “学习Visual FoxPro 的方法”,或? ‘学习Visual FoxPro 的方法’,?[学习VisualFoxPro 的方法])

5.函数的一般形式为____—。( 函数名([参数1][,参数2]?) )

6.在Visual FoxPro中,函数的三要素是____。(函数名,参数,函数值)

7.输入? ROUND(56.37272,2),出现的结果是____。(56.37)

8.函数FLOOR()用来返回____。(P69)

(小于或等于指定数值表达式的最大整数)

9.请对下面函数的使用填空。

? ROUND(1.1314925,____)回车,屏幕显示结果为1.1。(1)

10.函数 ?SUBSTR(‘WELCOMM’,4,3)的结果是____—。(COM)

本章小结

本章在笔试试卷中所占分值比例在10分左右,虽然不算太大,但需要提醒考生的是,本章是重中之重,因为它是编程的基础,起着千层大厦之基石的作用,必须认真复习。如果以前学习过FoxBase或FoxPro,要注意它们的联系与区别。函数部分在考试中,直接或间接的考核会占一定分值,大家要通过上机练习,在理解的基础上记忆,而且要做到活学活用。大家在复习函数的时候,一定要加以分类,善于归纳总结。例如可以采用一个“关系”(一个关系就是一个二维表)来帮助记忆,总结项目要有函数类型、函数格式、函数功能、返回值类型等。

表达式是另一个重点。大家可以参照下面所列出的几项,总结在表格中,有助于理解记忆。“表达式类型、表达式格式、可用的运算符、结果及其类型、注意事项”等。而且要注意一些小的知识点,例如:“+”在不同表达式中所起的作用不同,可以作为加法运算(数值表达式中),也可以作为两个字符串的连接符(字符表达式中);也可以用于日期型数据和数值型数据相加,结果为日期型,但是不能用于两个日期型数据。“=”可作赋值命令,也可能是比较运算符。例如A=3=5,其中(从左至右)第一个“=”作为赋值,第二个“=”作为比较运算符。

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

34 大纲要求

VISUAL FOXPRO数据库基础操作

1、 数据库和表的建立、修改与有效性检验:

(1) 表结构的建立与修改。

(2) 表记录的浏览、增加、删除与修改。

(3) 创建数据库,向数据库添加或从数据库删除表。

(4) 设定字段级规则和记录规则。

(5) 表的索引:主索引、候选索引、普通索引、唯一索引。

2、 多表操作:

(1) 选择工作区。

(2) 建立表之间的关联:一对一的关联;一对多的关联。

(3) 设置参照完整性。

(4) 建立表间临时关联。

知识要点

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[数据库文件名|?],

35 如果不指定数据库名称或使用问号都会弹出“创建”对话框请用户输入数据库名称。选项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

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

36

C.DELETE DATABASE

D.CLEAR DATABASE

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

[答案] C

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

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

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

C.彻底删除

D.重命名

[解析] 本题考查的知识点是肋RECYCLE 的功能。利用命令删除数据库文件时,指定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.若干个

37

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

[答案] A

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

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

38

命令的功能是修改数据库;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).逻辑删除

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

39

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 命令错

40

误;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 <逻辑表达式1>] [WHILE <逻辑表达式2>]

41

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

【格式】REPLACE <字段名1> WITH <表达式1> [, <字段名2> WITH <表达式2>] ... [<范围>][FOR <逻辑表达式1>] [WHILE <逻辑表达式2>]

【例】修改职工.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] <[RECORD] <数值表达式1> [IN <数值表达式2> | IN <字符表达式>]

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

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

42

(2).相对定位【格式1】SKIP [<数值表达式1>] [IN <数值表达式2> | <字符表达式>]

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

【说明】

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

【功能】将记录指针移动到表文件的首记录或尾记录 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 命令是按指定条件定位记录位置。

[答案] A

2.在当前表中查找班级为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

43

-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)主索引

44

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

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)菜单方式

① 打开表文件。

45

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

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

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

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

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

(3).索引文件的打开

【格式1】USE <文件名> [INDEX <索引文件名表|?>][ORDER <数值表达式2> | <单索引文件> | [TAG] <标识名> [OF <复合索引文件名>][ASCENDING | DESCENDING]]

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

【说明】:

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

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

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

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

..<数值表达式2>指定主索引的编号,若<数值表达式2>的值为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 <标识名1> [OF <复合索引文件名1>][, <标识名2>

[OF <复合索引文件名2>]] ...

或:DELETE TAG ALL [OF <复合索引文件名>]

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

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

2)单索引文件的删除

【格式】DELETE FILE <单索引文件名>

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

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

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

46

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

USE STUD

DELETE TAG ALL

(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 种索引,分别为主索引、候选索引、惟一索引、普

47

通索引。选项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.在同一索引文件中能包含多个索引方案,或索引关键字

48

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

D.以上答案均正确

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

[答案] D

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

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

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

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

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

[答案] INDEX

10. 在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命令打开一个新的表,同时也就关闭了前面已打开的表。在实际应用中,用户常常需要同时打开多个表文

49

件,以便对多个表文件的数据进行操作。为了解决这一问题,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).关联的概述

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

50

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

(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

51

A.1,2

B.1,1

C.3,l

D.2,1

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

[答案] C

一.选择题

1.Visual FoxPro中的索引有____。(A)

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

B.主索引,视图索引、惟一索引、普通索引

C.主索引,候选索引、视图索引、普通索引

D.主索引,候选索引、惟一索引、视图索引

2.在Visual FoxPro中,主索引用于____。 (B)

A.关键字字段

B.主关键字字段

C.次关键字字段

D.次主关键字字段

3.在浏览器中设置删除标记和取消删除标记的命令是_(B)_。

A.Ctrl+F

B.Ctrl+T

C.Ctrl+Y

D.Ctrl+E

4.在使用逻辑删除命令DELETE [FOR<逻辑表达式>]时,如果用FOR短语指定了逻辑表达式,则____。(A)

A.逻辑删除使该逻辑表达式为真的所有记录

B.逻辑删除使该逻辑表达式为假的所有记录

C.物理删除使该逻辑表达式为真的所有记录

D.物理删除使该逻辑表达式为假的所省记录

5.浏览记录时,按____键查看上一条记录。(C)

A.HOME

B.END

C.PageUP

D.PageDown

6.修改本地视图的命令是____。(A)

A.MODIFY VIEW

B.DELETE VIEW

C.RENAME

D.CREATE SQLVIEW

7.设置字段级规则时,“字段有效性”框的“规则”中应输入____表达式,“信息”框中输入____表达式。(B)

A.字符串、逻辑

B.逻辑、字符串

C.逻辑、由字段决定

D.由输入的字段决定、逻辑

8.假设当前有一个姓名表,将记录指针定位在姓名为“王林”的记录上,应输入的命令是____。(A)

A.SEEK ‘王林’ ORDER 姓名

B.SEEK ‘王林’ TO 姓名

C.SEEK ‘姓名’ ORDER 王林

D.SEEK ‘姓名’ TO 王林

9.在Visual FoxPro中,将当前索引文件中的“姓名”设置为当前索引,应输入的命令是____。(C)

A.SET ORDER 姓名

52

B.SET 姓名

C.SET ORDER TO TAG 姓名

D.SET ORDER ON 姓名

10.Visual FoxPro支持____两种索引文件。(A)

A.单索引文件和复合索引文件

B.单索引文件和主索引文件

C.主索引文件和复合索引文件

D.主索引文件和候选索引文件

11.要删除表中“年龄”字段中的所有值,其他字段值保持不变,应输入____命令。(B)

A.REPL ALL 年龄 WITH 1

B.REPL ALL 年龄 WITH 0

C.REPL ALL 年龄

D.REPL 年龄 ALL

12.Visual FoxPro参照完整性不包括____。(C)

A.更新规则

B.插入规则

C.查询规则

D.删除规则

13.如果要在当前表中新增一个字段,应使用_(A)_命令。

A.MODIFY STRUCTURE

B.APPEND

C.INSERT

D.EDIT

14.要为当前表所有学生的年龄增加2岁,应输入的命令是_(D)_。

A.CHANGEALL 年龄 WITH 年龄十2

B.CHANGE ALL 年龄十2 WITH 年龄

C.REPLACE ALL 年龄十2 WITH 年龄

D.REPLACE ALL 年龄 WITH 年龄十2

15.一个表的全部备注字段的内容存储在____中。(B)

A.不同表备注文件

B.同一表备注文件

C.同一数据库文件

D.不同数据库文件

16.在Visual FoxPro的数据工作区窗口中,使用SET RELATION命令可以建立两个表之间的关联,这种关联是____。(D)

A.任意关联

B.永久性关联

C.根据情况而定

D.临时性关联

17.在Visual FoxPro中设置参照完整性时,当要更改父表中的主关键字段或候选关键字段时,自动更改所有相关子表记录中的对应值,应选择____。(B)

A.忽略

B.级联

C.限制

D.忽略或限制

18.永久关系是数据库表之间的关系,在数据库设计器表现为表索引之间的____。(D)

A.关系

B.联接

C.映射

D.连线

二.填空题

53

1.Visual FoxPro在执行____和____时可以自动打开和选择数据库。 (查询,表单)

2.在关系数据库中,关系也称为____,在FoxBASE和平期的FoxPro中称为____。(表,数据库文件)

3.在Visual FoxPro中, 数据库表字段名最长为____个字符。(128)

4.字段的数据类型决定存储在____的数据类型。(字段中的值)

5.惟一索引中的“惟一性”是指____的惟一,而不是指____的惟一。(索引项,字段值)

6.Visual FoxPro中的表设计器中有____、____、____三个选项卡。(字段、索引、表)

7.在多个字段上的索引称为____。(复合索引)

8.每个表打开后都有两个默认的别名,一个是____,一个是____。(表名本身,工作区所对应的别名)

9.“参照完整性”对话框中的“插入规则”选项卡用于指定____中插入新记录或更新已存在的记录时所用的规则。(子表) 本章小结

本章在考试中所占分值较大,复习时,可以对照教材上机操作,但是以往在辅导过程中,发现很多同学完全就是对照书本机械地进行操作,这样做的意义并不大。正确的实践方法是首先看书,清楚要完成的功能,然后脱离书本上机操作,最后再按照教材进行归纳总结。 本章命令较多,需要大量的实际操作。首先可以使用菜单操作,先熟悉操作和运行环境,再进一步掌握命令的使用。然而编程时用的都是命令,所以对命令必须熟练掌握。

本章的重点是索引、数据的完整性,多工作区。在复习本章的时候,应首先建立一个实际的数据库和若干个表,建议依据自己比较熟悉的主题来建立,例如学生成绩管理系统、工资管理系统,然后加以练习。

第五章 关系数据库标准语言 SQL

大纲要求

关系数据库标准语言 SQL

1、 SQL的数据定义功能:

(1) CREATE TABLE –SQL

(2) ALTER TABLE –SQL

2、 SQL的数据修改功能:

(1) DELETE –SQL

(2) INSERT –SQL

(3) UPDATE –SQL

3、 SQL的数据查询功能:

(1) 简单查询。

(2) 嵌套查询。

(3) 连接查询。

内连接

外连接:左连接、右连接、完全连接

(4) 分组与计算查询。

(5) 集合的并运算。

知识要点

一. SQL 语言的特点

1.综合统一

SQL 语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库应用系统开发者提供了良好的环境。

2.高度非过程化

3.语言简洁,易学易用

4.以同一种语法结构提供两种使用方式既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。

二. SQL 语言的基本概念

SQL 语言支持关系型数据库的三级模式结构。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。基本表是本身独立存在的表,在SQL 语言中一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若

54 干索引,索引存放在存储文件中。

存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意的。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库只存放在视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。考试大论坛

三. 数据定义

数据定义语言DDL 用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。由CREATE、DROP、ALTER 命令组成,完成数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)。

1. 定义(创建)表

【格式】:

CREATE TABLE <表名> (<字段名1><数据类型>;

[(<宽度>[,<小数位数>])][完整性约束];

[NULL | NOT NULL][,<字段名2>?])

【功能】定义(也称创建)一个表。

【例1】创建一个表SC(课程成绩表),它由以下字段组成:学号(C,10);课程号(C,2)。

CREATE TABLE SC(学号 C(10),课程号 C(2))

LIST STRUCTURE

【例2】创建一个表STUD(学生信息表),它由以下字段组成:学号 (C,10);姓名(C,8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);出生日期 (D);是否

团员 (L);备注 (M);照片(G)。

CREATE TABLE STUD(学号 C(10),姓名 C(10),性别 C(2),班级名 C(10),系别代号 C(2),地址C(50),出生日期 D,是否团员 L,备注 M,照片 G)LIST STRUCTURE

2. 修改表

【格式】

ALTER TABLE <表名>[ADD <新字段名><数据类型>[(<宽度>[,<小数位数>])][完整性约束][NULL | NOT NULL]][DROP [完整性约束]][MODIFY <字段名><数据类型>]

【功能】修改表结构。

【说明】ADD 子句用于增加指定表的字段变量名、数据类型、宽度和完整性约束条件;DROP子句用于删除指定的的完整性约束条件;MODIFY 子句用于修改原有的字段变量的值。

【例】在课程成绩表SC 中,增加一个成绩字段变量(N,3)。

ALTER TABLE SC ADD 成绩 N(3)

LIST STRUCTURE

3.删除数据库

【格式】DROP DATABASE <数据库名>

【功能】删除指定数据库的结构和数据。

【说明】谨慎使用。

4. 删除表

【格式】DROP TALBE <表名>

【功能】删除指定表的结构和内容(包括在此表上建立的索引)。

【说明】如果只是想删除一个表中的所有记录,则应使用DELETE 语句。

例题:

1.SQL是______语言。

A.结构化查询

B.数据定义

C.数据操作

D.数据控制

[解析] 本题考查的知识点是SQL语言的基础知识。在Visual FoxPro中,SQL是结构化查询语言。 选项B,C,D说法错误,在Visual FoxPro中有数据定义语言、数据操作语言、数据控制语言。

[答案] A

2.SQL除了具有数据查询的功能外,还有_____。

A. 数据定义

55 B.数据操纵

C. 数据控制

D.以上答案均正确

[ 解析] 本题考查的知识点是SQL语言的作用。在VisualFoxPro中,SQL的功能有四个:数据查询、数据定义、数据操纵、数据控制。因此正确答案为D。

[答案] D

3.下列选项中,不属于数据定义功能的SQL语句是__________。

A.CREATE

B.ALTER

C.SELECT

D.DROP

[解析] 本题考查的知识点是SQL命令动词的作用。选项A用来创建表;选项B用来修改表结构;选项C用来查询;选项D用来删除表文件。在Visual FoxPro中,选项A,B,D都具有数据定义功能,只有选项C具有数据查询的功能。

[答案] C

4.SQL的核心是__________。

A.数据查询

B.数据定义

C.数据操纵

D.数据控制

[解析] 本题考查的知识点是SQL的核心。SQL作为结构化查询语言,其核心是查询。因此正确答案为A。

[答案] A

5.SQL同其他数据操作语言不同,其关键在于_____。

A.SQL是一种过程性语言

B.SQL是一种非过程性语言

C.SQL语言简练

D.SQL的词汇有限

[解析] 本题考查的知识点是SQL不同于其他语言的关键。SQL同其他数据操作语言不同的关键是SQL是一种非过程性语言。通过这一功能用户只需说明做什么,而不用说明怎么做,不用了解数据存储的格式及SQL命令的内部执行过程,就可以方便地对数据库进行操作。选项A的说法错误,选项C和D是SQL语言的特点,但不是SQL语言同其他数据操作语言不同的关键。

[答案] B

6.建立表结构的SQL命令是____。

A.ALTER TABLE

B.DROP TABLE

C.CREAT TABLE

D.CREAT INDEX

[解析] 本题考查的知识点是建立表结构的SQL命令。建立表结构的SQL命令是CREAT TABLE。ALTER TABLE命令的作用是修改表结构;DROP TABLE命令的作用是删除表;CREAT INDEX命令的作用是建立索引。

[答案] C

7.SQL可以_____使用,也可以_____使用。

[解析] 本题考查的知识点是SQL语言的使用方式。SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。

[答案] 直接以命令方式交互,嵌入到程序设计语言中以程序方式

8.在ALTER TABLE中,_____用来添加新字段;_____修改已有字段。

[解析] 本题考查的知识点是ALTER TABLE命令及各子项的作用。在ALTER TABLE命令中,ADD用来添加新字段;ALTER用来修改已有字段。

[答案] ADD ALTER

四、数据操纵

数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为DML:

● 数据查询:寻找所需的具体数据。

● 数据修改:添加、删除和改变数据。

56 数据操纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT(查询)等组成,由于SELECT 比较特殊,所以一般又将它以查询语言单独出现。

1、 插入记录

【格式1】

INSERT INTO <表名> [<字段名表>] VALUES (<表达式表>)

【格式2】

INSERT INTO <表名> FROM ARRAY <数组名> | FROM MEMVAR

【功能】在指定的表文件尾部追加一条记录。格式1 用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。格式2 用数组或内存变量的值赋值给表文件中各字段。

【说明】如果某些字段名在INTO 子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。<字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。<表达式表>:指定要追加的记录各个字段的值。

【例1】在表文件STUD 的末尾追加三条记录。

***用表达式方式追加第一条记录***

INSERT INTO STUD (学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员) ;

VALUES("011110","李中国","男","计0121","01","湖北武汉",{^2005/01/06},.T.)

***用数组方式追加第二条记录***

DIMENSION TA[8]

TA(1)="011103"

TA(2)="李宁"

TA(3)="女"

TA(4)="电0134"

TA(5)="02"

TA(6)="北京赛迪网校"

TA(7)={^2005/01/15}

TA(8)=.T.

INSERT INTO STUD FROM ARRAY TA

***用内存变量方式追加第三条记录***

学号="011202"

姓名="赵娜"

性别="女"

班级名="英0112"

系别代号="03"

地址="广西南宁"

出生日期={^2002/12/14}

是否团员=.F.

INSERT INTO STUD FROM MEMVAR

LIST

2.更新记录命令

【格式】

UPDATE <表文件名> SET <字段名1>=<表达式>

[,<字段名2>=<表达式>?] [WHERE <条件>]

【功能】更新指定表文件中满足WHERE 条件子句的数据。其中SET 子句用于指定列和修改的值,WHERE 用于指定更新的行,如果省略WHERE 子句,则表示表中所有行。

【说明】更新操作又称为修改操作。

【例】将成绩表(SC)中,所有课程号为02 的成绩各加5 分。UPDATE SC SET 成绩=成绩+5 WHERE 课程号="k321"

3.删除记录

【格式】 DELETE FROM <表名> WHERE <表达式>

【功能】从指定的表中删除满足WHERE 子句条件的所有记录。如果在DELETE 语句中没有WHERE 子句,则该表中的所有记录都将被删除。

57

【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记“*”。

【例】删除STUD 表中所有性别为男的记录。

DELETE FROM STUD WHERE 性别=“男”

4. 数据管理

数据管理(也称数据控制)语言是用来管理(或控制)用户的访问权限的。而Visual FoxPro6.0没有这种权限管理。

例 题

1.下列关于INSERT—SQL 的叙述正确的是____。

A.在表尾插入一条记录

B.在表头插入一条记录

C.在表中任何位置插入一条记录

D.可以向表中插入若干记录

[解析] 本题考查的知识点是INSERT 命令的作用。INSERT—SQL 命令的作用是在表尾插入一条记录。选项B,C,D 的说法都错误,INSERT—SQL 命令不能完成B,C,D 指定的要求。

[答案] A

2.DELETE FROM 考生成绩 WHERE 成绩<90 语句的功能是____。

A.物理删除成绩在90 分以下的记录

B.彻底删除成绩在90 分以下的记录

C.删除考生成绩表

D.为表中成绩小于90 分的记录添加删除标记

[解析] 本题考查的知识点是SQL 语句中DELETE 命令的使用。SQL 中的DELETE 命令用于逻辑删除记录,如果要物理删除记录,需要用PACK 命令。选项A 中的物理删除错误。选项B的彻底删除实际就是物理删除,所以错误。选项C 的说法有错误。选项D 的说法正确,因为SQL 中的DELETE 命令用于逻辑删除记录,FROM 用于指定从哪个表中删除记录,本题即从“考生成绩”表中删除;WHERE 用于指定被删除的记录所满足的条件,本题的条件是成绩在90 分以下的记录。

[答案] D

3.SQL 语句中,UPDATE 命令的功能是____。

A.数据更新

B.删除数据

C.建立表

D. 修改表

[解析] 本题考查的知识点是SQL 语句中UPDATE 命令的功能。在SQL 语句中,UPDATE 命令的功能是数据更新。删除数据的命令是DELETE。建立表的命令是CREATE TABLE。修改表结构的命令ALTER TABLE。

[答案] A

4.SQL 语言中,删除表命令是____。

A.DELETE

B.DELETE TABLE

C.DROP

D.DROP TABLE

[解析]本题考查的知识点是删除表的命令。SQL 中删除表的命令是DROP TABLE。DELETE命令用于删除数据。DELETE TABLE 的格式错误。DROP 命令的语法错误。因此正确答案为D。

[答案] D

5.在SQL 语句中,修改表中数据的命令是____。

A.ALTER

B.UPDATE

C.DELETE

D.DISTINCT

[解析] 本题考查的知识点是SQL 中修改表中数据的命令。SQL 语句中修改表中数据的命令UPDATE。

ALTER命令用于修改表结构。DELETE 命令用于删除数据。DISTINCT 命令用于SELECT语句中消除重复出现的记录行。

[答案] B

6.在Visual FoxPro 中,向表中输入记录的命令是____。

[解析]本题考查的知识点是向表中输入记录的命令。在SQL 语句中,向表中输入记录的命令是INSERT。

58

[答案] INSERT

7.在Visual FoxPro 中SQL DELETE 命令是____删除记录,如果要物理删除记录应使用____命令。

[解析] 本题考查的知识点是SQL 中的DELETE 删除命令。在Visual FoxPro 的SQL 中DELETE 命令是逻辑删除记录,如果要物理删除记录应使用PACK 命令。

[答案] 逻辑,PACK

五. SQL 中的数据查询语句数据库中的数据很多时侯是为了查询,因此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT 语句。

1. 基本查询语句

【格式】

SELECT [ALL | DISTINCT] <字段列表> FROM <表>

【功能】无条件查询。

【说明】ALL: 表示显示全部查询记录,包括重复记录。

DISTINCT: 表示显示无重复结果的记录。

【例1】显示STUD(学生信息数据表)中的所有记录。

SELECT * FROM STUD

命令中的*表示输出显示所有的字段,数据来源是STUD 表,表中的内容以浏览方式显示。

【例2】显示STUD(学生信息数据表)中的所有的学号及与之对应的姓名,同时能去除重名。

SELECT DISTINCT 学号,姓名 FROM STUD

【例3】显示SC(课程成绩表)中的所有记录,并将成绩一项乘以0.7。

SELECT 学号,课程号,成绩*0.7 AS 成绩 FROM SC

2. 带条件(WHERE)的查询语句

【格式】

SELECT [ALL | DISTINCT] <字段列表>

FROM <表>

[WHERE <条件表达式> ]

【功能】从一个表中查询满足条件的数据。

【说明】<条件表达式>由一系列用AND 或 OR 连接的条件表达式组成,SQL支持的关系运算符如下:

=、<>、!=、#、==、>、>=、<、<=。

【例1】显示STUD 表中所有男生记录的学号,姓名和性别字段值。

SELECT 学号,姓名,性别 FROM STUD WHERE 性别="男"

【例2】显示STUD 表中出生日期在85-86 年之间的学生的学号,姓名,出生日期。

SELECT 学号,姓名,出生日期 FROM 学生;

WHERE 出生日期 BETWEEN {^1985/01/01} AND {^1986/12/31}

【例3】显示STUD 表中姓李的学生的学号,姓名,出生日期。

SELECT 学号,姓名,出生日期 FROM 学生;

WHERE 姓名 LIKE "l%"

(注:LIKE 是字符匹配运算符,可使用通配符%(表示0-多个字符)、—(表示一个字府))

. SQL 的复杂查询

(1).连接查询

【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处理表与表之间的连接关系。

SELECT [ALL | DISTINCT] <字段列表>

FROM <表1>[,表2?..]

WHERE <条件表达式>

【例1】查询并显示各个学生的学号,姓名,各科成绩及课程名。

SELECT a.学号,a.姓名,b.课程号,c.成绩 ;

FROM STUD a,SC1 b,SC c ;

WHERE a.学号=c.学号 AND b.课程号=c.课程号

【例2】查询并显示各个学生所学课程的情况。

SELECT STUD.学号,STUD.姓名,SC1.课程号 ;

三 : 全国高会考试高级会计实务试卷(二)

案例分析题七(本题15分) 
中兴公司为生产汽车配件的国有企业。该公司原执行《工业企业会计制度》(以下简称“原制度”),经公司管理层决定,自2004年1月1日起执行《企业会计制度》(以下简称“新制度”)。 
按照国家有关规定,国有企业在执行新制度前,应当进行财产清查。清查过程中发现的财产损失及按照新制度规定预计的损失,在“待处理财产损益”科目中分别“按照原制度核查的损失”及“按照新制度预计的损失”进行归集。其中按照原制度核查的损失是指按照原制度已确认但尚未处理的损失及有确凿证据表明已经发生的损失(或收益),按照原制度规定应予确认而未确认的部分,“按照新制度预计的损失”是指按照新制度有关资产减值的规定预计的各项资产减值损失。企业应当执行新制度申请及财产清查的结果等资料报有国有资产监督管理等部门批准,经批准核销的损失按照国家有关规定处理。企业在执行新制度时,应以核销损失后的资产、负债金额作为起点。 
按上述规定,中兴公司于2003年12月对财产进行了清查。清查过程中,发现以下事项: 
(1)公司的存货中包括按定单生产的某特定型号汽车专用齿轮,因在生产过程中对图纸参数输入有误,导致所生产的齿轮全部报废,公司已按设计要求重新生产,并以交付客户,该批报废齿轮的成本为1800万元,残料价值为600万元,相关损失应按原制度记入“待处理财产损益”科目,该公司2003年年报中将该批报废产品仍以其成本1800万元计入存货项目列示。 
公司的存货中另有一批原材料,账面价值为2200万元。因汽车市场更新换代,以该原材料生产的配件组装的汽车整车价格下降,导致该原材料及运用其生产的产成品市场价格下跌。如果将该批原材料加工成产成品,相关产成品的市场价格为3800万元,产成品的估计销售费用及税金为200万元,将该批原材料加工为产成品需投入的成本为1600万元。公司2003年年报中将该批原材料的账面价值2200万元计入存货项目列示。 
(2)公司的应收款项共计10300万元,其中应收账款10000万元(已根据原制度规定按5%计提了50万元坏账准备);应向其他方面收取的其他应收款项300万元(未计提坏账准备)。公司2003年年报中以应收账款10000万元和其他应收款300万元列示,同时列示了对应收账款已计提的50万元坏账准备。 
公司对10300万元的应收款项按新制度进行分析,发现其中1200万元的应收账款预计无法收回;其他应收款项预计有80%无法收回。 
(3)公司的短期投资包括一项账面价值为640万元的股票投资(40万股,每股取得成本为16元)及一项账面价值为300万元的债券投资,公司2003年年报中列示短期投资940万元。 
2003年12月31日,公司短期投资股票的市场价格为每股14元。公司持有的短期债券价格上升至340万元。 
按新制度规定,对短期投资应按成本与市价孰低进行期末计量,并按单项投资计提短期投资跌价准备。 
(4)公司的固定资产中包括一项于2003年12月停用的机器设备,设备原价为400万元,已计提折旧140万元。因技术进步的影响,以该设备生产的产品市场价格急剧下降。如果将该机器设备出售,出售价款为130万元,另需支付10万元税费;如果用于生产产品,估计可能生产的未来现金流量现值为100万元。公司2003年年报中,对该固定资产分别以其原价400万元及折扣140万元计入固定资产及累计折旧项目中列示。 
(5)公司的负债中包括一项2004年12月购入商品产生的应付账款400万元,因债权单位已于2002年注销,该部分应付账款已证实确实无法支付,按照原制度规定,企业对于确实无法支付的债务应计入发生当期的营业外收入、但公司对该事项一直未进行会计处理,其中2003年年报的应付帐款项目中仍包括该400万元。 
(6)中兴公司2003年12月31日进行财产清查之前的资产负债表如下: 
资产负债表(简表) 
编制单位:中兴公司 2003年12月31日 单位:万元 
资产年末数负债和所有者权益年末数流动负债:流动负债:货币资金8000短期借款1200短期投资940应付账款1600应收账款10000应付福利费390减:坏账准备50其他应付款1100其他应收款300流动负债合计4290存货6000长期负债流动资产合计25190长期借款900应付债券3000长期负债合计3900固定资产:所有者权益:固定资产原价3240实收资本8000减:累计折旧1240资本公积4000固定资产净值2000盈余公积3200未分配利润3800所有者权益合计19000资产总计27190负债和所有者权益合计2719

四 : 全国高会考试高级会计实务试卷二

案例分析题七(本题15分)  

    中兴公司为生产汽车配件的国有企业。该公司原执行《工业企业会计制度》(以下简称“原制度”),经公司管理层决定,自2004年1月1日起执行《企业会计制度》(以下简称“新制度”)。  

    按照国家有关规定,国有企业在执行新制度前,应当进行财产清查。清查过程中发现的财产损失及按照新制度规定预计的损失,在“待处理财产损益”科目中分别“按照原制度核查的损失”及“按照新制度预计的损失”进行归集。其中按照原制度核查的损失是指按照原制度已确认但尚未处理的损失及有确凿证据表明已经发生的损失(或收益),按照原制度规定应予确认而未确认的部分,“按照新制度预计的损失”是指按照新制度有关资产减值的规定预计的各项资产减值损失。企业应当执行新制度申请及财产清查的结果等资料报有国有资产监督管理等部门批准,经批准核销的损失按照国家有关规定处理。企业在执行新制度时,应以核销损失后的资产、负债金额作为起点。  

    按上述规定,中兴公司于2003年12月对财产进行了清查。清查过程中,发现以下事项:  

    (1)公司的存货中包括按定单生产的某特定型号汽车专用齿轮,因在生产过程中对图纸参数输入有误,导致所生产的齿轮全部报废,公司已按设计要求重新生产,并以交付客户,该批报废齿轮的成本为1800万元,残料价值为600万元,相关损失应按原制度记入“待处理财产损益”科目,该公司2003年年报中将该批报废产品仍以其成本1800万元计入存货项目列示。  

    公司的存货中另有一批原材料,账面价值为2200万元。因汽车市场更新换代,以该原材料生产的配件组装的汽车整车价格下降,导致该原材料及运用其生产的产成品市场价格下跌。如果将该批原材料加工成产成品,相关产成品的市场价格为3800万元,产成品的估计销售费用及税金为200万元,将该批原材料加工为产成品需投入的成本为1600万元。公司2003年年报中将该批原材料的账面价值2200万元计入存货项目列示。  

    (2)公司的应收款项共计10300万元,其中应收账款10000万元(已根据原制度规定按5%计提了50万元坏账准备);应向其他方面收取的其他应收款项300万元(未计提坏账准备)。公司2003年年报中以应收账款10000万元和其他应收款300万元列示,同时列示了对应收账款已计提的50万元坏账准备。  

    公司对10300万元的应收款项按新制度进行分析,发现其中1200万元的应收账款预计无法收回;其他应收款项预计有80%无法收回。  

    (3)公司的短期投资包括一项账面价值为640万元的股票投资(40万股,每股取得成本为16元)及一项账面价值为300万元的债券投资,公司2003年年报中列示短期投资940万元。  

    2003年12月31日,公司短期投资股票的市场价格为每股14元。公司持有的短期债券价格上升至340万元。  

    按新制度规定,对短期投资应按成本与市价孰低进行期末计量,并按单项投资计提短期投资跌价准备。  

    (4)公司的固定资产中包括一项于2003年12月停用的机器设备,设备原价为400万元,已计提折旧140万元。因技术进步的影响,以该设备生产的产品市场价格急剧下降。如果将该机器设备出售,出售价款为130万元,另需支付10万元税费;如果用于生产产品,估计可能生产的未来现金流量现值为100万元。公司2003年年报中,对该固定资产分别以其原价400万元及折扣140万元计入固定资产及累计折旧项目中列示。  

    (5)公司的负债中包括一项2004年12月购入商品产生的应付账款400万元,因债权单位已于2002年注销,该部分应付账款已证实确实无法支付,按照原制度规定,企业对于确实无法支付的债务应计入发生当期的营业外收入、但公司对该事项一直未进行会计处理,其中2003年年报的应付帐款项目中仍包括该400万元。  
本文标题:全国计算机二级考试-2015年全国计算机二级VFP考试练习
本文地址: http://www.61k.com/1162444.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1