数据库文件的建立
主要内容__数据库的建立
数据库的建立又分直接建立和间接建立两种方式。
1 数据库的直接建立
1.1 数据库文件结构
在初建立一个数据库时,首先必须了解数据库的结构。
一个数据库文件由两部分组成,一部分是用户在建立库文件时定义的每一字段的字段名、字段类型和字段宽度等内容被称为库文件的结构数据,存放在库文件的前部也称为库文件头;第二部分称为记录体部分,存放记录数据。
对于FOXBASE+数据库系统,提供了五种字段类型,分别是:数值型(N型),日期型(D型),逻辑型(L型),字符型(C型)以及备注型(M型)。
1.1.1 数值型字段(D型)
数值型字段的字段值是十进制数据,又分为整数和小数型两类,其字段最大宽度为19个字节(包括小数点位)。当为整数时,可以是19位的正整数,或者是18位的负整数,当为小数时,小数部分(不包括小数点)最多为15位,并不能超过字段宽度减2(留下小数点位和至少1位整数0)。当为小数时其整数部分也不能超过16位,数值型字段的精度最大为15.9位(不计小数点,即可靠最有效数值是15位)。
1.1.2 日期型字段(D型)
日期型字段的字段值为日期数据,系统固定其宽度为8个字节,用户无权更改,系统默认格式为美国格式 ,显示形式为:‘月/日/年',也可用SET DATA命令改变。对日期型数据可进行如下运算:一个日期数据加上或减去一个十进制整数得一个新日期型数据 ,两个日期型数据相减得一个十进制整数(即相差天数) ,也可比较两日期的大小。在运算过程中系统自动保证月、日、年间的进位关系。
1.1.3 逻辑型字段(L型)
逻辑型字段宽度固定为1个字节,用户无权更改。用以存放逻辑值,只能取两种值:.T.(逻辑真)或.F.(逻辑假),输入时,可以用T、t、Y、y来输入逻辑真,用F、f、 N、n来输入逻辑假。
1.1.4 字符型字段(C型)
字符型字段的数据值是字符串。字符串由ASCII码字符和GB2312-80中汉字与非汉字组成,每个ASCII字符占一个字节,其余均占两个字节,字符型字段最大宽度为254字节。
1.1.5 备注型字段(M型)
备注型字段宽度固定为10,用户无权更改。这10个字节不是用来存放字段值,而是用来存放一个指针,指向备注文件中存放备注字段值的位置,在备注文件中 ,每一备注字段值最多可以占4096个字节,从而扩大了库文件的记录空间,但因其操作不方便,使用较少。
1.2 直接建立数据库文件命令
命令格式:CREATE 「〈文件名〉」
用户在要求建立一个数据库时,在对库文件结构进行分析之后,可用此命令建立数据库文件的结构。〈文件名〉由用户自己来确定,若不给扩展名,系统自动会加上标准扩展名.DBF。
注意:使用CREATE命令只是建立数据库文件的结构,而数据库的内容则由用户在数据库结构建立完成之后,直接用键盘输入或用其他方式输入。如果在工作盘上存在一个文件名相同的库文件,则显示“文件名already exists Overwrite ?(y/n)”询问是否覆盖原文件,若覆盖则回答Y,否则回答N。
在建立数据库结构时,汉字FOXBASE+允许每个记录最多有128个字段,但在实际应用中,记录字段数以20个左右系统运行效果最佳,在同一数据库文件中,字段名必须是唯一的,且必须是以字母或汉字开头的字符串,最多不超过10个字符组成。
2 间接建立数据库
间接建立数据库是不直接从键盘输入各字段的描述,而采用其他方式从一个已有的库文件或库文件结构描述文件获得。
2.1 利用结构描述文件建立数据库
2.1.1 数据库结构描述文件
数据库结构描述文件是按字段名、类型、宽度和小数位四个参数进行定义的,不论库文件的内容如何变化但描述文件是不会变化的。因此,可以将一个数据库的结构描述保存起来,即结构描述文件。结构描述文件产生命令如下:
COPY TO 〈文件名〉 STRUCTURE EXTENED
其中文件名即是结构描述文件名,它实际是一个特殊的库文件,只不过其字段是固定的,增加它的记录就等于增加对其它库文件字段结构的描述,利用此文件可以建立一个新数据库。
2.1.2 利用结构描述文件建立数据库
我们可以用一个已经存在的库结构描述文件来建立一个数据库文件结构,命令如下:
CREATE 〈库文件名〉 FROM 〈结构描述文件名〉
利用此命令,无须直接输入字段名即可建立数据库文件,此种方法常用在通用数据库程序设计中。
对于此方法的应用,请参见教材中相应的例子。
2.2 用现有数据库建立数据库
对于一个将要新建的数据库,如果其库结构是与另一个已经存在的数据库结构相同或是其中的一部分,则可以利用已存在的数据库来建立新数据库,命令格式如下:
COPY STRUCTURE TO 〈文件名〉 「FIELDS 〈字段名表〉」
使用此命令,可将当前打开的数据库文件中由指定字段名表指定的字段产生一个由〈文件名〉指定的新数据库结构,若省略 FIELDS 〈字段名表〉,则新产生的库结构与当前打开的库结构相同。
前面我们重点介绍了如何设计一个库文件的结构,以及在设计好库结构的基础上如何建立一个数据库,这是学习本章的重点,也是学习FOXBASE+数据库的基础。