雷锋计算机级考复习资料_第1页
雷锋计算机级考复习资料_第2页
雷锋计算机级考复习资料_第3页
雷锋计算机级考复习资料_第4页
雷锋计算机级考复习资料_第5页
已阅读5页,还剩141页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MicrosoftVisualFoxPro6.0

计算机级考复习资料

计算机科学与技术学院

2006.2

第一章数据库系统概述

(-)数据库系统的几个概念

1、数据:数据是一个广义的概念。在计算机科学中一切能被计算机接收和处理的物理

符号都称为“数据”,如文字、字符、数字、图形、图象、光、电、声音、色彩等。它们是

存储在计算机媒体上的物理符号的集合。数据按性质可以分为模拟数据和数字数据两大类。

模拟数据指在某个区间内连续变化的值。数字数据指离散的值。数据也可以按类型分为数值

型数据(如成绩、价格、工资)和非数值型数据(如姓名、地址、声音、图像)。

2、信息:信息是一个既抽象又复杂的概念,它是一种消息,是数据按有意义的关联排

列的结果。信息通常由意义和符号组成,以文字或声音、图象的形式来表现。从广义上来看,

信息是对数据加工处理后得到的有用知识。信息来源于数据,数据是信息的具体表现形式,

数据是物理性的,信息是观念性的。

【提示】在有些场合并不区分信息和数据,信息处理和数据处理常常指同一个概念。

3、数据处理:把杂乱无章的数据加工成为有意义、有价值的数据的过程,称为“数据处理”。

数据处理的内容主要包括:对数据的收集、存储、分类、统计、查找、传输和维护等。

4、数据管理:按照某种形式对原始数据进行组织、存贮、维护和使用、对数据进行输入、

传输和输出等环节称为“数据管理”。

5、数据库(DB):按一定的组织形式存储在计算机介质上的、能够为多个用户共享的、与应用

程序相互独立的、数据之间相互关联的相关数据的集合,称为“数据库”。数据库在物理上

按一定的组织方式存储介质,在逻辑上按一定的模型结构组成一个整体。

6、实体:指客观存在的并且可以相互区别的事物。实体可以是实际存在的事物,比如,一

个学校;也可以是概念性的事物,比如,-次比赛。

7、实体集:指性质相同的同类实体的集合。比如,所有学校。

8、属性与对象:描述客观事物的实体,分为“对象”和“属性”两大类。如,人、学校、

医院等都属于对象,而属性表示对象的某些特征。比如,•个人的属性有姓名、年龄、文化

程度等;一个学校的属性有学校名、地址、电话、传真等。当给某个特定对象的某个属性取

一个具体的值时,描述该对象的某个属性值的符号就是数据。

9、关键字:能够唯一识别实体集合中每个实体属性的标识。例如,学校的校名就是学校单

位的关键字。

10、数据库管理系统(DBMS):是对数据库中资源进行管理和控制的系统软件,是用户与数据

库的接口,提供用户对数据库进行操作的各种命令。

11、数据库系统(DBS):是指引入了数据库技术、实现有组织、动态地储存大量关联数据,

方便用户访问的计算机系统。数据库系统由数据库、数据库管理系统和应用软件构成。

12、数据库应用系统(DBAS):在数据库管理系统(DBMS)的支持下,为解决实际应用问题而开

发的数据库应用软件,通常有数据库和应用程序组成。

(二)数据管理技术的发展

数据管理技术的发展经历了三个阶段:

1、人工管理阶段

2、文件管理阶段

3、数据库系统阶段”。

(三)数据模型

数据模型指数据库的组织形式,是对数据库中数据之间进行联系的描述。数据模型有三种:

1、层次模型:以树型结构表示实体与实体之间的联系。

2、网状模型:以网状结构表示实体与实体之间的联系。

3、关系模型:以关系(二维表)形式表示实体与实体之间的联系。这种“关系”以文件形

式存储在磁盘上,称为“数据表文件”,其文件扩展名为.DBF。在“二维表”中,表头称为

“表结构”;表格的每一列称为一个“字段”,它是标识实体属性的符号;各字段名构成了

关系的“型”,型是相对稳定的,而表格其余行的具体内容构成了关系的“值”,值是动态

变化的:字段的取值范围,称为该字段的“域”;每一行称为“一条记录”,它是字段值的

集合;每一行有一个序号,称为“记录号”;

关系数据库具有以下特点:

1、一个关系中有唯一确定的字段名,不可重名。

2、关系的每一字段具有相同类型的数据。

3、关系的每一字段是不可分的基本数据项。

4、字段的先后次序,不影响记录的完整性。

5、记录的先后次序,不影响数据库文件内容的完整性。

在关系数据库中具有相同属性的记录的集合构成一个“数据表”;•个或多个数据表的汇集

组成一个“数据库”。隶属于某个数据库的数据表叫“相关表或数据表”,独立存在于任何

数据库之外的表叫“自由表”。

(四)关系运算

1、选择运算(SELECTION):从给定的条件中选取满足条件的记录,即从数据表中进行选行操

作。选择运算提供了一种“横向分割关系”的手段。

2、投影运算(PROJECTION):从给定关系的所有字段中按某种顺序选取指定的字段组,即从

数据表中进行选列操作。投影运算提供了一种“纵向分割关系”手段。

2

3、连接运算(JOIN):根据给定的条件在两个或两个以上的关系中选取部分字段和部分记录

合并生成一个新的关系。

(五)数据库系统的分类

根据数据库中数据用户的多少,分为:

1、单用户数据库:早期的数据库都是单用户系统。

2、多用户数据库:VisualFoxPro是一种多用户数据库系统。Foxbase、Foxpro等也是多

用户数据库系统。多用户数据库的关键是保证数据“并发存取”的正确执行,即允许多个用

户在网络的多个节点上同时使用数据库信息。

根据数据的存放地点,分为:

1、分布式数据库:按“就近存放,就近使用”的原则,将数据库中的数据分别存放在网络

的多个节点上,通过通信线路彼此连接,网络用户在最近的节点上快速、准确地获取信息,

