Visual FoxPro程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 创建表

数据库由表和其他数据库对象的集合构成,表在关系数据库中称为“关系”;在VFP 9.0中称为“数据库表文件”,其扩展名为“.dbf”。如果表有中备注型或者通用型字段,则同时创建一个与数据库表文件同名,但扩展名为“.fpt”的备注文件。创建表的次序一般是设计表结构→创建表结构→输入表记录数据。

表可以分为数据库表和自由表,不属于任何数据库而独立存在的表称为“自由表”,后续将详细介绍,本节所指的表是数据库表。

3.2.1 创建数据库表

创建之前要设计表结构,即确定字段及字段参数,包括字段名称、类型、宽度、小数位数,以及是否允许为空等。

(1)字段名(Field Name)。

字段名必须以汉字、字母或下画线开头,最多不超过128个字符,自由表中的字段名不得超过10个字符。

(2)字段类型(Type)。

指定字段存储的数据类型,视具体情况而定。

(3)字段宽度(Width)。

字段允许存放的最大字节数或数值位数,字符型、数值型和浮点型这3种字段的宽度根据所存数据的具体情况规定。其他类型由系统规定,其中货币型、日期型、日期时间型字段的宽度均为8个字节;逻辑型字段的宽度为1个字节;备注型字段和通用型字段的宽度均为4个字节。

(4)小数位数(Dec)。

只有数值型与浮点型字段才有小数位数,小数位数至少应比该字段的宽度值小2。若字段值是整数,则小数位数为0。双精度型字段允许输入小数,但不需事先定义小数位数,小数点将在输入数据时输入。

(5)索引。

指定是否以该字段为关键字创建索引(升序或降序),索引主要用于记录排序,后续会有详细介绍。

(6)是否允许为空。

表示是否允许字段接受空值(NULL),空值指无确定的值,它与空字符串、数值0等不同。例如,基本工资字段空值表示没有确定工资,0则表示0元。一个字段是否允许为空值与其性质有关,如作为关键字的字段不允许为空值。

根据表3-5创建人事表,表结构设计如同设计一个表格。即首先要设计一个表名(如RSB.dbf),然后确定表中的字段(如编号、姓名和性别等)及其类型(如字符型、数值型和日期型等),最后确定字段的宽度。如果是数值型,还要确定小数的位数。

1.菜单方式

例3-3:在RSGZK数据库中创建数据库表RSB.dbf。

操作步骤如下。

(1)打开RSGZK数据库,如图3-5所示。

图3-5 打开RSGZK数据库

(2)单击“数据库设计器”窗口工具栏中的“新建表”按钮,弹出“新建表”对话框,如图3-6所示。

图3-6 “新建表”对话框

(3)单击“新建表”按钮,弹出“创建”对话框,如图3-7所示。

图3-7 “创建”对话框

(4)选择保存的目录并输入表名,在这里输入“RSB”。

(5)单击“保存”按钮,弹出“表设计器-rsb.dbf”对话框,如图3-8所示。

图3-8 “表设计器-rsb.dbf”对话框

(6)打开“字段”选项卡。

(7)按照表3-5所示结构依次输入或选择每一个字段的字段名、类型和宽度等,结果如图3-9所示。

图3-9 输入或选择结果

(8)单击“确定”按钮,在数据库设计器中将显示新创建的表,如图3-10所示。

图3-10 新创建的RSB表

这时表中没有数据,只有表结构,即是个空表。

2.命令方式

     (1)格式:CREATE <表文件名>

功能:打开“表设计器”窗口创建表。

说明:如果在该命令之前用OPEN DATABASE命令打开了一个数据库,则创建的是数据库表;否则创建的是自由表。

      例:CREATE  Gzb   &&创建表Gzb.DBF并打开“表设计器”窗口
    (2)格式:CREATE  TABLE <表文件名>(<字段名><字段类型>(<字段宽度>[, <小数位
  数>]……))

功能:SQL语言创建表的方式,详见第4章。

3.2.2 输入表记录

定义表结构后可以输入记录,VFP 9.0提供以下两种数据输入方式。

1.浏览方式

