1、第三章 表的建立与管理,表的建立,二维表的组成 表文件的组成 表文件结构的设计规则 表文件结构的建立 表文件的数据输入 表文件的打开 表文件的关闭,一个表,学生登记表学 号 姓 名 性别 出生日期 专 业 自费 入学总分 备注 901001 张 明 男 10/12/72 计算机 .F. 560.0 902005 刘金玲 女 02/08/72 金融 .F. 480.0 901050 高 亮 男 05/26/71 计算机 .F. 555.0 902120 张至平 男 05/26/71 金融 .F. 530.0 901800 刘莉莉 女 11/11/72 计算机 .F. 545.0 903003 郑
2、 娟 女 12/01/72 财会 .F. 545.0 904506 李 刚 男 01/03/72 投资 .F. 480.0 902050 赵 一 男 07/25/73 金融 .F. 530.0,宽度,字段名,小数位数,字段类型: N、C、D、L、M、F、G,结构,内容,3.1 表文件的建立,表文件,定义:以文件形式存储在存储介质上二维表。组成,结构:相对固定,内容:随数据更新而变化,返回,表文件结构的设计规则,字段名:以字母或汉字开头,由字母 、汉字、数字和下划线组成,中间不能含有空格,长度不超过10个字符 字段类型:即字段值的数值类型 字段宽度 小数位数 表文件名:以字母或汉字开头,由字母
3、、汉字、数字和下划线组成,长度不超过8个字符,返回,表文件的建立,一、表文件结构的建立 1.菜单方式:“FILE”-“NEW”2、命令方式,直接建立:CREATE |?,返回,二、数据的输入,立即输入 使用菜单方式输入:Record-Append命令方式追加:注:备注字段的输入按CTRL+PGDN或用鼠标双击MEMO,追加记录:APPEND BLANK,追加文件:,返回,三、表的打开,1、菜单方式:File-open 2、命令方式格式: USE |? 功能: 将所指定的数据库文件从磁盘读入内存,返回,四、表文件的关闭,菜单方式:窗口-数据工作期-关闭 打开一个新文件的同时,关闭先前打开的文件
4、Use:关闭当前工作区中的表文件 Close database:关闭所有工作区中的所有数据库文件,并选择当前工作区为1 Close all :关闭所有工作区中的所有类型文件,并选择当前工作区为1 Clear all:释放内存中所有的变量和数组,关闭所有打开的文件,但不释放系统内存变量,返回,1、显示表结构 命令方式:LIST STRUCTURE TO PRINTER |TO FILE文件名 DISPLAY STRUCTURE TO PRINTER|TO FILE 功能:显示当前表的结构 LIST STRUCTURE与DISPLAY STRUCTURE的区别: LIST STRUCTURE为连续
5、显示, DISPLAY STRUCTURE为分屏显示,五、表结构的显示、修改与复制,2、修改表结构,菜单方式:显示-表设计器 命令方式:Modify structure 功能:修改当前表文件的结构,3、表文件结构的复制,命令方式: copy structure to fields 功能:根据当前表文件结构复制生成一个新的表文件。 4、表文件的复制 命令方式: copy to fields 功能:根据当前表文件复制生成一个新的表文件。,一、表记录输入1. 直接输入2. 添加记录 命令方式: 格式一:APPEND BLANK 功能:在当前表文件尾追加新记录。 说明:若设置SET CARRY ON
6、,则可将前一条记录的数据复制到新增加的记录中(对APPEND BLANK无效),3.2 表记录的管理与操作,格式二:APPEND FROM |?FIELDS FOR 功能:从指定的表文件中读取记录,添加到当前表文件的末尾 说明:1、带删除标记的记录,在添加到当前表文件中后,删除标记自动取消。2、若表文件的字段长度大于当前数据表文件中同名同类的字段的宽度,系统将自动截取多余部分;若不足,自动用空格补足3、条件表达式中的字段必须是两个表中共有的字段。 注:该命令不仅能复制记录,还能复制表结构,二、记录的显示,显示(一) 1、命令方式: 格式一:LIST FIELDSFOR WHILENOCONSO
7、LE OFF TO PRINTER | FILE 功能:连续显示当前表文件的内容 说明:1、省略,则为ALL2、OFF:显示时不显示记录号3、NOCONSOLE:LIST的结果不在屏幕上显示4、当SET DELETE ON时,LIST不显示带删除标记的记录,Record n,Next n,rest,create d:dbfaaaaa use d:dbfxs disp list disp all list stru modi stru appe list copy stru to d:dbfxs1 fields xh,xm,zy,rxzf use d:dbfxs1 list list stru
8、use d:dbfxs clear list copy to d:dbfxs2 fields xh,xm,zy,rxzf use d:dbfxs2 list list all list allclear clear,use d:dbfxs list list record 5 list next 2 list rest list all for xb=女 list all for xb=“女“ list all for rxzf=600 list all for csrq=11/01/72 list all for csrq=“11/01/72“ list all for csrq=ctod(
9、“11/01/72“) list all for dtoc(csrq)=“11/01/72“ list all for csrq=1972-11-01 clear list list all for zf=.t. list all for zf list all for .not.zf,list bz clear list list all for rxzf=500.and.rxzf600 list all for xb=“女“.and.rxzf=600 list all for zy=“计算机“ list all for alltrim(zy)=“计算机“ list all for xb=“
10、女“.and.rxzf=600.or.xb=男.and.rxzf=500 close all,记录的显示(二),格式二:DISPLAY 范围FIELDS FOR OFFWHILE NOCONSOLE TO PRINTER| FILE 功能:列表显示当前数据表文件中记录的内容DISPLAY与LIST的区别: 1、省略时,LIST的默认值为ALL,而DISPLAY为NEXT 1 2、LIST为连续显示记录,而DISPLAY为逐屏显示,1.绝对移动指针命令GO TOP:指针移到第一个记录处GO BOTTOM:指针移到最后一个记录处 GO TO RECORD 将指针移到记录号为的记录处 说明:当移动当
11、前库文件的指针时,GO 或GO TO 可省略 2.相对移动指针命令 SKIP 功能:以当前记录为基准,将记录指针向前(-)或向后(+)移动个记录,三、记录指针的定位,说明:1、数据表文件打开时,记录指针为12、使用LIST命令后,记录指针指向的记录号为:最后一个记录号+13、文件首=文件首记录-1,此时BOF()的值为.T.,但RECNO()仍为14、文件尾=文件尾记录+1,此时EOF()的值为.T.,RECNO()的值为最后记录号+15、当为1时,可省略菜单方式:1、显示-浏览2、表-转到记录,相关函数说明,BOF()测试当前数据表的记录指针是否指向表文件的起始位置 EOF()测试当前数据表
12、的记录指针是否指向表文件的末尾位置 RECNO()测试当前数据表的当前记录号,四、记录的插入,命令格式:INSERT:在表中当前位置处插入新记INSERT BEFORE:在当前记录前插入新记录INSERT BLANK:插入空记录INSERT BEFORE BLANK:在当前记录前插入空记录说明:1、系统处于SET CARRY ON且INSERT命令中无BLANK子句时上一个记录各个字段的值将全部复制到新插入的记录的对应字段中。2、执行INSERT命令后,系统将对索引文件重新索引,格式:BROWSEFIELDS FOR WHILE FREEZE FIELDS: :R 说明该字段为只读方式 :B
13、=表达式1,表达式2 设置字段输入值的上下界 :H=字符表达式 设置字段的显示标题 :W=逻辑表达式 依据逻辑表达式 值的真假决定是否进入字段 例:browse fields 书号:r,书名:h=sh,册数:b=1,5,单价:w=单价20,1、BROWSE命令,五、记录的修改,2、REPLACE,REPLACE with ,WITH FOR WHILE 功能:REPLACE命令是用WITH后面表达式的值替换WITH前面字段的内容。注意:1、字段可以是任何类型,但是必须与WITH后面表达式的数据类型相一致。2、若省略范围与条件,则只替换当前记录的内容3、对打开的索引文件的关键字段进行替换时,不能
14、指定范围与条件,六、记录的删除与恢复,记录的删除1、菜单方式:Database-Browse,Browse-Toggle Delete, Database-packRecord-Delete,逻辑删除:将要删除的记录注上“*”,物理删除:将注上删除标记的记录永久地、真正地从数据表文件中删除,2、命令方式: 格式一:DELETE FOR WHILE 功能:为当前表中指定的记录加上删除标记 说明:1、省略范围、条件,则只给当前记录加删除标记2、系统设置SET DELETE ON 后,带删除标记的记录将被隐藏起来,而只对不带删除标记的记录进行操作 格式二:RECALL FOR WHILE 功能:去掉
15、当前表中记录的删除标记 说明:1、省略范围、条件,则只给当前记录去掉删除标记2、该命令只在PACK或ZAP使用前有效,格式三:PACK MEMODBF 功能:永久性地删除当前表中注有删除标记的所有记录 格式四: ZAP 功能:从当前表文件中删除所有的记录 说明:1、ZAP=Delete+Pack2、ZAP只删除记录,文件结构依然存在3、若设置SET SAFETY ON,则使用ZAP时系统会报警,通用型字段输入的图片必须是格式为 .BMP或.PCX的图像文件 通用型字段的菜单操作同备注型字段的操作 3. 将图像文件存入数据表的通用字段中APPEND GENERAL 通用型字段名 FROM图象文件
16、名 4. 将通用字段中的图像显示在屏幕上 行,列 SAY 通用型字段名,* 通用型字段操作,各种复制命令的区别,COPY STRUCTURE TO : 只复制表文件的结构 COPY TO : 既复制表文件的结构,也复制表文件的内容 APPEND FROM : 只复制表文件的内容,复制文件,格式: COPY FILE TO 功能:复制磁盘上任意类型的文件 说明:1、该命令不能复制已打开的文件2、复制带备注字段的数据表文件,相应的备注文件需单独复制,3.3 项目管理器和数据库,3.3.1 项目管理器简介1项目管理器的功能2项目管理器的组成 3.3.2 创建项目 3.3.3 创建数据库方法:1.在项
17、目管理器中选中“数据库” 2.用命令create database,3.3.3 建立数据库,数据库文件具有.dbc扩展名,其中可以包含一个或多个表、关系、视图和存储过程等。一个表(.dbf文件)能够存在以下两种状态之一:与数据库相关联的数据库表,与数据库不关联的自由表。二者的绝大多数操作相同且可以相互转换。,要 点,1、 建立数据库,数据库文件具有.dbc扩展名,其中可以包含一个或多个表、关系、视图和存储过程等。一个表(.dbf文件)能够存在以下两种状态之一:与数据库相关联的数据库表,与数据库不关联的自由表。二者的绝大多数操作相同且可以相互转换。,要 点,一、 建立数据库 1命令方式 【格式】
18、CREATE DATABASE |? 【功能】建立一个新的扩展名为.DBC的数据库文件并打开此数据库。【说明】指定生成的数据库文件,若省略扩展名,则默认为.DBC,同时也自动建立相关联的数据库备份文件扩展名为.DCT,关联的索引文件扩展名为.DCX。2菜单方式3利用项目管理器建立数据库,二、删除数据库 【格式】DELETE DATABASE 【功能】从磁盘上删除一个扩展名为.DBC的数据库文件。 【说明】被删除的数据库不能处于打开状态。被删除的数据库中的表成为自由表。 数据库文件名可以包括数据库的路径和数据库名字。,三、 打开数据库 【格式】OPEN DATABASE | ? EXCLUSIV
19、E|SHARED 【功能】将磁盘上一个扩展名为.DBC的指定数据库文件打开。【说明】打开一个数据库文件,同名的.DCT相关的数据库备份文件与.DCX相关的索引文件也一起被打开。,四、数据库的关闭数据库文件操作完成后,或暂时不用时,必须将其关闭,保存在外部存贮器中以确保数据的安全性。关闭数据库文件有以下几种方式: 【格式】CLOSE ALL|DATABASE 【功能】关闭当前打开的数据库。 【说明】ALL用于关闭所有对象。如数据库、表、索引、项目管理器等。,3.4 数 据 表 统计与计算,一、 记录个数的统计命令格式:Count for While to 功能:统计当前数据表中指定范围内满足条件
20、的记录的个数。 说明:若Set Delete On,则所有带删除标记的 记录,将不参加统计。 菜单格式:DATABASECOUNT,命令格式: Sum for While to|to Array 功能:对当前数据表文件中指定范围内记录的 数值型 字段或数值表达式求和。 说明:指数据表中需按列求和的字段表达式, 以逗号间隔。这些字段必须是数值型的, 省略则对所有数值型字段求和。 菜单方式: 字段求和,二、数 值 字 段 求 和,横向求和:使用REPLACE命令,纵向求和:使用SUM命令,命令方式:Average 字段名表 for While to|to array 功能:计算当前数据表文件中指定
21、范围内记录 的数 值字段或数值表达式的算术平均值。 菜单方式:DATABASEAVERAGE 补充函数:empty() 表示若表达式值不为空,则结果为真。 求平均值,三、字 段 求 平 均 值,横向求平均值:使用REPLACE命令,纵向求平均值:使用AVERAGE命令,命令方式: Calculate for whileto|to array 功能:对当前表文件中的字段或表达式的值进行财务和统计运算。 说明:本命令中常用的标准财务与统计字段函数有:CNT(): 统计当前工作区中数据表的记录个数SUM(数-段名):计算数-字段的数值和AVG (数-段名):计算数-字段的平均值MAX(字段名):求数-, 日-, 字-字段的最大值MIN (字段名):求数-, 日-, 字-字段的最小值,四、 综 合 统 计,