因而避免了所有用户集中访问数据库而造成的网络数据传输量大,传输速度减慢,提高了数

据访问效率。

2、集中式数据库:将数据集中在一个数据库中,所有用户在存取和访问数据时,都要访问

这个数据库。其特点是访问方便、通信量大,但速度慢。

根据数据处理的性质,有智能数据库:传统数据库只能储存常规数据(如文字、数字、图形、

图象、声音等),而智能数据库除了储存常规数据外,还储存了逻辑推理规则。智能数据库

将储存的常规数据作为推理对象,在需要时利用常规数据作出逻辑推理和逻辑判断。

第二章VisualFoxPro6.0系统的基本知识

(一)VisualFoxPro6.0的主要特点

1、有500多条命令,200多个函数,8种SQL型命令,其功能强大,使用灵活。

2、使用“向导”、“生成器”和“设计器”等界面操作工具。

3、”项目管理器”方便用户集中管理数据、文档、类库、源代码等资源。

4、在支持面向结构的程序设计方式(SP)的同时,提供面向对象的可视化程序设计方式(OOP)。

5、通过“对象链接与嵌入(OLE)”技术可以与WORD与EXCEL等微软的其它应用软件共享

数据,实现应用集成。

6、界面的下拉式菜单、图形按钮,设计器的工具栏和弹出式快捷菜单,方便用户采用多种

方法调用各种命令。

7,既可用于单机环境,也可用于网络环境;既可以访问本地计算机,也可以访问和使用远

程视图。

(―)VisualFoxPro6.0的性能指标

1、表文件的最大记录数:10亿条:最大字段数:255个:同时打开表文件的最大数255个。

3

2、一条记录的最多字符数:65500个。

3、数据库表的字段名最大长度:128个字符;自由表的字段名最大长度:10个字符;字符

型字段的最大宽度254个;数值型字段的最大宽度20个。

4、程序文件中命令行最大字符数8192个。

5、内存变量的最大数目:65500个;使用的数组最大数目:65500个;每个数组中数组元素

的最大书数目:65500个。

6、同时打开“浏览”窗口的最大数目:255个。

(三)VisualFoxPro6.0的的界面组成

VisualFoxPro采用图形用户界面,使用窗口(WINDOWS)、图标(ICONS)、菜单(MENUS)与

对话框技术,用户主要通过指点式输入设备(POINTINGDEVICE)鼠标进行操作。VisualFoxPro

界面又称为“WIMP”界面。

菜单:VisualFoxPro主要使用下拉式菜单和弹出式菜单。

选择菜单的两种方式:

