第 4 章 visual foxpro 数据库及其操作

57
1 第 4 第 Visual FoxPro 第第第 第第第第

Upload: vaughn

Post on 10-Jan-2016

108 views

Category:

Documents


2 download

DESCRIPTION

第 4 章 Visual FoxPro 数据库及其操作. 本章要点. Visual FoxPro 数据库的基本概念以及对数据库的基本操作 建立数据库表,数据库表中的字段属性,对数据库表的操作 对数据库表中的记录进行基本操作 索引的概念、种类、如何建立索引、索引文件的种类 实体完整性、域完整性、建立参照完整性 建立自由表、数据库表与自由表的关系. 本章要点(续). 多个表同时使用 如何建立排序. 4.1 Visual FoxPro 数据库及其建立. 4.1.1 基本概念. 1 .数据库 定义: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 4 章  Visual FoxPro 数据库及其操作

1

第 4 章 Visual FoxPro 数据库及其操作

Page 2: 第 4 章  Visual FoxPro 数据库及其操作

2

本章要点 Visual FoxPro 数据库的基本概念以及对

数据库的基本操作 建立数据库表,数据库表中的字段属性,

对数据库表的操作 对数据库表中的记录进行基本操作 索引的概念、种类、如何建立索引、索引

文件的种类 实体完整性、域完整性、建立参照完整性 建立自由表、数据库表与自由表的关系

Page 3: 第 4 章  Visual FoxPro 数据库及其操作

3

本章要点(续) 多个表同时使用 如何建立排序

Page 4: 第 4 章  Visual FoxPro 数据库及其操作

4

4.1 Visual FoxPro 数据库及其建立

Page 5: 第 4 章  Visual FoxPro 数据库及其操作

5

4.1.1 基本概念 1 .数据库

定义: 数据库是一个逻辑上的概念和手段,通过一组系统

文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。

在 Visual FoxPro 应该把 dbf 的数据库文件称作数据库表,简称表,而不再称作数据库或数据库文件。

建立数据库后,用户可以在磁盘上看到文件名相同,但扩展名分别为 dbc 、 dct 和 dcx 的三个文件。

Page 6: 第 4 章  Visual FoxPro 数据库及其操作

6

4.1.2 建立数据库 1 .常用方法

使用项目管理器中建立数据库 使用“新建”对话框建立数据库 使用命令方式建立数据库

命令格式: CREATE DATABASE 数据库文件扩展名 .dbc 可以缺省,由系统默认。 如果不指定数据库名称或使用问号都会弹出创建对话框请

用户输入数据库名称。

Page 7: 第 4 章  Visual FoxPro 数据库及其操作

7

4.1. 3 打开数据库 1.常用方法

在“项目管理器”中打开数据库 通过“打开”对话框打开数据库 使用命令方式打开数据库

命令格式: OPEN DATABASE

Page 8: 第 4 章  Visual FoxPro 数据库及其操作

8

4.1.4  添加数据库 1.方法

在项目管理器中单击“数据”选项,然后单击“添加”按钮,选择所需的数据库后,单击“确定”按钮,可以看到在项目管理器的数据项下多了一个所添加的数据库。

Page 9: 第 4 章  Visual FoxPro 数据库及其操作

9

4.1.5  修改数据库 1.打开数据库设计器

常用方式: 从项目管理器中打开数据库设计器 用“打开”对话框打开数据库设计器

选择“文件”菜单中的“打开”命令调出对话框,选择数据库名,单击“确定”即可打开数据库设计器。

使用命令方式打开数据库设计器 命令格式:

MODIFY DATABASE

2 .在数据库设计器中修改设计器

Page 10: 第 4 章  Visual FoxPro 数据库及其操作

10

4.1.6  删除数据库 1.常用方法

使用项目管理器删除数据库 使用命令方式删除数据库

命令格式: DELETE DATABASE DELETETABLES 用于在删除数据库的同时从磁盘上删除

该数据库所含的表等。

Page 11: 第 4 章  Visual FoxPro 数据库及其操作

11

4.1.7  关闭数据库 1.常用方法

直接单击数据库设计器右上角的“关闭”按钮或者关闭数据库窗口,关闭数据库。

CLOSE DATABASES[ALL] 命令:其中 ALL 用于关闭所有打开的数据库以及数据库中的表、自由表、索引等。

Page 12: 第 4 章  Visual FoxPro 数据库及其操作

12

4. 2建立数据库表

Page 13: 第 4 章  Visual FoxPro 数据库及其操作

13

