2章 数据库、表的基本操作(18学时)

 

一、【教学目标】

1.     理解并掌握数据库的创建

2.     理解并掌握数据库表属性的设置

3.     掌握数据库的操作

二、【重点和难点】

重点

1.       数据库的操作。

2.       数据库表的操作。

3.       建立排序和索引。自由表的操作。

4.       使用不同工作区表的操作

 

难点

1.      数据库表的操作。

2.       索引的建立和使用。

3.        数据完整性的设置。

 

三、【学法指导】

1.  数据库和数据表的建立是本章基础。

2.  编辑表中的数据、记录修改与删除,表的索引等操作,是后续章节的基础。

3.  本章学习的要点是多做上机练习,熟练掌握数据库和数据表的操作。

四、【教学要点】

本章主要介绍数据库、数据表的基本概念;数据库和数据表的建立、编辑表中的数据、记录修改与删除,表的索引等有关操作。

2.1 VFP数据库及其建立

数据库管理系统是一种极为重要的程序设计语言,它与其他语言的主要差异在于它先天具备组织管理和高效率访问大批量数据的功能。设计一个功能齐全、结构优化的数据库,是设计数据库管理系统必不可少的一个重要环节。VFP中文版为我们提供两个功能强大的数据库设计工具——数据库向导和数据库设计器。数据库向导能帮助初学者在很短的时间内设计出一个数据库。而数据库设计器能设计出满足用户实际需要的较为复杂的数据库。它们不仅能设计建立数据库,而且还提供了一套完善的数据库管理和维护功能。

2.1.1基本概念

1.数据库的概念

一定要注意,VISUAL FOXPRO 中数据库与表是两个不同的概念,数据库文件是各项与数据库相关信息的汇集处,数据库可以管理表,查询,视图等数据实体,又可提供了数据字典,各种数据保护及数据管理功能。

在建立数据库时,相应的数据库名称实际是扩展名为DBC的文件,与之相关的还会自动建立一个扩展名DCT的数据库备注文件和一个扩展名为DCX的数据库索引文件.

数据库建立好后,还只是一空库,它没有任何数据,需要建立或添加数据库表才能实现对数据的统一的管理。

2.表的概念

VFP作为关系型数据库系统,是用来管理数据的,而数据以记录和字段的形式存储在数据库中,数据库就是一个关于某一特定主题或目标的信息集合。表是从简单数据处理到创建关系型数据库,再到设计应用程序的过程中所用到的基本单位,它是数据库的基础,可以说,表是关系数据库系统中的基本结构。如果要保存数据,就应为所需记录的信息创建一个表。数据表是由行和列组成的,每一行称为一条记录,每一列称为一个字段。

每条记录可以有若干个字段,而且每条记录具有相同结构的字段。相同结构的含义是具有相同的字段名、字段类型和字段顺序。

2.1.2建立数据库

数据库的建立

建立数据库的常用方法有以下三种:

l         在项目管理器中建立数据库.

l         通过”新建”工具或”文件”菜单的”新建”一项实现.

l         使用命令CREATE  DATABASE建立.

1.在项目管理器中建立数据库

在项目管理器中建立数据库首先要打开相应的项目, 在”数据”选项卡中选择”数据库”,再单击”新建”按钮并选择”新建数据库”(如图2.1),


2.1

接着通过创建对话框提示用户输入数据库的名称(名称由用户自己命名), 如果未命名,则系统默认文件名为”数据1(如图2.2),相应的扩展名为.DBC.


2.2

2.通过”新建”对话框建立数据库


2.3

单击工具栏上的”新建”按钮或者选择”文件”菜单下的”新建”,打开如图2.3所示的”新建”对话框.首先在”文件类型”组框中选择”数据库”,然后单击”新建文件”按钮建立数据库,然后的操作和步骤与在项目管理器中建立数据库相同,使用这种方法建立的数据库同样处于打开状态,同时打开相应的数据库设计器.如图2.4

 


2.4

3.使用命令建立数据库.

建立数据库的命令格式是:

CREATE  DATABASE [DatabaseName|?]

DatabaseName为用户要建立的数据库名称.

如不输入名称或使用”?”将出现提示用户输入名称对话框.如图2.5


2.5