(D使用鼠标:

(2)使用键盘:ALT+菜单标题中的下划线字母,代表该菜单的访问键,如ALT+F,表示打开文

件菜单项。CTRL+字母,代表该菜单的快捷键,例如CTRL+C,表示复制。

4.对话框:主要由命令按钮和矩形框两部分组成。命令按钮代表某一种操作。矩形框分为:

文本框、选择框、列表框、组合框和微调控件。

(四)VisualFoxPro的辅助设计工具

1、向导:是一个快速生成各种用户文件的设计工具。用户只需根据向导提示引导就可以设

计出相应的文件。向导的最大特点是“快”,不仅操作简便,而且得出结果也迅速。

2、设计器:设计器可以快速地建立或修改数据表、表单、数据库以及查询和报表等。根据

不同的功能,常用的设计器有:表设计器、查询设计器、查询和视图设计器、数据库设计器、

菜单设计器等。

3、生成器:生成器帮助用户对特定的控件设置属性,或者组合子句创建特定的表达式。生

成器由一个或多个提供一系列简单选项的对话框组成。常用的生成器有表格生成器、列表框

生成器、组合框生成器、复选框生成器、命令按钮组生成器和选项按钮组生成器等。

(五)项目管理器

项目是文件、数据、文档和VisualFoxPro对象的集合,项目文件以.PJX扩展名保存。

(六)VisualFoxPro6.0的文件类型

数据表文件.DBF数据表备注文件.FPT

查询文件.QPR表单文件.SCX

4

报表文件.FRX标签文件.LBX

项目文件.PJX数据库文件.DBC

复合索引文件.CDX内存变量文件.MEM

菜单文件.MNX程序文件.PRG

文本文件.TXT

(七)工作方式与命令格式

1、工作方式

(1)交互方式

(2)程序方式

(3)菜单操作方式

(4)工具操作方式

2、命令格式

VisualFoxPro的命令山命令动词和命令子句构成:

命令动词[范围][FIELDS〈字段名>][FORC条件》/WHILEM条件>][OFF]

命令动词:表示计算机要完成的某种操作。

命令子句:是命令操作对象、操作结果和操作条件。

范围:有四种选择:

ALL对全部记录进行操作。

NEXTN对从当前记录开始的N个记录进行操作。

RECORDN只对记录号为N的一个记录进行操作。

REST对从当前记录开始到最后一个记录进行操作。

FOR〈条件>:对条件为真的记录进行操作。

WHILE〈条件》:从当前记录开始顺序操作,直到条件为假时停止操作。若命令中FOR和WHILE

同时出现,则WHILE优先。

OFF:显示记录时不显示记录号。

第三章VisualFoxPro的数学基础

(一)数据类型:字符型(C)、数值型(N)、浮动型(F)、整数型(I)、双精度型(B)、

逻辑型(L)、货币型(Y)、备注字符型(M)、通用型(G)o

(二)常量:指在程序执行过程中始终保持不变的数值或字符串。常量有数值型、字符型、

日期型、日期时间型、逻辑型和货币型等多种类型。

(三)变量:指在程序或命令执行过程中可以发生变化的量。变量包括:内存变量、字段变

量和系统变量3种。

5

1、内存变量(又分为:简单内存变量和数组内存变量):内存变量是一种存储单元,它独

立于数据表存在,是一种单值变量,用来存放程序执行过程或数据处理过程中的输入量、中

间数据和输出量。内存变量的类型取决于内存变量中存放的数据类型。使用内存变量必须先

定义,后使用。关机断电后,内存变量值消失掉,但可将它预先保存在内存变量文件中(.MEM)。

内存变量的类型有:数值型(N)、字符型(C)、逻辑型(L)、日期型(D)、日期时间型(T)、

屏幕型(S存储当前屏幕数据)等。

C、数组变量

数组:(又叫卜标变量)是一组数组名相同,下标值不同的内存变量。数组中的每一项叫一个

“数组元素”,如:CJ(1),CJ⑵,CJ⑶,……CJ(30)共有30个数组元素。数组元素可以

作为简单变量来处理。

D、关于数组的几点规定:

(1)使用数组要先定义后使用。

(2)数组名的取名规则同简单变量。

(3)数组的下标必须用括号括起来,如A(12),A(2,3);下标值20,下标值可以是常数、

简单变量或N型表达式,下标的下界为1。如果下标值为非整数,系统自动取整。

(4)数组中的数组元素可以是N型、C型、D型、L型数据。VisualFoxPro允许同一一数组

的元素取不同类型。在定义数组时,各数组元素的初值为.F.。

E、一维数组及其说明语句

命令格式:DIMENSION数组名1(N型表达式1)[,数组名2(N型表达式2)……]

[例]DIMEAM(10),BM(4,5)其中:AM是一维数组,含10个元素。BM是二维数组,含20

个元素(4*5=20)。

说明:

(1)DIMENSION语句是说明型非执行语句,它放在程序开头位置。

(2)用DIMENSION语句定义过的数组将在内存中占据一片连续的存储单元。

(3)任何数组都必须先定义后使用。

(4)个数组只能定义一次,除非将其删除后,重新定义,否则重复定义出错。

例如:

1=1

DOWHILEI<=3

DIMEAX(2)出错!数组重复定义了。

1=1+1

ENDDO

6

(5)下标值必须在DIMENSION语句定义的界内,否则下标越界。

例如:

DIMEAX(2)

1=1

DOWHILEI<=3

AX(1)=1出错!数组下标越界了。

1=1+1

ENDDO

F、二维数组及其说明语句

命令格式:DIMEN数组名1(N型表达式1,N型表达式2)[,数组名2(N型表达式1,N型表

达式2),……]

二维数组中数据在内存的存储顺序:先按行下标从小到大依次排列,再按列下标从小到大依

次排列。

[例]DIMEW(2,5),T(5,8)W数组共有2*5个数组元素,T数组共有5*8个数组元素。

G、数组元素的运用

(1)向数组元素赋值

DIMEAM(4),BM(2,2)

STORE20TOAM(2),AM(3),BM(1,2),BM(2,1)

MB(2,2)=.T.

(2)数组元素的计算与赋值

DIMEAM(5)

STORE2TOAM

?AM(1)+AM(2)+AM(3)*AM(4)

H、变量的作用域:

1、公共变量(PUBLIC):具有全局可见性,可以在任何程序层使用或改变其变量值的一类

变量。

2、本地变量(LOCAL):是仅限于在当前程序内部使用或改变其变量值,不能在高层或低层

程序中使用的变量。程序运行结束时,本地变量被释放掉。

3、私有变量(PRIVATE):是在当前程序以及低层程序中可以使用或改变其变量值的变量。

但不影响高层程序变量的定义。在程序中不加作用域的变量,系统默认为私有变量。

(四)字段变量:字段变量是随数据表的建立而存在的一类变量,是构成数据库文件的基本

数据元素,是一种多值变量。关机断电后,字段变量值不消失,保存在表文件中。

7

字段变量的类型有:数字型、字符型、日期型和日期时间型、逻辑型、备注型和通用型.

变量既可作内存变量,也可作字段变量。如果内存变量与字段变量同名时,必须在内存变量

名前加“M->”,即写成:M->变量名,以示区别。

(五)系统变量:VisualFoxPro自动创建和命名的变量。系统内存变量以下划线开头,分

别用于控制外部设备、屏幕输出格式、处理计算器、H历、剪贴板等信息。

(六)运算符:有5种运算符:算术运算符、关系运算符、逻辑运算符、字符运算符、日期

与H期时间运算符。

(七)表达式:有5种表达式:数值型表达式、字符型表达式、关系型表达式、逻辑型表达

式、II期型和II期时间型表达式。

(八)常用函数

函数是一个预先编制好的计算模块,可供VisualFoxPro程序在任何地方调用。

函数由函数名、参数和函数值3个要素组成。其中:

1、函数名:起标识作用;

2、参数:是函数的自变量,书写在括号内,当使用多重函数嵌套时,括号要成对使用;

3、函数值:函数运算后返回的值,称为函数值。

VisualFoxPro的函数分为标准函数和用户自定义函数。

标准函数:是VISUALFOXPRO提供的内部函数,用户只需写出函数名和自变量即可直接调用。

用户自定义函数:是用户自己定义的函数。和标准函数一样,自定义函数也返回一个函数值。

由于自变量具有确定的数据类型,因此,函数返回的值也有确定的数据类型。根据函数的功

能不同,函数可以分为5类。

1、数值型函数

2、字符型函数

3、日期处理函数

4、测试逻辑型函数

5、其它函数

第四章表的基本操作

数据表是一组相关联的数据按多行、多列组成的二维表格,称为表(TABLE)。每个数据

表都有一个表名,-个数据库就是由一个或多个数据表构成的,在数据库中的各个数据表之

间可以存在某种关系。

一个数据表由“表结构”和“数据”两部分构成。

(-)建立表结构可以有以下方式:

8

1、界面操作方式:打开文件菜单f新建子菜单,显示新建对话框后一表f新建文件;在创

建对话框中输入表名(例如:SB.DBF),将其保存在约定文件夹中(工具菜单f选项f文件

位置);使用表设计器设定各字段属性值。

2、命令执行方式:例如,在命令窗口打入命令:CREATEA:\SB

(二)输入表记录

1、字段名右边的“光带”表示该字段的宽度。

2、当光标停在M型或G型字段时,直接按回车表示不输入数据,光标自动移到下一个字段;

如果需要输入M型或G型数据,则按'HOME或'PGDN或用鼠标双击该字段进入字段的编辑

窗口输入数据。

VisualFoxPro除了能处理数字、文本外,还能处理图形、图象、声音等多媒体数据。通

用型字段用于储存多媒体数据,储存由其他应用软件建立的一个电子表格、一个字处理器的

文本、图片等OLE对象。通用型字段的内容存储在.FPT文件中,在记录显示窗口中,备注

型字段数据区标识MEMO,通用型字段标识GEN,存储过内容后GEN的第一个字符变为大写G。

(三)记录指针、工作区及别名

1、记录指针:记录指针是•个存储单元,存放记录在数据文件中的顺序号(即记录号)。

当打开数据表文件时,记录指针总是指向第一条记录的位置。

2、工作区:VisualFoxPro系统为当前正在使用的数据表文件开辟一个内存区。Visual

FoxPro提供了32767个工作区,可以同时打开和使用多个数据表文件,工作区号分别为

1-32767。在在一个工作区内只能打开一个表,各个工作区彼此独立,数据互不干扰。在任

何时刻,操作对象只能占用一个工作区,这个工作区称为“当前工作区”。启动VisualFoxPro

后,系统默认1号工作区为当前工作区。

3、别名:对打开的表文件可以为其取一个别名。别名代表工作区号或数据表名。系统定义

前10个工作区的别名分别为:A、B、C、……EJo如果在当前工作区调用其它工作区中的

数据表字段时,必须使用别名调用格式:工作区号->字段名或:别名->字段名

(四)打开与关闭表

1、使用USE命令打开表

命令格式:USE[〈文件名》]

(1)打开的表中如果含有M型或G型字段,则与之相关的.FPT文件也随之打开,如果与表同

名的备注文件不存在(比如,被删除掉),系统给出错信息,并且该表将不能被打开。

(2)打开表时,文件记录指针总是指向第条记录。

2、使用界面操作方式打开表

(D利用“文件”菜单一选择“打开”一选择表名。

9

注意:如果要修改打开表结构或表记录,应选择打开对话框中“独占”选项,否则,该数据

文件不可修改。

3、关闭表

(l)USE只关闭当前工作区表

(2)CLERAALL关闭所有打开的表,并释放内存变量。

(3)CLOSEALL关闭所有打开的数据库中的表、表单设计器、查询设计器、报表设计器

和项目设计器等,但不释放内存。

(4)CLOSEDATABASE[ALL]关闭指定数据库中的表利自由表。

(5)CLOSETABLES[ALL]关闭当前工作区的自由表,但不关闭数据库中的表。

(6)QUIT关闭所有的数据库中的表、表单设计器、查询设计器、报表设计器和项目设计

器等后退出VisualFoxProo

(7)也可以利用界面操作方式关闭表。

(五)表结构的修改

(D利用表设计器修改表结构:打开表,利用“显示”菜单中的表设计器可以修改表结构。

修改后的表结构按中或“确定”使其为永久性更改,按ESC键或“取消”放弃结构更改。

⑵利用命令修改表结构:MODIFYSTRUCTURE

(3)利用表向导修改表结构:

修改表结构时,应注意几个问题:

1、修改某字段的类型,原数据信息将全部丢失;减少某字段宽度,原数据中超宽的部分将

丢失;删除某字段后,原数据信息将全部丢失。

2、新增加的字段数据全部为空。

3、修改表的结构后,将产生一个扩展名为.BAK的备份文件。

(六)表数据的修改

(D利用界面操作方式浏览记录:

(2)利用命令方式浏览记录

BROWSE

(3)利用命令方式修改记录

CHANG或EDIT

(4)利用一窗两区修改记录:拖动浏览窗口左下角的“窗口分割器”,可以将窗口分为两个

区。用户可以在两个区内对照修改表数据。光标所在的区为活动分区,当活动分区的数据修

改后,另一分区的数据也随之改变。

(5)在浏览窗口追加与删除记录

10

浏览窗口命令BROWE具有浏览、修改、追加、删除等多种功能。

追加:追加分为追加方式、追加新记录和追加记录。

1)追加方式,可以在表的末尾连续追加多条记录;

2)追加新记录,可以在表的末尾追加一条记录(命令:APPEND);

3)追加记录,可以从其它文件向当前表追加批记录(命令:APPENDFROM)。

删除:删除记录分两步进行,先逻辑删除,再物理删除。

1)逻辑删除:给欲删除记录打上删除标记(命令:DELETE),但被逻辑删除的记录并没有真