例3-4:在RSB表中输入数据。

操作步骤如下。

(1)打开RSB表所在的RSGZK数据库,然后在“数据库设计器”窗口中选中RSB表。

(2)选择“显示”|“浏览”选项,如图3-11所示,弹出浏览窗口。

图3-11 “浏览”选项

(3)选择“显示”|“追加方式”选项,在弹出的表中逐条输入记录,如图3-12所示。

图3-12 以“追加方式”输入数据

(4)输入备注型字段数据,双击备注型字段的“memo”处,弹出备注型字段编辑窗口,如图3-13所示。

图3-13 备注型字段编辑窗口

输入或编辑当前记录的简历字段的内容,结束后单击关闭按钮或按下Ctrl+W组合键将备注型数据存盘,关闭备注型字段编辑窗口;按下Ctrl+Q组合键则放弃本次输入,关闭备注型字段编辑窗口。

此时“memo”变成“Memo”,表示备注型字段已经输入数据。

(5)输入通用字段数据。

在输入记录窗口中双击通用型字段的“gen”处,弹出通用型字段编辑窗口。选择“编辑”|“插入对象”选项,弹出“插入对象”对话框,如图3-14所示。

图3-14 “插入对象”对话框

● “新建”单选按钮:选择后在“对象类型”下拉列表框中新建一个对象添加到该通用字段中。

● “由文件创建”单选按钮:选择后可以选择一个已经存在的对象添加到该通用型字段中。

结束后单击关闭按钮或按下Ctrl+W组合键,将通用型数据存盘并关闭通用型字段编辑窗口;按下Ctrl+Q组合键则放弃本次输入,关闭通用型字段编辑窗口。

此时“gen”变成“Gen”,表示已经输入数据。

(6)依次输入数据,结果如图3-15所示。

图3-15 输入的结果

2.编辑方式

这种方式的操作过程与浏览方式大致相同,不同之外在于每行只有一个字段。在浏览状态下选择“显示”|“编辑”选项,切换到编辑窗口中输入数据,如图3-16所示。

图3-16 以编辑方式输入记录

3.2.3 自由表与数据库表

自由表和数据库表的扩展名都为.dbf,但数据库表具有一些自由表所没有的属性。二者可以相互转换,当一个自由表被添加到一个数据库中后就成为数据库表;当数据库表从数据库中移出后就成为自由表。数据库表只能属于一个数据库,如果需要将其添加到其他数据库中,应将它变为自由表后添加。我们是在已打开的RSGZK数据库中创建的RSB表,所以RSB表自动成为RSGZK数据库的一部分,是数据库表。

例3-5:创建一个名为“BMDM”的部门代码自由表。

操作步骤如下。

(1)启动VFP 9.0。

(2)选择“文件”|“新建”选项,弹出“新建”对话框。

(3)选择“表”选项,单击“新建”按钮,弹出“创建”对话框。

(4)输入表名“BMDM”,单击“保存”按钮,弹出“表设计器-bmdm.dbf”对话框,如图3-17所示。

图3-17 “表设计器-bmdm.dbf”对话框

例3-6:将自由表BMDM添加到RSGZK数据库中。

操作步骤如下。

(1)打开RSGZK数据库。

(2)选择“数据库”|“添加表”选项,如图3-18所示。

图3-18 选择“数据库”|“添加表”选项

(3)弹出“打开”对话框,选择要添加到当前数据库的自由表BMDM。或者单击“数据库设计器”窗口工具栏中的添加表工具按钮,如图3-19所示。

图3-19 添加表按钮

(4)单击“确定”按钮,选中的自由表添加到指定的数据库中。

在“数据库设计器”窗口中可以看到数据库中增加了一个BMDM表。

例3-7:把数据库表BMDM移出数据库,使之成为自由表。

操作步骤如下。

(1)打开RSGZK数据库。

(2)选择BMDM表。

(3)选择“数据库”|“移去”选项,弹出如图3-20所示的提示对话框。或者单击“数据库设计器”窗口中工具栏中的移动表按钮。

图3-20 移去表的提示对话框

(4)单击“移去”按钮,BMDM表变为自由表。