FOXBASE简明教程.docx
《FOXBASE简明教程.docx》由会员分享,可在线阅读,更多相关《FOXBASE简明教程.docx(41页珍藏版)》请在冰豆网上搜索。
FOXBASE简明教程
FOXBASE简明教程
基本概概念
一、信息、数据与数据处理
1数据与信息
为了记载、传送、处理信息,人们使用各种各样的物理符号来表示信息,这些符号及其组合就是数据。
2数据处理
数据处理就是对原始数据的综合加工以导出结果数据(信息)的过程。
/二、数据库与数据库系统
1数据库(DataBase)
数据库是存储在计算机外部存储器上逻辑相关文件的集合。
2数据库管理系统(DBMS)
数据库管理系统是指帮助用户建立、使用和管理数据库的软件系统,简称DBMS(DataBaseManagementSystem)。
DBMS通常由以下三部分组成:
(1)数据描述语言(DDL)用来描述数据库的结构,供用户建立数据库;
(2)数据操作语言(DML)供用户对数据库进行数据查询、统计、存储、维护、输出等操作;
(3)其它管理程序和控制程序,用于公用管理。
3、数据库系统
数据库系统是指采用了数据库技术的完整的计算机系统,简称DBS(DataBaseSystem)。
它主要包括:
计算机的硬件系统、软件系统、数据和用户等四部分。
4关系数据库的三种基本操作
(1)、选择操作(Selection)
(2)、投影(Projection)
(3)、连接(Join)
/三、数据模型
数据库是以一定的组织方式存储在一起的、共享的、独立于应用程序的、相互关联的数据的集合。
这个集合的组织形式称为数据模型,它决定了数据库中数据之间联系的表达方式。
1层次模型
2网络模型
3关系模型
/四.FoxBASE关系数据库管理系统
FoxBASE是美国FoxSoftware公司继Ashton-Tate公司的dBASE系列之后,陆续推出的Fox系列DBMS。
现在国内使用的中西文FoxBASE,是根据西文的多用户版本汉化开发而成的,也有2.00和2.10两种版本。
1FoxBASE的主要特点
(1)FoxBASE和dBASEⅢplus完全兼容。
(2)具有很快的运行速度。
(3)FoxBASE用C语言开发,易于移植和推广。
(4)提供多种运行方式,即可在交互方式下运行,也可在程序方式下运行。
2FoxBASE的组成与运行环境
(1)FoxBASE系统组成
1)MFOXPLUS.EXE该文件是主要运行文件之一,其作用是解释并执行FoxBASE的最常用命令。
2)MFOXPLUS.OVL该文件也是主要运行文件之一,其作用是解释并执行FoxBASE的其它不常用命令。
以上两个文件是运行FoxBASE的必备文件。
3)FOXHELP.HLP该文件是帮助用户学习和使用FoxBASE的。
4)FOXBIND.EXE该文件是将若干个命令文件装配成一个过程文件。
5)FOXPCOMP.COM该文件是将用FoxBASE语言编成的源程序翻译成可执行的目标程序。
(2)、FoxBASE的运行环境
1)硬件环境
·FoxBASE可以在IBMPC/XT以上微机及其兼容机上运行,或在VAX小型机上运行。
·至少要求360K内存空间,内存越大,运行速度越快。
2)软件环境
·DOS操作系统3.10版以上,或UNIX、XENIX操作系统。
·任何一种汉字操作系统。
/五、FoxBASE的文件类型与主要性能指标
1、FoxBASE的文件类型
在汉字FoxBASE系统中文件的类型是以扩展名来区分的,共定义了11种类型的文件。
其中,命令文件(.PRG)、内存文件(.MEM)、文本文件(.TXT)是独立的,而其它各类文件是由库文件(.DBF)派生出来的。
2、FoxBASE的主要性能指标
(1)、与数据库文件有关的技术参数
1)一个数据库文件中可容纳的记录数10亿个
2)一个数据库文件中可容纳的总字节数20亿个
3)一个记录中可容纳的字段数128个
4)一个记录中可容纳的字节数4000个
(2)、与文件操作有关的技术参数
1)可同时打开的不同类型的文件数48个
2)可同时打开的不同数据库文件数10个
?
FOXBASE的语言规则
/一.FoxBASE的数据类型及表示
1.基本数据类型
(1)字符型:
用C表示。
(2)数值型:
用N表示。
(3)逻辑型:
用L表示。
(4)日期型:
用D表示。
(5)备注型:
用M表示。
(6)屏幕型:
用S表示。
2.常数与变量
(1)常数
1)字符型常数
2)数字型常数
3)逻辑型常数
4)日期型常数
(2)、变量
FoxBASE的变量有字段变量和内存变量两种。
1)字段变量
字段变量也叫字段名变量。
2)内存变量
内存变量是一种独立于数据库文件而存在的变量。
3)内存变量值
所有的内存变量只有在赋值后才能使用。
FoxBASE提供了两种为内存变量赋值的方法:
一种是通过"TO〈内存变量〉"子句的命令建立,另一种是赋值命令将数据赋于内存变量。
其格式为:
格式①:
STORE表达式TO内存变量表
格式②:
内存变量=表达式
4)内存变量值的输出
内存变量的值可以通过下列两种形式来显示:
?
/?
?
表达式
/二.FoxBASE表达式
FoxBASE提供了四种类型的表达式,分别是算术表达式、字符表达式、关系表达式和逻辑表达式等。
1、运算符
FoxBASE提供了算术运算符、字串运算符、关系运算符和逻辑运算符四类。
2、表达式
表达式是由同类型的各种数据,如常数、变量、函数通过各种运算符联结起来具有一定意义的式子。
(1)数值表达式:
(2)字符表达式:
(3)关系表达式:
(4)逻辑表达式:
/三.FoxBASE函数及应用
所谓函数,就是针对一些常见问题预先编好的一系列子程序,当应用时遇到此类问题就可以调用相应的函数,也就是执行相应的函数子程序。
函数的一般形式是:
函数名(自变量表)其中函数名是系统规定的,自变量表可以是一个变量或多个自变量,也可以为空,即:
函数名(),此时函数名后面的一对圆括号不能省略。
1、数值运算函数
(1)、求绝对值函数ABS
格式:
ABS(〈数值表达式〉)
(2)、求整函数INT
格式:
INT(〈数值表达式〉)
(3)、四舍五入函数ROUND
格式:
ROUND(〈数值表达式1〉,〈数值表达式2〉)
功能:
按〈数值表达式2〉指定的位数对〈数值表达式1〉的数值进行四舍五入。
(4)、指数函数EXP
格式:
EXP(〈数值表达式〉)
(5)、自然对数函数LOG
格式:
LOG(〈数值表达式〉)
(6)、平方根函数SQRT
格式:
SQRT(〈数值表达式〉)
(7)、取余函数MOD(或称求模函数)
格式:
MOD(〈数值表达式1〉,〈数值表达式2〉)
功能:
取〈数值表达式1〉除以〈数值表达式2〉的余数。
(8)、求最大值函数MAX
格式:
MAX(〈表达式1〉,〈表达式2〉)
功能:
求〈表达式1〉和〈表达式2〉中的大者。
(9)、求最小值函数MIN
格式:
MIN(〈表达式1〉,〈表达式2〉)
2、字符操作函数
(1)、判子字符串函数AT
格式:
AT(〈字符表达式1〉,〈字符表达式2〉)
功能:
求子串位置函数,给出〈字符表达式1〉在〈字符表达式2〉的起始位置数值。
(2)、求子串函数SUB
格式:
SUBSTR〈字符表达式〉,〈起始位置〉[,〈字符个数〉]
功能:
函数在〈字符表达式〉的字符串中,由〈起始位置〉开始取出〈字符个数〉所指定的字符。
(3)、取左子串函数LEFT
格式:
LEFT(〈字符表达式〉,〈数值表达式〉)
功能:
从〈字符表达式〉的字符串的最左边字符开始,返回该字符串的一个子串。
(4)、取右子串函数RIGHT
格式:
RIGHT(〈字符表达式〉,〈数值表达式〉)
(5)、取消前部空格函数LTRIM
格式:
LTRIM(〈字符表达式〉)
(6)、取消尾部空格函数RTRIM和TRIM
格式:
RTRIM/TRIM(〈字符表达式〉)
(7)、宏代换函数&
格式:
&<数值型表达式>[、]
(8)、构造空格串函数SPACE
格式:
SPACE(〈数值表达式〉)
3、日期和时间函数
(1)、求系统日期函数DATE
格式:
DATE()
(2)、求系统时间函数TIME
格式:
TIME()
(3)、求日期中的日子函数DAY
格式:
DAY(〈日期表达式〉)
(4)、求月份数MONTH
格式:
MONTH(〈日期表达式〉)
(5)、求年份函数YEAR
格式:
YEAR(〈日期表达式〉)
(6)、求星期函数DOW
格式:
DOW(〈日期表达式〉)
4、转换函数
(1)、大写字母转换为小写函数LOWER
格式:
LOWER(〈字符表达式〉)
(2)、小写字母转换为大写函数UPPER
格式:
UPPER(〈字符表达式〉)
(3)、字符转换为数值函数VAL
格式:
VAL(〈字符表达式〉)
(4)、数值转换为字符函数STR
格式:
STR(〈数值表达式〉[,〈长度〉][,〈小数位数〉])
(5)、字符转换为日期函数CTOD
格式:
CTOD(〈字符表达式〉)
(6)、日期转换为字符函数DTOC
格式:
DTOC(〈日期表达式〉[,1])
(7)、ASCII码值转换为字符函数CHR
格式:
CHR(〈数值表达式〉)
(8)、字符转换成ASCII码值函数ASC
格式:
ASC(〈字符表达式〉)
5、测试函数
(1)、字符串长度测试函数LEN
格式:
LEN([字符型表达式])
(2)、数据类型测试函数TYPE
格式:
TYPE(〈字符型表达式〉)
(3)、文件测试函数FILE
格式:
FILE(〈文件名〉)
(4)、文件结束测试函数EOF
格式:
EOF([数值型表达式])
(5)、文件起始测试函数BOF
格式:
BOF([数值型表达式])
(6)、检索测试函数FOUND
格式:
FOUND([数值型表达式])
(7)、记录删除测试函数DELETE
格式:
DELETE([数值型表达式])
(8)、记录号测试函数RECNO
格式:
RECNO([数值型表达式])
(9)、记录测试函数RECOUNT
格式:
RECOUNT([数值型表达式])
(10)、记录大小测试函数RECSIZE
格式:
RECSIZE[数值型表达式])
(11)、库文件名测试函数DBF
格式:
DBF([数值型表达式])
(12)、字段数测试函数FCOUNT
格式:
FCOUNT[数值型表达式])
(13)、字段名测试函数FIELD
格式:
FIELD(〈数值型表达式1〉[,〈数值型表达式2〉])
(14)、索引文件函数NDX
格式:
NDX([数值型表达式])
(15)、当前工作区测试函数SELECT
格式:
SELECT()
/四.FoxBASE的命令结构及运行方式
1、命令的分类
FoxBASE命令从使用方式上分为两大类:
(1)交互命令即在圆点方式下能够立即执行的命令;
(2)程序命令只能在程序中以规定的结构形式出现的命令。
2、命令结构
FoxBASE命令的一般结构为:
命令动词短语表在FoxBASE命令中,有许多是对数据文件记录进行操作的命令,其基本结构格式如下:
命令动词[〈范围〉][FIELDS〈字段名表〉][FOR/WHILE〈条件〉][TOPRINT]
命令格式中的符号约定如下:
[]:
可选参数表示符。
〈〉:
必须参数表示符。
常用的短语有下列三个:
(1)范围
①ALL全部记录
②NEXTN从当前记录开始的连续N个记录(包括当前记录在内)。
③REST从当前记录开始到最后一个记录。
④RECORDN记录号为N的一个记录。
(2)条件
①FOR条件使条件为真的那些记录参加操作。
②WHILE条件从当前记录开始到第一个使条件为假的那些记录参加操作,若当前记录就不满足条件,则不操作。
(3)字段
①FIELDS字段名表只操作字段名表中指定的那些字段。
?
数据库文件的建立
/一、数据库文件形式
一个数据库文件由两方面内容组成:
一是库文件的结构,二是库文件中的数据。
建立一个库文件,首先要建立结构,其次再输入数据。
/二、定义库文件结构
就是要指明该文件包含多少个字段,并对每个字段指明字段名,字段类型、字段宽度与小数位数等四个结构参数。
命令格式:
CREATE[〈库文件名〉]
关于字段的定义有如下说明:
(1)输入字段名
(2)输入字段的类型字符型按C(回车键)显示Character,光标移到宽度处。
数值型按N(n)键显示Numeric,光标移到宽度处。
日期型按D(d)键显示Date,自动设长度为8。
逻辑型按L(i)键显示Logical,自动设长度为1。
备注型按M(m)键显示Memo,自动设长度为10。
(3)输入字段宽度
本操作仅对字符型或数值型字段才需要。
(4)输入小数位数
本操作仅对数值型字段才需要。
(5)文件存盘
退出全屏幕编辑返回到FoxBASE系统状态。
存盘有下列三种
方式:
①按^W键
②按^end键
③直接按回车键
(6)备注文件的产生
当定义的字段中含备注型字段时,系统自动产生与库文件同名的备注型文件,扩展名是.DBT。
/三、修改库文件结构
、MODIFYSTRUCTURE
执行该命令后,在屏幕上显示当前库文件的结构信息,提供用户进行全屏幕修改操作。
/四、输入库文件数据
为空文件输入数据有两种方法:
一种是在空文件存盘时直接输入,另一种是用命令方式输入。
在FoxBASE系统状态下,键入下列命令:
APPEND
?
数据库的输出与指针定位
/一、库文件的打开与关闭
使用库文件时首先要将磁盘上的库文件装入内存,称为打开库文件。
使用库文件的过程中,如果对库文件的任何内容进行过编辑或修改,使用结束后,应当将内存中的库文件再存回到磁盘上,称为关闭库文件。
打开与关闭库文件的命令是:
格式:
USE[库文件名][INDEX索引文件表][ALIAS别名]当命令中的三个短语都缺省时,该命令的功能是关闭当前已打开的库文件及其相关的所有文件。
/二、库文件的输出
库文件的输出包括库文件结构的输出和数据记录的输出。
这里的输出指显示或打印。
完成这一功能的命令有LIST和DISPLAY两条。
命令格式1:
LIST[〈范围〉][FOR/WHILE〈条件〉][FIELDS〈字段名表达式〉][STRUCTURE][OFF][TOPRINT]
命令格式2:
DISPLAY[〈范围〉][FOR/WHILE〈条件〉][FIELDS〈字段名表达式〉][STRUCTURE][OFF][TOPRINT]
/三、记录指针的定位
在FoxBASE中,许多操作都是针对指定记录进行的,FoxBASE为每个正在使用的数据库文件设有一个无形的内部记录指针,该指针总是指向某一条记录,这条记录称之为"当前记录"。
系统的所有操作就是针对当前记录进行,指针将随着命令的执行而移动。
在FoxBASE中,对数据操作之前首先要对记录进行指针定位,使其成为当前记录。
FoxBASE提供了三种数据记录指针定位的
方法:
绝对定位、相对定位和条件定位。
命令格式1:
GO/GOTOTOP/BOTTOM/〈数值表达式〉
功能说明:
将记录指针定位于首记录、尾记录或〈数值表达式〉的值所指定的记录。
命令格式2:
SKIP[±〈数值表达式〉]
功能说明:
将记录指针相对当前记录向下(正方向)或向上(负方向)移动数值表达式的值所指定的记录数。
命令格式3:
LOCATE[〈范围〉][FOR/WHILE〈条件〉]
功能说明:
在指定范围内将指针定位于满足条件的第一条记录。
缺省范围选择时,取all,即在所有记录中查找。
/四、内存工作区
1、工作区的概念
FoxBASE系统允许同时打开最多10个库文件进行操作,因此在内存中开辟了10个大小相同的存储区域。
每个区域允许同时打开一个库文件以及与它相关的备注文件和索引文件。
内存中的这
种区域称为工作区。
系统规定工作区有各自的名称和代号:
名称是A~J等10个字母,代号是1~10等10个数字。
但任一时刻只能工作在某一个工作区上,这个工作区称为当前工作区。
只有当前工作区才可以打开库文件,这个库文件称为当前文件。
2、工作区的选择
选择当前工作区使用SELECT命令。
命令格式:
SELECT〈工作区号〉/〈工作区名〉/〈数据库别名〉/O
3、多工作区的操作
对于多个工作区上打开的库文件,只有当前库文件可以进行任意操作,包括增、删、改、编辑,记录指针定位、查找、统计等。
而对于其它已打开的库文件,只能通过字段变量获取当前记录的值参加处理。
而且使用时必须在字段名前增加工作区的说明,其形式为:
工作区名称→字段名或库文件别名→字段名
?
库文件数据的增、删、改
/一、库文件记录的增加
1、插入记录
命令格式:
INSERT[BEFORE][BLANK]
功能说明:
在当前库文件的当前记录的前边或后边插入一条记录。
2、追加记录
命令格式1:
APPEND[BLANK]或F9
功能说明:
由键盘向当前库文件尾部追加新记录或一个空记录。
命令格式2:
APPENDFROM〈另一库文件名〉[FIELDS〈字段名表〉][FOR〈条件〉[TYPE][SDF/DELMITED][WITH〈定界符〉]
功能说明:
(1)从〈另一库文件名〉所指定的磁盘库文件中,将满足条件的记录中按FIELDS短语指定的字段内容追加到当前库文件中。
(2)在APPEND命令中使用了这几个短语,可以实现将文本文件的数据追加到当前库文件中,提供了高级语言文件与数据库文件的接口。
/二、库文件记录的删除
FoxBASE提供了两种删除记录的方式,一种是先加入删除标志,然后再删除,另一种是一次性全部删除。
1、加删除标志命令格式:
DELETE[〈范围〉][FOR/WHILE〈条件〉]
2、恢复记录命令格式:
RECALL[〈范围〉][FOR/WHILE〈条件〉]
3、删除带标志的记录命令格式:
PACK
4、直接删除全部记录命令格式:
ZAP
/三、库文件数据的编辑与修改
1、条件编辑与修改
FoxBASE提供了两条编辑修改数据的命令如下:
命令格式1:
CHANGE[〈范围〉][FIELDS〈字段表〉][FOR/WHILE〈条件〉]
命令格式2:
EDIT[〈范围〉][FIELDS〈字段表〉][FOR/WHILE〈条件〉]
功能说明:
这是两条全屏幕编辑修改数据的命令,它们的功能完全相同。
即在当前库文件中,对指定范围内满足条件记录的规定字段进行显示并允许用户通过键盘修改数据。
2、多记录编辑与修改
多记录编辑与修改命令,是在同一窗口显示17个记录供用户进行全屏幕编辑修改。
命令格式:
BROWSE[FIELDS〈字段名表〉][LOCK〈数值表达式〉][FREEZE〈字段名表〉][NOFOLLOW][NOMENU][NOAPPEND][WIDTH〈数值表达式〉][NOMODIFY]
功能说明:
本命令使用全屏幕编辑键进行编辑修改和控制,其FIELDS短语同CHANGE和EDIT命令。
3、成批替换数据
命令格式:
REPLACE[〈范围〉]〈字段1〉WITH〈表达式1〉[,〈字段2〉WITH〈表达式2〉……][FOR/WHILE〈条件〉]
功能说明:
对当前库文件中指定范围内满足条件的所有记录,用〈表达式〉的值替换〈字段〉中原有的值
?
库文件的排序及索引
/一、库文件的排序
排序也称分类,即按照数据库文件中某个指定字段(称为关键字段)的值,将所有指定的记录重新排列,并生成新的库文件。
命令格式:
SORTTO〈文件名〉ON〈关键字段名1〉[/A][/C][/D][,〈关键字段名2〉[/A][/C][/D]…][〈范围〉][FOR/WHILE〈表达式〉][FIELDS〈字段名表〉]
功能说明:
对已打开的数据库文件按指定的关键字段名排序。
[/A]表示按递增顺序排序,[/D]表示按递减顺序排序,[/C]表示不区分大小写字母,可与[/A]或[/D]连用。
/二、库文件的索引
索引是一种逻辑排序方法。
它不改变当前库文件物理上的排列顺序,而是建立一个与当前库文件相对应的索引表,表中的指针指向原库的对应记录。
这个索引表就称为索引文件。
1、建立索引文件
命令格式:
INDEXON〈关键字表达式〉TO〈索引文件名〉[FOR〈条件〉][UNIQUE]
功能说明:
命令将当前库文件中的数据记录按指定的关键字表达式的值进行逻辑升序排序,排序结果存于索引文件中,并不改变当前库文件中数据记录的物理位置。
该索引文件的扩展名为.IDX。
2、索引文件的打开与关闭
当索引文件刚被建立时,该索引文件被自动打开。
其余索引文件要用命令打开。
命令格式1:
USE〈库文件名〉INDEX〈索引文件名清单〉
功能说明:
在打开库文件的同时打开最多7个索引文件。
命令格式2:
SETINDEXTO〈索引文件名清单〉
功能说明:
在库文件打开之后随时打开索引文件。
索引文件的关闭有以下命令:
命令格式1:
SETINDEXTO关闭当前库文件的全部索引文件
命令格式2:
CLOSEINDEX关闭所有工作区的已打开的索引文件
命令格式3:
CLOSEDATABASE关闭包括索引文件在内的所有数据文件
命令格式4:
CLOSEALL关闭包括索引文件的所有文件
3、设置主索引文件
命令格式:
SETORDERTO[〈数值表达式〉]
功能说明:
指定〈数值表达式〉值确定的索引文件为当前主索引文件。
/三、索引查询
索引查询要比直接查询快得多,其要求是必须对待查询的字段建立索引文件,且打开这个索引文件。
命令格式1:
FIND〈字符串〉/〈数字〉
功能说明:
对已打开的带有索引文件的库文件,查找索引关键字和指定的字符串相匹配的第一个记录。
命令格式2:
SEEK〈表达式〉
SEEK命令可以对任何表达式进行查找,因此说SEEK命令比
FIND命令更灵活和通用。
?
库文件数据的统计
/一、统计记录个数
命令格式:
COUNT[〈范围〉][FOR/WHILE〈条件〉][TO〈内存变量〉]
功能说明:
统计当前库文件中指定范围内满足条件的记录
总数,并可存入指定的内存变量中。
/二、数据求和
命令格式:
SUM[〈范围〉][〈数值表达式表〉][FOR/WHILE〈条件〉][TO〈内存变量表〉]
功能说明:
对当前库文件中指定范围内满足条件的〈数值表达式表〉中列出的数值型字段分别求和,并可将求得的结果存入相应的〈内存变量表〉中。
/三、数据求平均
命令格式:
AVERAGE[〈范围〉][〈数值表达式表〉][FOR/WHILE〈条件〉][TO〈内存变量〉]
/四、分类求和
命令格式:
TOTALON〈关键字段〉TO〈新库文件〉[〈范围〉][FIELD