正从表中清除,它们仍然占有原来的记录位置,可用恢复命令去掉删除标记。

2)物理删除:将有删除标记的记录从表中彻底删除(命令:PACK),它不再占有表记录位置,

且不可恢复。

(七)数据文件的文本格式概念

数据文件扩展名为.TXT。数据文件有两种格式:

1、标准格式:每个记录等长,不同记录中相同数据项也等长,记录之间用回车符分隔,标准

格式的数据无定界符,数据之间无分隔符,用SDF表示标准格式,

2、非标准格式:每个记录不等长,不同记录中相同数据项也不等长,记录之间用回车符分

隔,数据项之间有分隔符。常用的分隔符是逗号。用DELIMITED表示非标准格式。

(A)表与表结构的复制

1、复制任何文件

命令:COPYFILE〈文件名1>TO(文件名2>

(1)若〈文件名1〉是表文件,则该表文件必须处于关闭状态。

(2)〈文件名1〉和〈文件名2>均可使用通配符。

2、从一个表复制得到另一个表或其它文件

命令:COPYTO〈文件名>[范围][FOR/WHILE条件][FIELDS字段名/FIELDSLIKE通配

字段名/FIELDSEXCEPT通配字段名][[TYPE][DELIMITED[WITH〈定界符)/SDF/XLS]]

[例]将“XSCJ”姓名、性别、平均分3个字段复制到“XSPJ.DBF”。

USEXSCJ

COPYTOXSPJFIELDS姓名,性别,平均分

USEXSPJ

[例]将“XSCJ”中的男生学号、姓名、微机基础3个字段和“XSDA”中的该男生的奖惩情况

均复制到XSNX.DBF中。

SELE1

USEXSCJ

11

SELE2

USEXSDA

SELE1

COPYTOXSNXFIELDS学号,姓名,微机基础,B->奖惩情况FOR学号=B->学号

SELE3

USEXSNX

[例]将“XSCJ”中的记录复制得到文本文件。

USEXSCJ

COPYTOXSCJ-BZSDF

TYPEXSCJ-BZ.TXT

COPYTOXSCJ-FBDELI

TYPEXSCJ-FB.TXT

3、表结构的复制

命令:COPYSTRUCTURETO〈文件名>[FIELDS字段名表]

例如:SELE1

USEXSCJ

SELE2

USEXSDA

COPYSTRUTOXSNXFIELDS学号,姓名,A->微机基础,A->数据库

命令执行后,新表名中只有表结构,没有库记录。

4、表结构的显示

(1)命令执行方式:LIST/DISPLAYSTRUCTURE[TOPRINT]

(2)界面操作方式

5、表结构的修改

A、用命令执行方式:MODIFYSTRUCTURE<表文件名〉

(1)修改表的结构后,将产生一个扩展名为.BAK的备份文件。

(2)当表中没有记录时,结构可以任意修改;当表中有记录时,修改某字段的类型,原数

据信息将全部丢失;减少某字段宽度,原数据中超宽的部分将丢失;删除某字段后,原数据

信息将全部丢失。

(3)新增加的字段数据全部为空(C型为空串;N值型为0:I)期型为“//”;L辑型为.F.;

M注型为空串)。