4.2.1 在数据库中建立表 1 .建立数据库表

方法: 使用项目管理器建立数据库表 使用“新建”或 CREATE 命令建立数据库

新建立的表处于打开状态,此时可以直接进行录入及修改表结构等操作。

如果以后再对表进行操作,应先使用 USE 命令打开表

Page 14: 第 4 章  Visual FoxPro 数据库及其操作

14

4.2.2 数据库表的字段属性 1 .字段显示属性

字段名规则 字段名是字段的惟一标志,由 1~128 个非空字符组

成(自由表字段名长度不能超过 10 个字符。 自由表字段名最长为 10 个字符。 数据库表字段名最长为 128 个字符。 字段名必须以字母或汉字开头。 字段名可以由字母、汉字、数字和下划线组成。 字段名中不能包含空格。

Page 15: 第 4 章  Visual FoxPro 数据库及其操作

15

字段类型

类型 用途 宽度限定 存储字节

字符型 存储字符序列 ≤254个字符 实际定义宽度

数值型 存储各种数值(整数) ≤20位 8

逻辑型 存储真和假 =1 1

日期型 存储年、月、日 =8 8

日期时间型 存储年、月、日、时、分、秒 =14 14

货币型 存储币值 ≤20位( bit) 8

整数型 存储整数 ≤10位 4

浮点型 存储整数和带小数位的数 ≤20位 8

双精度型 存储整数和带超长小数位的数 ≤20位 8

备注型 存储超常的字符(> 254个) =4 不受限制

二进制字符型 存储二进制数据 实际定义宽度

二进制备注型 存储超长二进制数据 =4 不受限制

通用型 标记 OLE =4 不受限制

表 4.1 Visual FoxPro 字段类型

Page 16: 第 4 章  Visual FoxPro 数据库及其操作

16

设置字段的显示格式 A :只允许字母和汉字,不允许空格或标点符号。 D :使用当前的 SET DATE 格式。 E :以英国日期格式编辑日期型数据。 K:当光标移动到文本框上时,选定整个文本框。 L :在文本框中显示当前导零,而不是空格符号。 M :允许多个预设置的选择项。 R :显示文本框的格式掩码,掩码字符并不存储在控制源中。 T :删除输入字段前导空格和结尾空格。 !:把小写字母转换为大写字母。 $:显示货币符号,用于数值型数据或货币型数据。 ^:使用科学记数法显示数值型数据,只用于数值型数据。

Page 17: 第 4 章  Visual FoxPro 数据库及其操作

17

设置输入掩码 X:可以输入任何字符。 9 :可以输入数字和正负符号。 #:可以输入数字、空格和正负符号。 $:在固定位置上显示货币符号。 *:在值的左侧显示星号。 . :点分隔符指定数值的小数点位置。 ,:用逗号分隔小数点左边的整数部分。 $$:在微调控制或文本框中,货币符号显示时不与数字分开。

Page 18: 第 4 章  Visual FoxPro 数据库及其操作

18

2 .设置字段的有效性 设置字段的有效性规则和消息

在创建数据库表时,应该考虑输入的数据能否有一个规则来判断是否符合实际要求。

如果输入的数据通过字段规则的验证,则用户可以继续输入数据,否则将产生警告信息,要求用户重新输入。

设置字段的默认值 字段默认值是指在向数据表中添加新的记录时,该

字段可以是预先准备好的数值或字符串,不需输入。 默认值可以是除了通用型以外的任何数据类型,如

果该字段允许使用空值,则可以设置该字段的默认值为 .NULL 。

Page 19: 第 4 章  Visual FoxPro 数据库及其操作

19

3 .设置记录的有效性规则 设置字段的有效性规则和消息

记录有效性规则属于表的有效性规则,它可以控制用户输入到记录中的信息类型。

4 .表的触发器 定义:

触发器是针对数据表的表达式,当表中的任何记录被指定的操作命令修改时,触发器被激活。

种类: 插入触发器

Page 20: 第 4 章  Visual FoxPro 数据库及其操作

20

每次向表中插入或追加记录时触发该规则。 更新触发器

每次向表中修改记录时触发该规则。 删除触发器

每次向表中删除记录时触发该规则。 触发器的返回值为 .T. 或 .F. 。如果为 .T. ,则允许执行相

应的操作(插入记录、更新记录、删除记录),否则不允许执行相应的操作。

5 .使用长表名和注释 设置数据库表的长表名,可以在数据库的“表设计器”对话框中的

“表”选项卡中的“表名”文本框中输入长表名。 表注释是表的说明信息。当表的文件名和长表名都不能完全说明表的含

义时,可以设置表的注释。

Page 21: 第 4 章  Visual FoxPro 数据库及其操作

21

4.2.3 数据库表的操作 1 .添加数据表

一个数据库中可以包括一个或多个相关联的数据表。 可以向数据库中加入任何已经建立的表,但这个表

不能属于其他的数据库,因为同一个表在同一时间只能属于一个数据库。

如果要把其他数据库中的表加入到一个新的数据库中,可以先把要加入的表从原来的数据库中移出。

2 .删除数据表 数据库删除数据表,和添加数据表的操作方法类似。

Page 22: 第 4 章  Visual FoxPro 数据库及其操作

22

4.2.4 修改表结构 1 .方法:

在“项目管理器”中修改表结构 在“数据库设计器”中修改表结构 使用命令修改表结构

如果当前不在数据库设计器中,则首先要用 USE命令打开要修改的表,然后使用命令方式 MODIFY STRUCTURE 打开表设计器。

Page 23: 第 4 章  Visual FoxPro 数据库及其操作

23

4.3 表的基本操作

Page 24: 第 4 章  Visual FoxPro 数据库及其操作

24

4.3.1 使用浏览器操作 1 .打开浏览器

方法: 在项目管理器中将数据库展开至表,并且选择要操

作的表,然后单击“浏览”命令按钮即可。 在数据库设计器中选择要操作的表,然后从“数据

库”菜单中选择“浏览”,或者对要操作的表单击鼠标右键,然后从快捷菜单中选择“浏览”。

在命令窗口中,用 USE 命令打开要操作的表,然后输入 BROWSE 命令来浏览表。

Page 25: 第 4 章  Visual FoxPro 数据库及其操作

25

2 .浏览操作 下一记录:下箭头键 前一记录:上箭头键 下一页: PageDown键 前一页: PageUp键 下一字段: Tab键 前一字段: Shift+Tab键 可用鼠标上、下、左、右滚动翻页和定位记录

Page 26: 第 4 章  Visual FoxPro 数据库及其操作

26

4.3.2 增加记录的命令 1 . APPEND 命令

定义: APPEND 命令是在表的尾部增加一个或多个新记录。

2 . INSERT 命令 定义:

INSERT 命令可以在表的任意位置插入新的记录。

Page 27: 第 4 章  Visual FoxPro 数据库及其操作

27

4.3.3 删除记录的命令 1 .逻辑删除

命令格式: DELETE [FOR<逻辑表达式 >]

2 .恢复记录的命令 命令格式:

RECALL [FOR<逻辑表达式 >] 3 .物理删除有删除标记的记录

命令格式: PACK [MEMO][DBF]

Page 28: 第 4 章  Visual FoxPro 数据库及其操作

28

4 .物理删除表中的全部记录 命令:

ZAP 物理删除表中的全部记录,不管是否有删除标记。

该命令只是删除全部记录,并不删除表,执行完该命令后表结构依然存在。

Page 29: 第 4 章  Visual FoxPro 数据库及其操作

29

4.3.4 修改记录的命令 1 . EDIT 或 CHANGE 命令交互修改

这两个命令均用于交互式地对当前表记录进行编辑、修改,操作界面类似于 APPEND界面。

2 . REPLACE 命令直接修改 使用 REPLACE 命令直接用指定表达式或值来

修改记录。

Page 30: 第 4 章  Visual FoxPro 数据库及其操作

30

4.3.5 显示记录命令 1 . LIST/DISPLAY 命令

LIST 的默认范围是所有记录。 信息充满 Visual FoxPro主窗口或用户自定义窗口

以后, LIST 不给提示,继续显示。 当 SET DELETED 为 ON 时, LIST 不显示带删除

标记的记录。 命令格式:

LIST/DISPLAY [[FIELDS] Fiedlist] [FOR lExpression1] [OFF]

[TO PRINTER [PROMPT] | TO FILE FileName]

Page 31: 第 4 章  Visual FoxPro 数据库及其操作

31

4.3.6 查询定位命令 1 .用 GO 、 GOTO 命令直接定位 2 . SKIP 命令

定义: 将记录指针向前或向后相对移动若干条记录。相对

定位与当前记录有关,它是把记录指针从当前位置相对移动。

3 .用 LOCATE 命令定位 定义:

LOCATE 是按条件定位记录位置的命令。

Page 32: 第 4 章  Visual FoxPro 数据库及其操作

32

4.4 索引

Page 33: 第 4 章  Visual FoxPro 数据库及其操作

33

4.4.1 索引的概念 1 .定义:

VFP 索引是指由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。

2 .分类: 主索引

定义: 主索引是一种设定为主关键字的索引,其内容在一个表

中具有唯一性,不允许出现重复值。 它强调的“不允许出现重复值”是指建立主索引的字段值不允许重复。

如果在任何已含有的重复数据的字段中建立主索引, VFP 将产生错误信息,如果一定要在这样的字段上建立主索引,则必须首先删除重复的字段值。

Page 34: 第 4 章  Visual FoxPro 数据库及其操作

34

候选索引 定义:

候选索引和主索引一样,要求字段值的唯一性,并且决定了处理记录的顺序。

建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。

唯一索引 定义:

唯一索引的“唯一性”是指允许表中索引项的唯一,而不是字段值的唯一 。

在数据库表和自由表中均可为一个表建立多个唯一索引。

Page 35: 第 4 章  Visual FoxPro 数据库及其操作

35

普通索引 定义:

普通索引可以决定记录的处理顺序,它不仅允许字段中出现重复值,并且也允许索引项中出现重复值。

在数据库表和自由表中均可为一个表建立多个普通索引。

Page 36: 第 4 章  Visual FoxPro 数据库及其操作

36

4.4.2 在表设计器中建立索引 1 .单项索引 2 .复合字段索引

定义: 在多个字段上的索引称做复合字段索引。

2 .索引文件的种类 非结构单索引文件 非结构复合索引文件 结构复合索引文件

Page 37: 第 4 章  Visual FoxPro 数据库及其操作

37

4.4.3 利用命令窗口方式建立索引 1 .命令:

INDEX ON eExpression TO IDXFileName|TAG TagName [OF CDXFileName][FOR lExpresssion][COMPACT][ASCENDING |DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]

2 .说明: ASCENDING | DESCENDING表示建立升序或降序索引,

默认为升序。 UNIQUE 表示建立唯一索引。 CANDIDATE 表示建立候选索引。 ADDITIVE与建立索引本身无关,表示现在建立索引时是否关闭以前的索引,默认是关闭已经使用的索引。

Page 38: 第 4 章  Visual FoxPro 数据库及其操作

38

4.4.4 使用索引 1 .打开索引文件

命令格式: SET INDEX TO

2 .设置当前索引 命令格式:

SET ORDER TO 3 .使用索引快速定位

命令: SEEK

Page 39: 第 4 章  Visual FoxPro 数据库及其操作

39

4 .删除索引 格式 1 :

DELETE TAG TagName1[OF CDXFileName1] ,[TagName2[OFCDXFileName2]]…

格式 2 : DELETE TAG ALL [OF CDXFileName]

说明: TagName1[OF CDXFileName1] 指定要从复合索

引文件中删除的标识。 ALL [OF CDXFileName] 指定从复合索引文件中删

除所有标识。

Page 40: 第 4 章  Visual FoxPro 数据库及其操作

40

4.5 数据完整性

Page 41: 第 4 章  Visual FoxPro 数据库及其操作

41

4.5.1  实体完整性与主关键字 1 .实体唯一性

定义: 在 VFP 中利用主关键字和候选索引字来保证表中记

录的惟一性,即实体惟一性。 主关键字称为主索引,候选关键字称为候选索引,两者作用相同。

在 VFP 中将主关键字称为主索引,将候选关键字称为候选索引。建立主索引和候选索引就能够确保记录的唯一性。

Page 42: 第 4 章  Visual FoxPro 数据库及其操作

42

4. 5 . 2 域完整性与约束规则 1 .域完整性

定义: 通过限定字段的取值类型和取值范围来保证域完整

性,还可以进一步通过域约束规则来保证域完整性。 域约束规则也称作字段有效性规则,用于检验输入

数据的正确性。 建立字段有效性规则通常在“表设计器”中进行,

“字段”选项卡中定义字段有效性规则的项目有规则、信息和默认值 3 项。

Page 43: 第 4 章  Visual FoxPro 数据库及其操作

43

4. 5 . 3 参照完整性与表之间的关联 1 .建立参照完整性

步骤: 建立表之间的“永久联系”。 设置参照完整性约束。

建立了参照完整性,将对相关表做出限制: 当主表中没有相关记录时,该记录不得追加到相关子表中。

当主表的关键字段值改变导致相关子表中出现不相关记录时,在主表中不允许这样改变。

当主表中某条记录在相关表中有相关记录时,则该主表中的记录不允许删除。

Page 44: 第 4 章  Visual FoxPro 数据库及其操作

44

2.“参照完整性生成器”中单选按钮 级联:

在相关的子表中反映父表中的主关键字或候选关键字的更改,如果选择该按钮, VFP 会自动更改、删除和插入所有相关子表记录的连接字段值。

限制: 如果子表有相关记录,则禁止更改父表中相关记录

的主关键字或候选关键字字段的值,或者禁止删除父表中关联的记录。

忽略: 不作参照完整性检查,即仍允许更改、删除或插入父表中的记录。

Page 45: 第 4 章  Visual FoxPro 数据库及其操作

45

4. 6自由表

Page 46: 第 4 章  Visual FoxPro 数据库及其操作

46

4. 6 . 1数据库表与自由表 1 .创建自由表

方法: 使用项目管理器创建自由表 利用菜单方式创建自由表 利用命令窗口创建自由表

2.表的打开 使用 USE 命令方式 使用“文件”菜单中的“打开”项,进入打开对话

框,打开相应的表。

Page 47: 第 4 章  Visual FoxPro 数据库及其操作

47

3.表的关闭 方法:

使用不带任何选项的 USE 命令,关闭当前已打开的表。

使用 Close All 命令,关闭所有类型的文件。 使用 Close Databases 命令,关闭已打开的数据库

文件、表文件、索引文件等。 使用 Close Table命令,关闭当前打开的所有表,

不改变当前工作区。 使用 QUIT 命令,退出 VFP 系统,并关闭所有打开

的文件,返回操作系统。

Page 48: 第 4 章  Visual FoxPro 数据库及其操作

48

4. 6 . 2将自由表添加到数据库中 1 .方法:

使用项目管理器添加自由表 使用数据库设计器添加自由表 利用窗口命令添加自由表

ADD TABLE 一个表只能属于一个数据库,当一个自由表添

加到某个数据库后就不再是自由表了,所以不能把已经属于某个数据库的表添加到当前数据库,否则会有出错提示。

Page 49: 第 4 章  Visual FoxPro 数据库及其操作

49

4. 6 . 3从数据库中移出表 1 .方法:

使用项目管理器移出表 使用数据库设计器移出表 利用命令窗口方式移去表

命令格式: REMOVE TABLE

Page 50: 第 4 章  Visual FoxPro 数据库及其操作

50

4. 6 . 4更改数据表名 1 .方法:

打开要更改的数据表所在的项目,在项目管理器中右击要更名的数据表。

从弹出的快捷菜单中选择“重命名”命令,在重命名文件中输入要修改的文件名示。

Page 51: 第 4 章  Visual FoxPro 数据库及其操作

51

4.7 多个表的同时使用

Page 52: 第 4 章  Visual FoxPro 数据库及其操作

52

4.7.1 多工作区的概念 1 .多工作区

如果在同一时刻需要打开多个表,则只需要在不同的工作区中打开不同的表。

系统默认的总是在第 1 个工作区中工作,如果没有指定工作区,实际是都是在第 1 个工作区打开表和操作表。

2 .利用命令窗口选择工作区 命令格式:

SELECT nWorkAreca | cTabeleAlias

Page 53: 第 4 章  Visual FoxPro 数据库及其操作

53

4.7.2 使用不同工作区的表 1 .不同工作区

Visual FoxPro也允许利用 IN 命令在一个工作区内使用另一个工作区的表。

直接利用表名或表的别名引用另一个表中的数据,只需在别名后加上点号分隔符“ .” 或“﹣ >” 操作符,然后再接字段名即可。

Page 54: 第 4 章  Visual FoxPro 数据库及其操作

54

4.7.3 表之间的关联 1 .表间的联系方式

表间字段联系方式有 3种类型:一对一关系、一对多关系、多对多关系。

通常在建立数据库时,建立一个“纽带表”,将多对多的关系分解成为两个一对多关系表。

2 .建立临时关联 命令格式:

SET RELATION TO …… INTO …… 3 .取消临时关联

命令格式: SET RELATION OFF INTO

Page 55: 第 4 章  Visual FoxPro 数据库及其操作

55

4.8 排序

Page 56: 第 4 章  Visual FoxPro 数据库及其操作

56

1 .定义 排序是将记录按需要的顺序重新排列,产生一个新

的数据库文件,实现从物理上对数据库的重新排列。 2 .物理排序

命令格式: SORT TO TableName ON……

Page 57: 第 4 章  Visual FoxPro 数据库及其操作

57