使用该命令所建立的数据库处于打开状态,不过相应的数据库设计器并没有打开,这是与上面两种方法不同的地方。

     总之,使用以上三种方法都可以建立一个新的数据库。如果指定的数据库已经存在,很可能会覆盖掉已经存在的数据库。如果系统环境参数SAFETY被设置为OFF状态会直接覆盖,否则会出现警告对话核框请用户确认因此,为安全起见可能先执行SET SATETY ON

2.1.3数据库的使用

1.数据库的打开

建立数据库的目的是管理表中的数据,在使用之前,必须先打开数据库,常用的数据库打开方法有如下三种:

通过“文件”菜单的“打开”功能项打开相应的数据库。如图2.6所示,这里要注意“文件类型”下拉列表选择“数据库(*.dbc.


2.6

在“打开”对话框中还有“以只读方式”和“独占”两个复选框可供选择,它们的功能将在命令格式中加以介绍。

在项目管理器中打开数据库。

先打开数据库所在的项目,再选择相应的已存在的数据库名称。这时数据库自动打开,用户不必再执行手工打开数据库操作。

使用命令方式打开数据库

打开数据库的命令格式为:

OPEN  DATABASE  [Filename|?][EXCLUSIVE|][NOUPDATE]

参数说明:

Filename为要打开的数据库名称

EXCLUSIVE以独占方式打开数据库,即在同一时刻不允许多个用户同时使用。

SHARED以共享方式打开数据库,等同于“打开”对话框中的不选择“独占”复选项。

NOUPDATE指定数据库按只读方式打开,等效于在“打开” 对话框中选择复选项“以只读方式打开”,即不允许对数据库库进行写操作。数据库文件打开默认的方式是可读写方式。

2.数据库的修改

VISUAL FOXPRO中数据库的修改要通过“数据库设计器”来实现,所以要想修改数据库,必须先打开“数据库设计器”,通过“数据库设计器”来完成对数据库的建立,修改和删除等操作。

我们前面讲过,数据库一旦打开,“数据库设计器”便随之自动打开,所以我们先要打开要修改的数据库。

如果是通过“项目管理器”打开的数据库,如图2.7所示,点击“修改”按钮,便打开了“数据库设计器”。


2.7

在命令窗口中打开数据库设计器或修改数据库的命令格式为:

MODIFY  DATABASE[Databasename|?][NOWAIT][NOEDIT]

说明:

Databasename为要打开的数据库名称。

如果使用“?”或不使用Databasename系统将出现提示“打开”对话框,要求用户选择要打开的数据库。

NOWAIT该选项只在程序方式中使用,在命令窗口无效。

NOEDIT表示允许打开数据库,但不允许修改。

3、数据库的删除

在使用中,如果某个数据库不再有用,我们可以将其从项目管理器或磁盘上清除。

从项目管理器中删除

打开项目管理器,选择“移去”按钮,出现如图2.8所示对话框。


2.8

这时有三个选项,这三个选项的功能如下:

移去:只从项目管理器中删除数据库,并没有真正从磁盘中删除数据库文件。

删除:真正从磁盘中删除数据库文件,这时项目管理器中也一定不存在该文件。

取消:取消当前操作,不对数据库进行删除。

使用这种方式删除数据库,并没有将数据库中的表,视图等数据库对象从磁盘中删除,因为表,视图等对象是以文件的形式独立存在于磁盘上的,要想在删除数据库的同时,删除相应的表等文件,可以使用命令格式。

删除数据库的命令格式为:

DELETE  DATABASE Databasename|?[DELETETABLES][RECYCLE]

说明:Databasename为要删除数据库的名称。如果未指定名称,系统将提示用户打开相应的数据库。

DELETETABLES表示在删除数据库的同时,删除数据中的数据库表。

RECYCLE将删除的数据库和数据库表等文件放入WINDOWS的回收站,需要时可以再还原。

2.2建立数据库表

上节介绍了数据库的基本操作,数据库实际是对数据库表等对象进行管理,没有表,数据库的存在也就没有多大的意义了。下面介绍如何建立表和数据库表。

2.2.1在数据库中建立表

1.应用“文件”菜单的“新建”功能项创建表

单击“文件”菜单的“新建”选项,在“文件类型”对话框中选择“表”,再选择“新建文件”按钮,输入要创建的表的名称,出现如图2.9所示对话框。


2.9

2.应用项目管理器创建表

打开相应的项目管理器及数据库,如图所示,选择“表”及“新建”,填入相应的表的名称,即出现如图所示对话框,这时所建的表为数据库表。如果在项目管理器中直接选择“自由表”一项,建立的表就是自由表。


2.10

这里对表设计器中涉及到的一些基本内容和概念作一解释。


2.11

1.字段名

记录中的每一个字段都是有名称的,但在命名字段时,要遵守如下规则:

1)字段名必须以字母或汉字开头。