B、用界面操作方式:

12

(l)USE〈表名〉;

⑵打开“显示”菜单,选择“表设计器”。

(九)记录定位

当用USE命令打开表文件时,记录指针总是指向第一条记录。如果需要对指定的记录进行添

加、修改、删除等操作时,必须将记录指针移向指定记录,这一操作叫做“记录定位”。记

录定位分绝对定位与相对定位。

1、绝对定位:[GOTO/GO]<N>或:[GOTO/GO]TOP/BOTTOM

2、相对定位:SKIPEN]

(l)N>0时,指针向下移动N个位置;

(2)N<0时,指针向上移动N个位置;

⑶省略N时,指针向下移动一个位置。

注意:区别文件头(BOF)、文件尾(EOF)、记录首(TOP)、记录尾(BOTTOM)

TOP=BOF+1

EOF=BOTTOM+1

(十)表记录的插入与追加

1、插入新记录:INSERT[BEFORE][BLANK]

[例]在“XSCJ.DBF”中第2号记录前插人一条空记录;在原来2号记录后插入下列记录:

961011037郑军.T.7584927570

USEXSCJ

GO2绝对定位到2号记录

INSERTBEFOREBLANK在2记录前插入一个空记录

G03绝对定位到3号记录,即原来的2号记录

INSERT插入新记录

2、追加新记录:无论表文件中是否有记录,都可以在表尾部追加新记录。

1)INSERT-SQL命令

格式:INSERTINTO表名[(字段名1[,字段名2,……])]VALUES(表达式1[,表达式2,……])

功能:在表尾追加一个新记录,并直接馈入记录数据。

[例]INSERTINTOSB(编号,名称,启用日期,价格,主要设备,备注)VALUES(“100T打

印机”,「1997/08/15},5000.00,.F.,“调拨”)

可以将数组或内存变量的值填入记录中:格式:INSERTINTO表名FROMARRAY数组名/FROM

内存变量

例如:

13

DIMEASD(5)

ASD(l)="98129123”

ASD(2)="李林"

ASD(3)=.T.

ASD(4)=79

ASD(5)=81

INSERTINTOXSCJFROMARRAYASD

2)APPEND命令:APPEND[BLANK]

⑴选择[BLANK],则向表尾部追加一条空记录;省略[BLANK],可以追加若干条记录,或修

改原字段值。

(2)该操作也可以用界面操作方式:选择表菜单,再选择追加新记录命令。

(3)该操作也可以直接用键盘操作命令:X

3)APPENDFROM命令

APPENDFROM〈文件名》[FIELDS〈字段名表》][FOR<条件>][[TYPE][DELIMITED[WITH〈定界

符〉/WITHBLANK/WITHTAB]/SDF/XLS]]

[例]将SB2.DBF中记录的编号、名称字段追加到SB3.DBF尾。

USESB3

APPENDFROMSB2FIELDS编号,名称

说明:该操作用界面操作方式:选择表菜单,再选择追加记录命令。

[例]将XSCJ-WBB.TXT记录以标准数据格式添加到XSCJ.DBF尾。

USEXSCJ

APPENDFROMXSCJ-WBBSDF

(十一)表记录的删除与恢复

1、逻辑删除:DELETE[范围][FOR/WHILE条件]

若省略所有选择项,则只给当前记录作删除标记。

[例]给“XSCJ”库中的最后两条记录作删除标记。

USEXSCJ

GOBOTTOM

DELETE

SKIP-1

DELETE

DELETEALLFOR平均分<60

14

说明:该操作也可以用界面操作方式:选择表菜单,再选择删除记录命令。

2、恢复逻辑删除记录:RECALL[范围][FOR/WHILE条件]

说明:省略所有选择项,则只恢复当前记录。

USEXSCJ

GOBOTTOM

RECALL

RECALLALLFOR性别AND英语>=60

RECALLALLFORLEFT(学号,2)=“99”

说明:可用界面操作方式:选择表菜单,再选择恢复记录命令。

3.物理删除记录:PACK

USEXSCJ

DELETEALL姓名=SPACE(9)

DELETEFOR姓名=“罗林”

PACK

说明:可用界面操作方式:选择表菜单,再选择彻底删除命令。

4.删除所有记录:ZAP

(十二)成批量的替换数据

格式:REPLACE[范围]字段名1WITH表达式1[,字段名2WITH表达式2-[ADDITIVE]]

[FOR/WHILE条件]

