dBASE Ⅲ基本语法及规定
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第918页(5647字)
1.数据类型
在第一节中已经指出,关系型数据库中的数据由一个二维表来表示,每一张表代表一种关系。表5.2.2-1表示一个“新生档案”关系表。每一行表示一个记录,每一个记录又由若干字段(列)组成,每个字段对应的名又叫字段名(如表5.2.2-1;含5个字段,各字段名分别为:学号、姓名、出生日期、是否入团、奖惩情况)。字段名由少于10个字母、数字串(不含空格)组成,其中第一个必须为汉字或字母。除第一行字段名外,每个记录的各字段都是一个具体的数据值。在dBASE Ⅲ中定义了字符型、数字型、逻辑型、日期型、记忆型五种数据类型。
表5.2.2-1 新生档案
(1)字符型数据(C型)
是汉字、英文字母、数字、各种含空格的可印刷的文字符号。表5.2.2-1中的姓名字段为C型字段。
(2)数字型数据(N型)
是一个可以进行运算的数据,以N来表示,它是由数字、小数点和正负号组成的,又可分为整数型和小数型两种,在dBASE Ⅲ中允许数字型字最大宽度为19位(含小数点),在表5.2.2-1中的学号字段为N型字段。
(3)日期型数据(D型)
日期型数据用以存放表示日期的数据,如表5.2.2-1的出生日期字段,其形式为“月/日/年”,以D来表示。它只占8位存储空间,因而年只能用2位来表示。
日期型数据是特殊的数据型数据,允许它和一个整数相加减,也允许两个日期型数据相减。
(4)逻辑型数据(L型)
只含两个用于逻辑判断的数值(“真”、“假”)数据,用L表示。其字段宽度仅为1,在输入该字段时,可以用“Y”或“N”来表示,输出则用·T·(真)和·F·(假)来表示,表5.2.2-1中的“是否入团”字段即为L型字段。
(5)记忆型数据(M型)
存放一个宽度最大为10的指针,来指向另一个扩展名为.DBT的文件,用以存入一个长度可变的文字信息。表5.2.2-1中的“奖惩情况”字段即为M型字段。
2.常量及变量
(1)常量
常量是在程序运行中不变化的数据。dBASE Ⅲ中共有四种常量:数字型、逻辑型、字符型、日期型。
字符型常量是用单引号(‘’)、双引号(“”)或方括号([])三种界限符括起来的一串字符,如“ABC”、‘abc’[字符串],但‘ABC’abc’是不合法的,可以用‘ABC“abc”’,替代之。
数字型常量可以是整数或实数。
逻辑型常量只有两个值:真(·T·或·t·)和假(·F·或·f·)。
日期型常量用月/日/年的形式表示。
(2)变量
变量是一种内容可能要发生变化的数据,分为字段变量和存储变量两种。
字段变量用字段名表示,其值即为被处理的记录中对应字段的内容,因而是一种多值变量。
存储变量是独立于数据库文件存在的变量,是一种临时工作区,用来存放常数、中间结果、最终结果,也可以用来控制应用程序的运行,其属性随着存储的数据类型的不同而变化。
(3)存储变量的赋值命令
存储变量的赋值命令如表5.2.2-2所示。
表5.2.2-2 存储变量的赋值命令
(4)存储变量的输出命令
存储变量的输出命令如表5.2.2-3所示
表5.2.2-3 存储变量的输出命令
(5)存储变量的保存、恢复和删除
dBASE Ⅲ提供了一套存储变量的保存、恢复和删除的命令,如表5.2.2-4所示。
表5.2.2-4 存储变量的保存、恢复和删除
(6)全局存储变量和局部存储变量
存储变量可分为全局存储变量和局部存储变量。
所谓全局存储变量即在任何命令和任一级应用程序均可用的变量,是可以用LIST或DISPLAY表示,并可用RELEASE(或CLEAR MEMORY)删除的变量。其命令格式为:
PUBLIC〈存储变量表〉
所谓局部存储变量是除了全局存储变量以外的存储变量,它仅能在应用程序及更低层程序中有效。一旦局部存储变量与更高一层的应用程序的局部存储变量或全部存储变量重名,则用下列命令格式来隐蔽局部存储变量。
PRIVATE[ALL[LIKE/EXCEPT〈成组存储变量组〉]][〈存储变量名〉]
3.表达式
表达式是dBASE Ⅲ中的重要组成部分,它是由运算符、常数、存储变量、字段变量、函数五部分组成,常量与变量已介绍过,函数将在下一部分介绍,这里只介绍运算符。
表达式中的运算符共有四类,它们是:算术运算符、关系运算符、逻辑运算符、字符串运算符。表5.2.2-5给出了dBASE Ⅲ的运算符及各种运算的表达式。
表5.2.2-5 dBASE Ⅲ运算符
在同一个表达式中若出现不同类型运算符时,其优先次序为:
算术运算符和字符串运算符
关系运算符
逻辑运算符
4.命令及函数
dBASE Ⅲ的命令都按照一定的语法格式来定义的,其格式如下:
〈命令名〉[〈范围〉][〈表达式表〉][FOR/WHILE〈条件〉]
其中:
〈命令名〉指每个命令要完成的操作。
〈范围〉指出要对文件中的哪些记录进行操作。可以对第n个记录进行处理(RECORDn),也可以对从当前记录开始的n个记录进行处理(NEXTn),还可以对所有记录进行处理(ALL)。
〈表达式表〉是一组由逗号分开的表达式组。若有该项时,表示对记录中指定字段处理,否则,对整个记录处理。
FOR〈条件〉对所有满足条件的记录处理。
WHILE〈条件〉在指定范围内,条件成立则执行命令,否则命令执行完毕。
例如:SORT TO〈新文件名〉ON〈字段1〉[/A][/D][,〈字段2〉[/A][/D],…][〈范围〉][FOR〈条件〉]
大写字母 表示关键字,用来描述该命令的主要功能。如SORTTO,ON,FOR。
〈〉由用户提供的文件名表达式、字段、条件、内容变量等。
[]可选项命令。
/可选项,但只可选其中之一。
…表示命令中某一类似部分延续下去。
输入命令时,不加〈〉、[]、/等符号。
函数是表达式的主要组成部分,以表达式的形式出现或包含在表达式中,dBASEⅢ提供了36种函数,根据其返回值类型可分为四类:数字型函数、字符型函数、逻辑型函数和日期型函数。用户在使用中一定要注意使用函数本身要求的参数类型及返回值的数据类型。
5.dBASE Ⅲ的文件类型
用户输入的各种数据,都是以文件形式存放于磁盘中的。每一种关系都形成一个文件。dBASE Ⅲ定义了九类文件,分结构式文件和非结构式文件两大类。结构式文件含库文件和素引文件;非结构式文件含命令文件、格式文件、文本文件等等。这九类文件用九种不同扩展名区分其不同的性质和用途,下面依次介绍如下:
(1)数据库文件(.DBF)
这是数据库中最基本的文件,是以记录和字段形式存放数据。在输入数据前.用户应首先定义数据库结构(包括记录中的字段个数、字段名、字段类型、字段宽度等等),之后输入数据。用户可建立和修改数据库文件,并对其中的数据进行检索、排序、统计等。
(2)数据库备忘文件(.DBT)
是用于存放.DBF文件中可变长字段内容的文件。在.DBF文件创建中,只要含MEMO字段,则同名的.DBT文件也打开,它将备忘的内容存于.DBT文件中,而其内容的指针存于.DBT的MEMEO字段中。
每个记录最多可有128个备忘字段,每个字段可包含4000多个字符的数据。
(3)索引文件(.NDX)
这是由INDEX命令对某个库文件排序生成的,用于信息快速查询的一种文件。文件记录顺序不是以数据库文件的物理顺序(即记录顺序号)排列的,而是按某种逻辑顺序(字段内容的顺序)排列的。
(4)命令文件(.PRG)
这是由一连串dBASE Ⅲ命令组成的,完成某一特定任务的应用程序。用户可以用dBASE Ⅲ中的MODIFY COMMAND或EDLIN或WPS来完成,用DO命令启动执行来实现某一功能。
(5)屏幕格式文件(.FMT)
这是由@…SAY,@…GET和NOTE三种命令构成的,用来决定数据输入和显示打印输出格式的文件。它可以用dBASEⅢ的dFORMAT实用程序来完成,也可用编辑方法自行编辑屏幕格式文件。
(6)标签文件(.LBL)
它是由MODIFY LABEL命令编辑的,用于描述LABEL命令显示或打印标签的形式文件。
(7)存储变量文件(.MEM)
这是由SAVE命令保存起来的,含有部分或全部存储变量的文件,一旦需要时,用RESTORE命令恢复到内存中。
(8)报表格式文件(.FRM)
这是由MODIFY REPORT命令建立或修改的,含有用REPORT命令生成报表所需信息的文件。
(9)文本文件(.TXT)
是dBASE Ⅲ与其它软件的接口,可用MS-DOS的DOS命令打印和显示出来,数据库文件的文本文件可以由dBASE Ⅲ的COPY命令建立,也可以用SET ALTERNATE将TPT上的信息以文本形式保存起来,为事后分析事故原因用。