2)字段名可以由字母、汉字、下划线和数字组成。

3)数据库表字段名最大长度不能超过128个字符。

4)自由表字段名最大长度不能超过10个字符。

5)字段名中不能有空格。

2.字段类型

字段可以使用的数据类型有如下几种,下面对这几种数据类型分别给予介绍。

字符型Character)。字符型字段通常用于存储文本数据。如字母、汉字、数字、空格、符号以及标点符号等。字符型字段的宽度最大为254个字符。

货币型Currency)。货币单位,如货物的价格。

数值型NumeriC)。数值型字段用来存储数值数据。它可以包含数字0~9,也可以带正、负号或小数点。

浮点型Float)。浮点型字段在功能上等价于数值型字段。其长度在表中最长可达20位。

日期型Date)。日期型用于存储由年、月、日组成的日期数据。

日期时间型DateTime)。日期时间型用于存储包含有年、月、日、时、分、秒的日期和时间数据。

双精度型Double)。双精度型用于存储精度要求较高、位数固定的数值,或真正的浮点数值。

备注型Memo)。备注型用于存储不定长度的文本数据。当文本数据长度不定且长度可能大于254,无法使用字符型字段存储时,例如个人简历。备注型字段的字际内容存储在以.FPT为扩展名的文件中.在内存中占四个字节。主文件名与表的主文件名相同。

通用型General)。通用型用于存储OLE 对象数据。通常由字段的链接与嵌入实现。字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容。通用型字段的实际内容存储在扩展名为.FPT文件中。如EXCEL电子表格、WORD字处理文档、图像或其他多媒体对象等。通用字段存储数据的大小,取决于相关对象的OLE服务程序,并受可用磁盘空间大小的限制。

整形Integer)。整形用于存储整数型数据,字段宽度固定为4个字节。字符型(二进制)(Character Binary)。字符型(二进制)用于存储不需要系统代码页页维护的字符数据。其他字段特性同字符型字段。

备注型(二进制)(Memo Binary)。备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。其他字段特性同备注型字段。

3.字段宽度

每一种数据类型都有其规定宽度。

字符型字段的最大宽度为254

货币型字侧面宽度固定为8个字节。

数据型字段的最大宽度为20个字节,小数位数最大为19

浮点型字段在功能上等价于数值型字段。

日期型字段宽度固定为8个字节。

日期时间型字段宽度固定为8个字节。

双精度型字段宽度固定为8个字节。

备注型字段宽度固定为4个字节,用于存储一个4个字节的指针,指向存储的FPT文件中真正的备注内容。备注字段存储文本长度仅受可用磁盘空间大小的限制。

通用型字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容。

整型字段宽度固定为4个字节。

小数位数

当字段类型为“Numeric”或“Float”,应在“小数位数”栏中设置小数的位数。

4.空值

是否允许为空(NULL)如果允许字段接受“NULL”栏所在框,则应选中“NULL”栏所在框,否则,不选中该栏,表的字段不允许为NULL值。

5.字段的显示属性

 

格式:控制字段在浏览窗口、表单、报表等显示时的样式。

输入掩码:控制输入该字段的数据的格式。如:商品编号的格式由一个字母和一个五位数字组成,则掩码可以定义为S99999

 

标题:若表结构中字段名用的是英文,则可以在标题中输入汉字,这样显示该字段值时就比较直观了。没有设置标题,则将表结构中的字段名作为字段的标题。

 

 

 

 

.字段有效性

 

规则:限制该字段的数据的有效范围。在规则中输入:性别="".OR.性别=""。这样当给性别字段输入记录值时就只能输入。 订购数量的有效性规则可以设为:订购数量>=0 .and.订购数量<=1000

 

 

信息:当向设置了规则的字段输入不符合规则的数据时,就会将所设置的信息显示出。

 

默认值:当往表中添加记录时,系统向该字段预置的值。在性别字段中输入默认值为。输入记录时只有女生才需要改变默认值,可以减少输入。字段有效性的设置如图2.11所示。

 

2.2.2修改表结构

VFP中,表结构可