功能:对当前表中指定范围内、符合条件的所有记录进行修改,用表达式值替换字段值。

[例]将学生成绩表“XSCJ.DBF”总分和平均分字段值成批量填入。

USEXSCJ

LIST&&总分和平均分的字段值为空

REPLAALL总分旭TH(英语+微机基础+数据库+高等数学+大学语文)

LIST&&总分的字段值已经填入

APPENDBLANK

REPLACE学号WITH“992345098”,姓名WITH“李康”

[例]把学生的学号和家庭住址添加到“XSDA”中的奖惩情况(备注型)中。

USEXSDA

REPLACEALL奖惩情况WITH学号家庭住址ADDI

(十三)表的单个记录与数组的数据传递

1、将表的单个记录传递到数组

15

格式:SCATTER[FIELDS〈字段名表》[MEMO]TO〈数组名》

(1)省缺[FIELDS],则传递除备注型以外的所有字段。选择[MEMO],则传递备注型字段。

(2)使用TO〈数组名),将数据复制到数组元素中,若数组元素多余字段数,则多余的数组

元素仍保持以前的值。若数组元素少于字段数,则系统自动建立数组或自动扩大数组元素个

数,以便接纳数据。

DIMEP(5)

USEXSCJ

SCATTERTOP&&系统自动扩大数组元素个数,以接纳数据。

DISPMEMO

(3)可以将数据复制到一组内存变量中。为了区别与字段变量同名的内存变量,应在内存变

量前加“M.”。

USEXSCJ

GO3

SCATTERMEMVAR&&第3个记录的数据传递到内存变量

?M.学号,M.姓名,M.性别

GO5

SCATTERTOABMEMO&&第5个记录的数据(包括备注型字段)传递到数组AB中。

2、将数组元素值或内存变量值传递到表的单个记录

格式:GATHERFROM〈数组名>/MEMVAR[FIEIDS〈字段名表>][MEMO]

(1)省略[FIEIDS(字段名表>],则按数组元素顺序依次传递到记录的个字段中,否则按字段

名表顺序依次传递。

(2)若数组元素少于库字段数,则多余的字段填空值,若数组元素多余库字段数,则多余的

数组元素被省略。

(3)数组元素与对应字段的数据类型必须一致。

(4)选择[MEMO]传递备注型字段,但不传递通用型字段。

[例]将数组A的数据追加至表文件“SB1”中。

DIMEA(7)

A(1)="9-532”

A(2)="洗衣机"

A(3)={"2001/10/20)

A(4)=9100.50

A(5)="21"

16

A(6)=.F.

USESB1

APPENDBLANK

GATHERFROMA

(十四)表的成批记录与数组的数据传递

1、将表的一批记录传递到数组

格式:COPYTOARRAY〈二维数组名/一维数组名>[FIELDS〈字段名表〉[范围][FOR条件/

WHILE〈条件>]

功能:将当前表指定的一批数据复制到一个二维数组中,但不复制备注型字段。或将当前表

的单个记录复制到一个一维数组中。

⑴省缺[FIELDS],则传递除备注型以外的所有字段。

(2)若命令中指定的数组不存在,系统将自动建立数组。

(3)将当前表的一批数据复制到一个二维数组时,若数组元素多余字段数,则多余的数组元

素仍保持以前的值。若数组元素少于字段数,则多余的数据被忽略。系统不扩大数组元素个

数。

USESB

DIMECT⑵3)

COPYTOARRAYCT

?CT(1,1),CT(1,2),CT(1,3),CT(2,1),CT(2,2),CT⑵3)

屏幕显示:

037-2磨床07/21/90

038-1车床10/12/89

表有6个记录,每个记录有6个字段,但只复制2个记录,每个记录只复制3个字段。可见,

使用该命令时,系统不扩大数组元素个数。

2、将数组元素值追加到记录

格式:APPENDFROMARRAY〈数组名》[FOR〈条件>][FIEIDS〈字段名表》]

功能:将满足条件的数组中行数据按记录依次追加到当前表中。但忽略备注型字段。

(1)数组可以是一维数组或二维数组。二维数组的每一行追加到当前表的一个记录。

(2)省略[FIELDS〈字段名表>],则按数组元素顺序依次传递到记录的个字段中,否则按字段

名表顺序依次传递。

(3)若数组列数少于库字段数,则多余的字段填空值,若数组列数多余库字段数,则多余的

数组元素被省略。

17

(4)数组元素与对应字段的数据类型必须一致。

USESB

APPENDFROMARRAYCT

LIST&&“SB”原来有6个记录,现在有8个记录。

(十五)逻辑表的设置

1、过滤器:过滤器的作用是在进行某种操作时,为了省掉某些命令,将不满足条件的记录

暂时“隐藏”起来,使它们在逻辑上消失。当操作完毕,再撤消过滤器恢复这些记录。

格式:SETFILTERTO[<条件>]

说明:SETFILTERTO表示撤消过滤器。

USEXSCJ

SETFILTERTO平均分〉75AND性别

LIST&&只显示平均分在75分以上的男同学记录

SETFILTERTO&&撤消过滤器

LIST&&显示所有记录

2、字段表:字段表用于限定命令操作有效的字段。

格式:SETFIELDSTO[〈字段名)ALL]

格式:SETFIELDSON/OFF

(1)选择[ALL]表示所有字段均在字段表中。

(2)SETFIELDSON/OFF决定字段表是否有效。当设置字段表时,系统默认为ON,只对字段

表的字段进行操作;当取消字段表时,系统默认为OFF。

[例]对XSCJ.DBF设置字段表,使有效字段为姓名,性别和总分。

USEXSCJ

SETFIELDSTO姓名,性别,总分

LIST&&仅显示3个字段的数据

SETFIELDSOFF

LIST&&显示所有字段的数据

(十六)利用结构化查询语言SQL建立表结构与修改表文件

建立或者修改表结构在程序工作方式中最常用的是CREATETABLE和ALTERTABLE命令。

1、建立表结构命令:CREATETABLE〈表名〉(〈字段名1>〈字段类型〉卜字段宽度>[,〈小数

位数〉]])[,(字段名2>…])

