数据表是用来存储和管理数据记录的,它包括了数据库中所有数据的数据对象。数据表与表格类似,数据在表中是按行和列的格式排列的,每行代表唯一的记录,而每列代表记录的一个字段。在Visual FoxPro中,数据表又分为自由表和数据库表。自由表是指单独存在的、未包含在任何数据库中的数据表;而数据库表是从属于某个数据库的数据表,并且通常还与该数据库中的其他数据表有一定的联系。
本章主要内容
& 数据表结构的创建和编辑
& 数据表的基本操作
& 数据表的索引
& 数据表的查询与统计
& 多工作区中数据表的操作
在Visual FoxPro中,数据表是由表结构和表记录两部分组成的。要创建一个数据表,首先需要设计和建立一个数据表结构,然后才能输入相关的表记录。
图2-1说明了数据库文件、数据表与自由表的区别与联系。
图2-1 数据库文件、数据表与自由表的区别与联系
数据库由一个以上相互关联的数据表组成,其扩展名为*.dbc,可以包含一个或多个表、视图、到远程数据源的连接和存储过程等(其详细内容将在第3章中具体讲解)。
在早期的Xbase版本中,其基本数据结构就是数据库,它的文件扩展名为*.dbf,而在Visual FoxPro中,则将这种结构称为表,且与早期的数据库基本相同,都有相同的文件扩展名*.dbf。主要区别在于Visual FoxPro对数据库概念做了扩充,可以更方便地生成一组相关表并保护其持久的关系。此外,表可以不必相关,也可以不是数据库的成员。
在Visual FoxPro中,将不属于数据库成员的表称为自由表。处理自由表和处理数据库成员表的方法基本相同,唯一的区别在于自由表的关系不是持久的,即在完成自由表的生成之后,关系不再保留。
如图2-2所示,说明了表文件名、表结构、记录和字段的关系与概念。
图2-2 表文件名、表结构、记录和字段的关系与概念
表文件名可以由字母、汉字、数字或下划线组成,系统自动给出的扩展名为*.dbf。
存储表记录的公共结构,即一张表的表头结构或字段的属性。
记录指数据表中的每一行,它是由多个字段组合的,且同一张表的每个记录都有相同的字段。
字段表中的每一列,它规定了数据的特征。
若要建立一张新的数据表,可以通过3种途径,即表设计器、表向导和命令。
“表设计器”是Visual FoxPro 6.0中创建新表的常用工具,使用它可以非常灵活方便地创建所需要的数据表。
【例2-1】建立如图2-3所示的“学生档案表”(命名为xsda.dbf)的结构,其操作步骤如下:
图2-3 学生档案表(xsda.dbf)
(1)选择“文件”→“新建”命令,将弹出如图2-4所示的“新建”对话框。
(2)选中“表”单选按钮,然后单击“新建文件”图形按钮,将弹出如图2-5所示的“创建”对话框。
图2-4 “新建”对话框 图2-5 “创建”对话框
(3)在“创建”对话框中设定保存的文件夹,在“输入表名”文本框中输入xsda,然后单击“保存”按钮,将弹出如图2-6所示的“表设计器”对话框。
在“表设计器”对话框中有3个选项卡,即字段、索引和表,默认打开的是“字段”选项卡,在此选项卡中分别有字段名、类型、宽度、小数位数、索引和NULL6列。
图2-6 “表设计器”对话框
· 字段名设置表中字段的名字,即字段变量名,每一列都应有一个唯一的字段名。
· 类型它决定了可存放在该字段中的数据类型,如字符型、数值型、货币型、日期型、日期和时间型、逻辑型,以及备注型与通用型等。
· 宽度也称字段长度,它规定了该字段的最大宽度。
· 小数位数指数值型数据将保留几位小数。此时,字段宽度= 整数位数+1+小数位数。
· 索引设置该字段的索引方式,即升序或降序。
· NULL指定该字段是否接受NULL值。使用NULL值的目的是为了解决在字段或记录里的信息目前还无法预知的情况。NULL值不等同于零或空格,一个NULL值不能认为比某个值(包括另一个NULL值)大或小,相等或不同。
(4)根据图2-3所示的表结构,依次在“字段名”所在列输入相应的字段名称,然后输入相应的数据类型、宽度、小数位数、索引及NULL等,如图2-7所示。
图2-7 设计的字段
(5)表结构设置完成后,单击“确定”按钮即可。
使用“表向导”可以帮助用户迅速创建表。用户根据向导的提示,只需做出简单的回答即可创建一张新表。
在Visual FoxPro程序中,用户可以通过多种方法使用表向导,然后根据相应的提示进行操作即可。
(1)在图2-4所示的“新建”对话框中,选中“表”单选按钮,然后单击“向导”图形按钮即可。
(2)在打开的“项目管理器”对话框中,选择“数据”选项卡下的“自由表”项,并单击“新建”按钮,将弹出“新建表”对话框,然后单击“表向导”图形按钮即可,如图2-8所示。
图2-8 在“项目管理器”中使用表向导
(3)选择“工具”→“向导”→“表”命令,如图2-9所示。
图2-9 在“工具”菜单中使用表向导
如果用户要使用命令的方式来创建表,有以下两种方法。
· 在“命令”窗口中使用Create命令调用“表设计器”。
· 在“命令”窗口中使用CREATE TABLE命令方式创建表,其格式为:
CREATE TABLE | DBF 表名称[NAME 长表名][FREE](字段名1 字段类型[(字段宽度[,精度])][NULL|NOT NULL][,字段名2...]
【例2-2】 要创建如图2-3所示学生档案表(xsda.dbf)结构,可按以下命令操作。
CREAT TABLE xsda (编号N(6),学号C(6),姓名C(10),性别F(1),出生年月D(8),入学成绩N(6,2),简历M(4),照片G(4))
当用户建立了表结构后,如果发现有一些字段名或者字段类型等不符合要求,需要对其进行更改。可以通过以下几种方法来修改表的结构。
用菜单调出“表设计器”进行修改的操作步骤如下:
(1)选择“文件”→“打开”命令,将弹出“打开”对话框,选择需要修改的表文件,然后单击“确定”按钮将其表打开,如图2-10所示。
(2)此时表已经打开,选择“显示”→“表设计器”命令,将打开“表设计器”对话框,在该对话框中对相应字段的属性进行修改即可。
(3)修改完成后,单击“确定”按钮,此时将弹出提示对话框,询问是否对所做的操作进行保存,然后单击“是”按钮即可。
在打开的“项目管理器”中,选择需要修改的表,单击右侧的“修改”按钮,同样会打开“表设计器”对话框,如图2-11所示。
图2-10 “打开”对话框 图2-11 在“项目管理器”中进行修改
同样,用户可以在“命令”窗口输入相应的命令调出“表设计器”,并进行修改,其命令如下:
USE <表文件名>
MODIFY STRUCTURE