汉字dBASEⅢ简明用户指南 1992-12-25 基本内容: 一、数据库结构的建立 二、数据的录入与查看 三、数据库的修正 四、数据库的统计、排序、索引与查找 五、报表输出 六、汉字dBASEⅢ命令分类简介 七、汉字dBASEⅢ函数简介  一、数据库结构的建立 建立数据库结构的最基本方法是通过建库命令(CREATE)的执行来实现的。 命令格式:CREATE [盘符:] <文件名> [.dBF] 其中: CREATE_建库命令的动词 盘符_设定磁盘驱动器;缺省时,则计算机自动设定为指定的驱动器。 文件名_待建立的数据库文件名,它由字母、数字、 下划线以及汉字等四类字符所组成,其最大有效长度为8。 ·DBF_库文件的扩展名,用以表明该文件是数据库文件;缺省时,计算机会自动补上。 具体操作步骤: (1):在园点提示符下键入如上格式的建库命令。 (2):按下回车键,此时,计算机会提供建库信息。 (3):按照计算机提供的信息,依次对各字段加以定义,即:分别就其字段名(field name)、类型(type)、宽度(width)、小数(dec)等字段结构项,逐项键入相应的内容。 (4):结束建库,待最后一个字段内容输入完毕,可键入Ctrl-W结束,建库并存盘,也可将光标移到它的下一空字段的起始位置,键入回车键结束建库,再键入回车键存盘且计算机处于等待用户输入数据状态。  二、数据的录入与查看 1:直接输入 用回车键结束数据库结构的建立后,计算机将询问“是否现在就输入记录数据”,此时用户可立即向该数据库输入数据。 具体操作步骤: (1):对计算机的询问回答Yes即键入“Y”。 (2):按照计算机提供的信息,顺次输入各记录的数据。 (3):待最后一个记录输入完毕,且使光标处于它的下一空记录的起始位置,键入回车键结束数据输入,系统回到原点提示符状态。 2:添加式输入 (1):打开数据库文件,键入: use [盘符:] <文件名> (2):添加记录,键入:Append (3):输入数据 (4):结束数据输入。 3:数据库的查看 (1):数据库结构的查看 命令格式:{list/Display} structure [To PRINT] 其中: List或DISPLAY_均为查看命令动词; TO PRINT_打印输出选择项。 (2):数据库记录的查看 命令格式:{list/Display} [OFF] [<范围>] [<字段表>] [{FOR/WHile}<条件>] [TO PRINT] 其中:OFF_显示记录号选择  三、数据库的修正 (一):数据库结构的修正 命令格式:MODIFY STRUCTURE [<文件名>] (二):数据库记录的修正 1:记录的编辑式修正 命令格式: EDIT [IRECORD] <数值表达式>] 2:记录的改变式修正 命令格式:CHANGE [<范围>] [PIELDS <字段表>] [{FOR/WHILE}<条件>] 3:记录的浏览式修正 命令格式:BROWSE [FIELDS <字段表>] 4:记录的替换式修正 命令格:REPLACE [<范围>] [字段1] WITH <表达式1> [,<字段2> WITH <表达式2>].......[,字段n> WITH <表达式n>] [{FOR/WHIE}<条件>] 5:记录的插入式修正 命令格式:WSERT [BLANK] [BEFORE] 其中: BLANK_空记录选择项 BEFORE_位置选择项 (三):多库操作 1、工作区的选取:dBASEⅢ可提供十个不同工作区。 命令格式:SELECT <工作区代号/别名> 其中: SELECT_命令动词 工作区代号_数字1到10,或字母A到J; 别名_已经在指定工作区(即已开启)的数据库文件名。 2:连接两个数据库 命令格式:JOIN WITH <别名> TO <新文件名> FOR <条件> [FIELDS <字段表>] 其中: 别名_在当前工作区以外的指定工作区内已开启的数据库文件名。 3:把另一数据库的信息添加到当前工作区上数据库内。 命令格式:APPEND FROM [盘符:] <源文件名> [{FOR/WHILE}<条件>] 四、数据库的统计、排序、索引与查找 (一):数据库的统计 1.记录计数 命令格式:COUNT [<范围>] [{FOR/WHILE} <条件>] [TO <内存变量表>] 命令功能:统计当前数据库文件中满足条件的记录个数。 2:数值字段求和 命令格式:SUM [<范围>] [<字段表>] [TO <内存变量表>] [{FOR/WHILE} <条件>] 命令功能:对当前数据库文件中指定的数值型字段进行列向求和。 3:求算术平均 命令格式:AVERAGE [<范围>] [<字段表>] [{FOR/WHILE}<条件>] TO [<内存变量表>] 命令功能:对当前数据库文件中指定的数值型字段,求列向算术平均数。 (二):数据库的排序 命令格式:SORT TO <排序数据库文件名> ON [<字段名1> [/A][/D]} [[<,字段名2> [/A][/D].....][<范围>] [FOR<条件>] 其中:命令格式中的排序数据库,是一个按指定字段值大小排序的扩展名仍为.dBF的数据库文件。 任选项/A,/D分别为递升(或称递增)排序和递降(或称递减)排序功能。 命令功能:把当前数据库的文件,按给定字段值排序后送到排序数据库中去。 操作步骤: (1):用use命令打开文件 (2):键入排序命令。 (3):用use开启排序生成的数据库 (4)用LisT/display查看。 (三)、数据库的索引 命令格式:INDEX ON <字段表达式> TO <索引文件> 命令功能:对当前数据库,按指定的字段表达式建立一个索引文件。 操作步骤: (1):用use命令开启要索引排序的当前数据库 (2):用INDEX命令按指定字段表达式进行索引排序,并建立一个新的索引文件 (3):用use命令开启当前数据库和索引文件, 命令格式:use <数据库文件名> INDEX <索引文件名> (4):用list/display命令显示排序结果。 (四):数据库的查找 1.使用LOCATE命令直接查找 (1):打开数据库文件 (2):键入命令:LOCATE [<范围>] FOR <条件> 例:LOCATE ALL FOR 工资=40 (3):计算机会自动将记录指针移到满足条件的第一个记录处用LIST/DISPLAY查看。2:使用FIND命令进行查找 (1):打开数据库文件 (2):按指定字段建立索引文件 (3):打开索引文件:use<数据库文件> INDEX <索引文件> (4):键入:FIND<字符序列> (5):用list/display查看。 3:使用SEEK 命令进行查找 (1):打开数据库及其索引文件 (2):键入:SEEK (表达式) (3):用list/display查看 (五):数据库的特殊操作。 1.按类合并 (1):打开数据库 (2):按指定字段建立索引 (3): TOTAL ON <指定字段> TO <新文件名> 该命令将对数据库的有序文件按指定字段相同的那些记录进行合并。且对数值型字段的列向分组求和。 (4):use<新文件名> (5):查看 2.更新归并 命令格式:UPDATE ON <字段> FORM <工作区号> REPLACE <字段1> WITH < 表达式1> <,字段2> WITH <表达式2>...][RANDOM]命令功能:用工作区号中的文件记录数据去更新归并指定的当前数据库文件记录的数据。  五、报表输出 (一)报表格式文件的建立 (1):用use命令打开要建立报表格式文件的数据库文件 (2):键入:{MODIFY/CREATE} REPORT <报表格式文件名> 例:MODIFY REPORT LL (3):用户逐项回答屏幕的菜单提示,以建立报表格式文件 第一、在菜单提示的第一屏上,先定义报表格式文件的页标题。页标题应填入前4行中,每行最多可填入60个字符(一个汉字占二个字符),然后可以修改报表中页格式的默认值,即页宽、左边界、右边界、每页行数和行距。如不修改默认值可用ENTER键跳过。 第二、在菜单提示的第二屏上应定义栏/小计字段等内容,这些内容是以默认值出现的,若无需改动时,用ENTER键跳过。 第三、在菜单提示的第三屏上是定义报表格式的第一个栏目,如字段内容、小数位置(仅用于数值型字段),字段列标题及字段宽度(也可按给出的默认值处理)。字段或列标题可占用4行,每行最多60个字符,数值标题右对齐,其余为左对齐。 第四、按第三步的方法在第四屏上,定义报表格式的第二个栏目。 按以上步骤直至全部栏目定义完毕为止。 不在菜单提示时,可用的光标控制键有: Ctrl-→ 文件上卷一次。 Ctrl-→文件下卷一次。 Ctrl-U删除一个字段。 →,↓向上或向下移动一行。 PgUp 移到上一屏幕。 PgDn 移到下一屏幕。 ESC 直接退出回到点状态,且不保存修改。 Ctrl-End保存修改后,再回到点状态。 Ctrl-Home菜单选择键。 使用菜单选择键时,将在屏幕的同一行上显示如下提示: TIFLE_转到页标题所在屏幕。 GROUPING_转到分类/小计所在屏幕。 FIRST_转到第一个字段所在屏幕。 MIDDEL_转到报表字段的名字所在屏幕。 LAST_转到报表的最后那个字段所在的屏幕。 APPEND_增加新的报表字段。 SAVE_按报表当前状态保存并回到点状态。 QUIT_放弃对报表的修改,回到点状态。 当用户移动光标到菜单选择键相应位置时,按ENTER键后,即可完成该项提示的功能。 (二):报表格式文件的调用 命令格式:REPORT FORM <报表格式文件名>[<范围>] [FOR<条件>] [TO FILE (文本文件名>] [PLAIN] [HEADLING<字符串>] [NOEJECT] [TO PRINT] 命令功能:调用已建立的报表格式文件供输出用。 (三):标签格式文件的建立与调用 命令格式:{MODIFY/CREATE} LABEL <标签格式文件名> 命令功能:用菜单式的全屏幕编辑命令方式建立一个标签报表格式文件。 命令格式:LABEL FORM <标签格式文件名> [<范围>] [SAMPLE] [TO PRINT] [ FOR/WHILE <条件>] [TO FILE <文件名>] 命令功能:输出标签 六、汉字dBASEⅢ命令分类简介 (一):dBASE的命令结构: 1.dBASE的命令均以命令动词开头,可以允许使用的命令动词在命令表中列出。 2.每条命令中,可以根据需要附加的一些短语。这些短语言之间出现的先后次序,通常都是无关紧要的。 3.每条命令可以允许附加的短语,在命令表中列出;这些短语有些是必选的,有些是任选的。在命令表中,任选的短语均用方括号括起来。如[<范围>]等。 4.命令的最大长度为254。如果一条命令需要多行表示时, 则在每行需要换行处增加一个换行标志符“;”。例如:LIST NEXT 20 FOR 姓名="张三"; 姓名,性别OFF 5.各个短语间均用空白符分隔,这里,一个空白符或若干个连续空白符的作用是相同的。 6.命令中,除字符串内容以外,大小写是不加区分的。 7.命令中的一些关键字可以缩写为四个字符。 (二)、dBASEⅢ命令的分类简介 1.建立文件 COPY_由当前数据库复制出一个新的数据文件。 COPY FILE_复制任何类型的文件。 CREATE_建立新的数据库文件、标签文件和报表文件。 INDEX_建立索引文件。 JOIN_由两个数据库连接出一个新的数据库文件。 MODIFY COMMAND_建立一个命令文件、格式文件或过程文件。 MODIFY LABEL_建立一个标签文件。 MODIFY REPORT_建立一个报表文件。 MODIFY STRUCTURE_改变当前数据库的结构。 SAVE_建立一个内存文件。 SORT_为当前数据库建立一个排序的副本。 TOTAL _为当前数据库建立一个分类合计的副本。 2.编辑数据记录 APPEND_在数据库文件尾部添加数据记录。 BROWSE_在数据库尾部添加数据记录以及以全屏幕方式编辑数据记录。 INSERT_在数据库文件中插入数据记录。 CHANGE_对所说明的数据记录批字段进行编辑。 DELETE_临时注销某些数据记录。 EDIT_修改数据记录。 PACK_吊销那些已临时注销的数据记录。 READ_允许把数据输入到@…GET变量中。 RECALL__恢复那些已临时注销的数据记录。 REPLACE_用指定的值来置换某些数据记录的字段。 UPDATE_更新数据记录。 ZAP_删除当前数据库的所有记录。 3.辅助命令 ASSIST__菜单驱动下,协助执行dBASE命令。 DIR_查看某个驱动器上的文件。 DISPLAY MEMORY_显示内存变量的当前信息。 DISPLAY STATUS_显示当前文件和系统参数信息。 DISPLAY STRUCTURE_显示当前数据库的结构。 HELP_在菜单驱动下,查阅dBASE命令和函数的信息。 4.显示数据(不考虑SET TALK ON/OFF状态) @…SAY_屏幕显示或打印用户格式化数据。 ?_显示一个表达式表。 AVERAGE_显示某些数据记录中表达式的算术平均值。 BROWSE_每幅屏幕最多可显示17个数据记录,其字段及个数取决于屏幕安排。 COUNT_在命令说明的范围内,对数据记录计数。 DISPLAY_显示数据记录和字段。 LIST_将数据记录和字段列表。 REPORT_显示或打印数据库的报表。 SUM_对说明的范围内的数据记录,计算和显示表达式的和。 TEXT_显示命令文件中文本数据块。 5 .数据记录指针的定位 CONTINUE_把记录指针定位到下一个满足LOCATE命令中条件的数据记录上。 FIND_把数据记录指针定位到索引关键字的值和相应字符串相匹配的第一个数据记录上。 GOTO_直接定位所说明的数据记录上。 LOCATE_定位到满足条件的数据记录上。 SEEK_定位到索引关键字值与说明表达式相匹配的第一个数据记录上。 SKP_将数据记录指针向前或向后移动若干个记录。 6.对数据库操作 APPEND FROM_将其它文件中的记录添加到数据库中。 CLOSE_关闭说明的类型文件。 COPY_将当前数据库拷贝到另一个文件中。 ERA_从目录中删除文件。 MODIFY STRUCTRUE_修改数据库的结构。 REINDEX_重建存在的索引文件。 RENAME_为文件重新命名。 SELECT_最多可在10个工作区中打开的文件之间转换。 SORT_根据当前数据库的某一字段建立一个排序的副本。 USE_打开一个数据库文件。 7.操作其它类型文件 MODIFY COMMAND_一个字符处理程序,可编辑一个ASCII文本文件。 CREATE/MODIFY LABEL_编辑标签文件。 CREATE/MODIFY REPORT_编辑报表格式文件。 8.使用内存变量命令 ACCEPT_把字符串存贮到内存变量中。 AVERAGE_把数值表达式的算术平均值存到内存变量中。 CLEAR ALL_为dBASE初始化。 CLEAR MEMORY_清除当前内存变量。 COUNT_将计数存到内存变量中。 DISPLAY MEMORY_显示当前内存变量。 INPUT_把表达式存入内存变量。 READ_允许把数据输入到@…GET变量中。 RELEASE_删除当前内存变量。 RESTORE_恢复已保留的一组内存变量。 SAVE_把当前内存变量保留到一个内存变量文件中。 STORE_把表达式的值存到内存变量中。 SUM_将总和存到内存变量中。 WAIT_内存变量中接收一个字符。 9.用于程序设计的命令 ACCEPT_把字符串输入到内存变量。 CANCEL_结束命令文件的执行。 DO_执行命令文件或过程。 DO WHILE_程序中使用结构循环。 ENDDO_结束一条DO WHILE命令。 DO CASE_程序中执行选择控制。 CASE_选择分支。 OTHERWISE_选择控制中其它分支。 ENDCASE_结束一个选择控制。 EXIT_退出结构循环。 IF_执行条件控制。 ELSE_条件控制中的另一分支。 ENDIF_结束一个条件控制。 INPUT_将表达式输入到内存变量中。 LOOP_跳到结构循环的开始。 MODIFY COMMAND_字处理程序,可对文本进行编辑。 PARAMETER_说明程序使用的选择参数。 PRIVATE_屏蔽高一级命令文件中的内存变量。 PROCEDURE_在过程文件中做为一个过程的开始。 PUBLIC_标识整体变量。 QUIT_关闭所有文件,退出dBASE。 RETURN_结束一个命令文件。 WAIT_暂停一个程序的执行,直到下一次键盘输入为止。 (十)、环境控制(控制环境和外部设备) CLEAR_清屏幕。 EJECT_换页。 SET_设置控制参数的菜单系统。  七、dBASEⅢ函数简介 运用函数可以执行那些用算术、逻辑和字符串运算难于实现或不能实现的操作。dBASEⅢ不仅提供了高级语言中使用的某些一般函数, 而且还提供了许多数据库管理函数,共有三十七个,并可分为五类,即数学运算、字符处理、类型转换、专用测试和日期函数。 1.数学运算函数 (1)自然指数函数(EXP) 格式:EXP(<数值表达式>) 功能:求e^x的值。 (2)取整函数(INT) 格式:INT(<数学表达式>) 功能:求不超过指定表达式的最大整数 (3)自然对数函数(LOG) 格式:LOG(<数值表达式>) 功能:求数值表达式的自然对数。 (4)四舍五入运算函数(ROUND) 格式:ROUND(<数值表达式,i>) 功能:在指定的位数上将数值表达式的值四舍五入。 (5)平方根函数(SQRT) 格式:SQRT(数值表达式) 功能:求给定数值表达式之值的平方根,平方根的位数与给定值的位数相同; 对于负数,SQRT函数给出零作为平方根,故必须防止出现这种情况。 2.字符处理函数 (1)建立空格函数(SPACE) 格式:SPACE(<数值表达式>) 功能:产生指定数目的空格。 (2)查找子串函数(AT) 格式:AT(“<字符串1>”,“<字符串2>”) 功能:查找字符串1在字符串2中的开始位置。 (3)提取子串函数(SUBSTR) 格式:SUBSTR(“<字符串>”,<起始位置> [,<字符数>]) 功能:在指定的字符串中,提取从起始位置开始的若干个字符,如果没有确定字符数,则提取从起始位置开始到字符串末尾的所有字符。 上式指出,如果指定的<起始位置>大于串长,则输出空串。 (4)修整函数(TRIM) 格式:TRIM(“<字符串>”) 功能:去掉字符串末尾的空格。 3.转换函数 (1)把数值型转换成字符型(STR)函数 格式:STR(<数字表达式> [,<长度>] [,<小数位数>] 功能:将一数值表达式转换成字符串。 (2)把小写字母转换成大写字母(UPPER)函数 格式:UPPER(<字符表达式>) 功能:把字符表达式中的小写字母转换成大写字母。 (3)把大写字母转换为小写字母(LOWER)函数 格式:LOWER(<字符表达式>) 功能:将字符表达式中的大写字母转换成小写字母。 (4)把字符转换成ASCII码(ASCII)函数 格式:ASC(<字符串>) 功能:把字符串的第一个字符转换成ASCII码。 (5)把ASCII码转换成字符(CHR)函数 格式:CHR() 功能:把ASCII码转换成字符。 注意:0≤n≤255,且为整数。 (6)把字符转换成数字(VAL)函数 格式:VAL(<字符串>)  功能:将由数字组成的字符序列转换成数值。 注意:VAL函数不能把任意字符串转换成对应的数值。 (7)宏替换函数(&), 4.日期函数 (1)显示系统日期函数(DATE) 格式:DATE( ) 功能:以mm/dd/yy(月/日/年)的形式给出系统日期。 也可将系统日期存放在内存变量MDATE中: (2)年历函数(YEAR) 格式:YEAR(<日期变量>) 功能:从日期变量中分离出年历数值。 (3)月历函数(MONTH) 格式:MONTH(<日期变量>) 功能:从日期变量中分离出月历函数。 (4)求月份的名字(CMONTH) 格式:COMONTH(<日期变量>) 功能:从日期变量中分离出月历的名字。 (5)日历函数(DAY) 格式:DAY(<日期变量>) 功能:从日期变量中分离出日历数值。 (6)时间函数(TIME) 格式:TIME( ) 功能:用hh:mm:ss(时:分:秒)形式显示系统时间。 (7)周日函数(DOW) 格式:DOW(<日期变量>) 功能:由日期变量求周日(即星期几)数值。 (8)求周日的名字(CDOW) 格式:CDOW(<日期变量>) 功能:由日期变量来计算周日的名字。 (9)日期转换成字符型函数(DTOC) 格式:DTOC(<日期变量>) 功能:把日期型变量转换成字符型变量。 在建立索引文件时,如果索引字段是日期型,就可用该函数将它转换成字符型。 (10)字符型转换成日期型 格式:CTOD(<字符串>) 功能:把字符型转换成日期型。 CTOD函数只能把形如mm/dd/yy(月/日/年)的字符串转换成日期型, 并非任何形式的字符串都能转换。 5.专用测试函数 (1)数据类型测试函数(TYPE) 格式:TYPE(“<表达式>”) 功能:测试给定的表达式的数据类型。若表达式的数据类型是字符型,则函数值为C;若表达式的数据类型是数值型、逻辑型、日期型和备注型,则函数依次为N、L、D、M;若给出的表达式事先未定义,则函数值为U。 (2)文件开始检测函数(BOF) 格式:BOF( ) 功能:判断记录指针是否处于数据库文件的第一个记录。若是,则BOF( )为真(.T.), 否则为假(.F.) BOF函数主要用于逆序读文件(即从文件的尾部记录读到第一个记录)的处理中,用以判断文件是否处理结束。 (3)文件结束检测函数(EOF) 格式:EOF( ) 功能:判断文件是否结束。如果记录指针指向数据库文件末尾的下一个空白记录, 则EOF( )的值为真(.T.),否则为假(.F.)。 (4)光标当前行测定函数(ROW) 格式:ROW( ) 功能:判定光标的当前行位置。 (5)光标当前列测定函数(COL) 格式:COL( ) 功能:测定光标的当前列位置。 (6)文件是否存在检测函数(FILE) 格式:FILE(“<文件名>”) 功能:检测给定的文件名是否已经存在。如果存在,则函数值为真,否则为假。 但是,FILE函数对于一个打开的数据文件,其值总是为假,故应先关闭待检文件,后检测。 (7)字符串长度测定函数(LEN) 格式:LEN(<字符串>) 功能:测定字符串中字符的个数。 (8)打印机当前行测定函数(PROW) 格式:PROW( ) 功能:判定打印机当前行位置。 (9)打印机当前列测定函数(PCOL) 格式:PCOL( ) 功能:判定打印机当前列位置。 (10)当前记录号测定函数(RECNO) 格式:RECNO( ) 功能:测定活化数据库文件的当前记录号码。 如果数据库文件中无记录,那么RECND( )的值为1,并建立文件结束标志(即EOF( )的值为.T.). (11)测定记录是否加注删除标志函数(DELETED) 格式:DELETED( ) 功能:判断当前记录是否加注删除标志(*),若有删除标志,则DELETED( )的值为真,否则为假。