[例]先建立表XS-99.DBF,再利用INSERT-SQL命令追加记录。

CREATETABLEXS-99(学号C(9),姓名C(8),性别L(l),总分N(5,2))

18

LISTSTRU&&表结构列表

INSERTINTOXS-99VALUES(“990590123”,“李林”,.T.,432.50)

INSERTINTOXS-99VALUES(“990590156”,“王虹”,.F.,454.00)

2、为表文件添加新字段命令

ALTERTABLE〈表名〉ADD[COLUMN](字段名X字段类型》[〈字段宽度>[,<小数位数>]]]

[例]在表XS.DBF中添加一个备注型字段“奖惩情况”。

ALTERTABLEXSADD奖惩情况M⑷

3、为表文件删除字段命令

ALTERTABLE〈表名>DROP[COLUMN]〈字段名》〈字段类型》[〈字段宽度>[,<小数位数>]]]

[例]在表XS.DBF中删除一个“总分”字段。

ALTERTABLEXSDROP总分

4、编辑表文件中已有的字段命令

ALTERTABLE〈表名〉ALTER〈字段名〉〈字段类型〉[〈字段宽度>[,<小数位数>]]]

功能:编辑指定表文件中的数据类型、字段宽度、小数位数等。

[例]将表文件XS.DBF中“总分”字段的宽度改为5,小数位数为1。

ALTERTABLEXSTABLE总分(5,1)

5、为指定表文件中已有的字段名更名命令

ALTERTABLE〈表名〉RENAME〈字段名2>TO〈字段名3>

[例]把表文件SB.DBF中的字段“货号”更名为“编号”。

ALTERTABLEXSRENAME货号TO编号

6、删除指定表文件命令:DROP〈表名》

[例]删除表文件SBT.DBF。

DROPSB-1.DBF

第五章排序与索引

排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。

(一)排序:SORTTO(新文件名〉0N〈字段名1>[/A][/D][/C][ASCENDING/DESCENDING][<

范围〉][FOR〈条件"WHILE〈条件>][FIELDS〈字段名表》

说明:

(1)使用一个关键字时,叫“单重排序”;使用多个关键字时,叫“多重排序”。在多重

排序中,关键字有主次之分。在关键字表达式中,主关键字排在前面,次关键字排在后面。

执行排序操作时,先按主关键字排列,当在主关键字出现相同字段值时,再按次关键字排序。

19

(2)关键字段可以是N型、C型或D型,但不能是L型、M型和G型数据。即不可选用备注

型或通用型字段来排序。其中:N型以数值大者为大;C型以拼音顺序A-Z;D型以后面的日

期为大。

(3)〈字段名表》可以包含其他工作区中的表文件字段,但必须使用别名调用格式:工作区

号->字段名;或:别名->字段名;或:别名.字段名。

[例]对表文件“学生.DBF”中的男生按入校总分降序排序,生成新文件“入校总分.DBF”,

且新表中只包含学号、姓名、入校总分3个字段。

USE学生

BROWSE

SORTTO入校总分ON入校总分/DFIELDS学号,姓名,入校总分

USE入校总分

BROWSE

[例]对“教师.DBF”记录中享受政府津贴的教师按姓名升序排序,生成新文件“政府津

贴.DBF”。

USE教师

BROWSE

SORTTO政府津贴ON姓名FOR政府津贴

USE政府津贴

BROWSE

[例]对“XSCJ”表中男生的英语成绩降序排序,当英语成绩相同时按微机基础成绩升序排

序。

USEXSCJ

SORTTOXSCJYWON英语/D,微机基础FOR性别

USEXSCJYW

[例]对“XSDA”库中的女生姓名字段按升序排序。

USEXSDA

SORTTOXSDAXMON姓名FORNOT性别

USEXSDAXM

[例]对“XSDA”库中的出生年月排序。

USEXSDA

SORTTOXSDANYON出生年月

USEXSDANY

20

LIST(后面的II期为大)

(二)索引

索引文件山指向.DBF文件记录的指针构成,这些指针指向表文件中的记录,在逻辑上

按照指定索引关键字排序,索引并不改变表记录的物理顺序,只是与表记录建立一种逻辑关

系。索引和表(.DBF)分别存储在两个文件中。在索引文件中,只包含索引关键字和记录

号两个字段,每个关键字值对应表文件中的一个记录号。索引是一种不可显示文件。

1、索引的分类:索引分为单索引和复合索引。

单索引文件扩展名为.IDX。复合索引文件在使用时必须打开,而且在更新表文件数据时,必

须使其处于活动状态。复合索引文件扩展名为.CDX。

2、根据功能不同,复合索引可以分为主索引、候选索引、普通索引和唯一索引4种类型。

3、永久关系与参照完整性:

永久关系:指表中表之间的•种保存在数据表文件中的关系。在表设计器中可以看到连接两

个表索引之间的关系线。

参照完整性:在永久关系的相关表中,如果只对其中的一个表进行插入、更新或删除操作,

就会影响到数据的完整性。因此,参照完整性属于表表间规则,用于控制数据的一致性。为

了保持参照完整性,可以利用“参照完整性生成器”建立规则,控制记录在相关表中的插入、

更新或删除。

4、索引的建立

(A)命令方式:INDEXON(索引关键字/索引关键字表达式〉TO〈单索引文件名〉/TAG<

索引标识名>[FOR〈条件>][ASCENDING/DESCENDING][UNIQUE/CANDIDATE]

[例]对学生.DBF按入校总分建立单索引文件。

USE学生

INDEXON入校总分TOZF

[例]学生.DBF建立复合索引,其中包含3个索引:

(1)以姓名降序排列,索引标识为普通索引;

USE学生

INDEXON姓名TAGXMDESCENDING&&建立复合索引文件学生.CDX,XM为普通索引标识

(2)以性别升序排列,性别相同时以入校总分升序排列,索引标识为普通索引;

INDEXON性别+STR(入校总分,3)TAGXBZFA

**关键字为性别+STR(入校总分,3),普通索引标识XBZFA加入学生.CDX中

(3)以性别升序排列,性别相同时以出生年月降序排列,索引标识为候选索引。

INDEXON性别-DTOC(出生年月)TAGXBCSDCANDIDATE

21

**XBCSD为候选索引型索引标识,索引标识XBCSD加入学生.CDX

[例]建立索引举例。

USESB

INDEXON名称TOMCIDX&&对名称建立升序排列的普通索引型单索引文件

INDEXON-价格TOJGINDFOR主要设备UNIQUE

&&对价格建立降序排列的唯一索引型单索引文件

[例]建立复合索引,其中包含3个索引:

(D以价格降序排列,索引标识为普通索引;

USESB

INDEXON价格TAGJGDESCENDING建立SB.CDX,JG为普通索引型索引标识

(2)以部门升序排列,部门相同时以价格升序排列,索引标识为普通索引;

INDEXON部门+$丁口(价格,9,2)TAGBMJG

**关键字为部门+STR(价格,9,2),索引标识BMJG加入SB.CDX

(3)以部门升序排列,部门相同时以价格降序排列,索引标识为候选索引。

INDEXONVAL(部门)-价格/1000000TAGBMJG1CANDIDATE

**BMJG1为候选索引型索引标识,索引标识1^1匹1加入$134D乂

(B)菜单方式建立索引

“文件”菜单一“打开”命令一“表”选项一“显示”菜单一表设计器一“索引”选项卡

一“索引名”一“排序”一“类型”一“表达式”一确定。

5、索引的使用和删除

1、使用索引:使用索引必须同时打开表文件和索引文件。一个表文件可以打开多个索引文

件,但任何时刻只有一个索引文件起作用,当前起作用的索引文件称为主控索引文件。只有

主索引文件对表文件才有控制作用,记录指针总是指向主索引文件关键字值的第一个记录

上。

打开索引文件有3种方法:

(1)在建立索引文件的同时,就打开了索引文件。

(2)打开表文件的同时打开索引文件:USE〈表文件名〉/?[INDEX〈索引文件名

表》/?][ORDER[〈数值表达式>]/<单索引文件名》/[TAG]〈标识名〉[OF〈复合索引文件名》]

[ASCENDING/DESCENDING]]]

USE学生INDEX学生ORDERTAGXBXHA

USE学生INDEX学生ORDERTAGXM

(3)打开表文件后再打开索引文件:SETINDEXTO〈索引文件名表》[ADDITIVE]

22

USE学生

SETINDEXTOZF

2.设置主控索引:SETORDERTO[〈数值表达式〉/〈单索引文件名>/[TAG]<索引标识

名>[ASCENDING/DESCENDING]]

SETORDERTO0或SETORDERTO都是取消主控索引文件或主控索引。

[例]为复合索引文件学生.CDX设置主索引。

USE学生

SETORDERTO2&&指定学生.CDX中的索引序号2(即XM)为主控索引。

SETORDERTOXBXUA&&指定学生.CDX中的索引标识XBXHA为主控索引。

SETORDERTOZF&&指定单索引文件ZF.IND为主控索引文件。

3.更新索引REINDEX

USE学生

LIST&&显示有10条记录

APPENDa&追加一条记录

USE

USE学生INDEX学生ORDERTAGXM打开主关键字为姓名的复合索引文件

LIST&&显示有11条记录被索引

USE学生

SETINDEXTOZF&&打开主关键字为入学总分的单索引文件

LIST&&显示只有10条记录被索引

REINDEX

LIST&&显示有11条记录被索引

4.关闭索引文件

关闭索引文件,就是取消索引文件对表文件的控制作用。关闭索引文件有三种方法:

(1)关闭当前索引文件:SETINDEXTO

(2)关闭所有索引文件:CLOSEINDEX

(3)关闭表文件的同时,关闭索引文件:USE

5.删除索引

删除无用的索引标识可以提高数据处理性能

命令:DELETETAGALL/〈索引标识1>[,〈索引标识2>]……

菜单操作方式:“文件”菜单一“打开”命令一“表”选项一“显示”菜单一表设计器一“索

引”选项卡一“索引名”一“删除”。

23

(三)查询

几个与索引相关的函数:

A、记录找到否测试函数FOUND([<工作区号>])

(1)如果记录找到,则函数返回值为.「;否则函数返回值为.F.。

(2)如果指定工作区中的表文件没有打开,则函数返回值为假。

B、求得记录号函数RECNO(O)

若指定工作区中的表文件没有打开,则函数返回值为0。

1、顺序查询LOCATE与CONTINUE命令

[例]在“学生.DBF”中查找姓名为王小平的记录。

USE学生

LOCATEALLFOR姓名="王小平”

DISP

CONTINUE&&屏幕显示:已到定位在范围末尾。

[例]在“教师.DBF”中查找职称是教授的记录。

USE教师

LOCATEALLFOR职称="教授”

DISP

CONTINUE

DISP

CONTINUE&&屏幕显示:已到定位在范围末尾。

[例]在“XSCJ”库中查找“数据库”成绩为79分的记录。

USEXSCJ

LOCATEALLFOR数据库=79

DISP

CONTINUE

DISP

CONTINUE

[例]在“RSDA”中查找40岁以下的副教授。

USERSDA

LOCATEFOR职称="副教授"AND(YEAR(DATE。)-YEAR(出生年月))<40

DISP

CONTINUE

24

2、索引查询

(1)FIND命令

FIND命令可以使用内存变量,如果是C型内存变量,必须宏代换:FIND&〈C型内存变量》;

如果是N型内存变量,则先用STR()函数将其转换为C型内存变量后,再用宏代换。

[例]在学生DBF中查找姓名为王小平的记录。

USE学生

INDEXON姓名TAGXM

FIND王小平

DISP

[例]在学生DBF中查找男同学的记录。

USE学生

INDEXON性别TAGXB

FIND男

LISTFOR性别="男”

[例]使用内存变量示例。

TN=STR(595)

INDEXON入校总分TAGRXZF

FIND&TN

DISPFIELDS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论