VFP数据库文库.docx
- 文档编号:6766001
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:22
- 大小:30.50KB
VFP数据库文库.docx
《VFP数据库文库.docx》由会员分享,可在线阅读,更多相关《VFP数据库文库.docx(22页珍藏版)》请在冰豆网上搜索。
VFP数据库文库
VFP数据库文库.txt你妈生你的时候是不是把人给扔了把胎盘养大?
别把虾米不当海鲜。
别把虾米不当海鲜。
数据库作(18学时)、表的基本操
一、【教学目标】
1.理解并掌握数据库的创建
2.理解并掌握数据库表属性的设置
3.掌握数据库的操作
二、【重点和难点】
重点
1.数据库的操作。
2.数据库表的操作。
3.建立排序和索引。
自由表的操作。
4.使用不同工作区表的操作。
难点
1.数据库表的操作。
2.索引的建立和使用。
3.数据完整性的设置。
三、【学法指导】
1.数据库和数据表的建立是本章基础。
2.编辑表中的数据、记录修改与删除,表的索引等操作,是后续章节的基础。
3.本章学习的要点是多做上机练习,熟练掌握数据库和数据表的操作。
四、【教学要点】
本章主要介绍数据库、数据表的基本概念;数据库和数据表的建立、编辑表中的数据、记录修改与删除,表的索引等有关操作。
2.1VFP数据库及其建立
数据库管理系统是一种极为重要的程序设计语言,它与其他语言的主要差异在于它先天具备组织管理和高效率访问大批量数据的功能。
设计一个功能齐全、结构优化的数据库,是设计数据库管理系统必不可少的一个重要环节。
VFP中文版为我们提供两个功能强大的数据库设计工具——数据库向导和数据库设计器。
数据库向导能帮助初学者在很短的时间内设计出一个数据库。
而数据库设计器能设计出满足用户实际需要的较为复杂的数据库。
它们不仅能设计建立数据库,而且还提供了一套完善的数据库管理和维护功能。
2.1.1基本概念
1.数据库的概念
一定要注意,在VISUALFOXPRO中数据库与表是两个不同的概念,数据库文件是各项与数据库相关信息的汇集处,数据库可以管理表,查询,视图等数据实体,又可提供了数据字典,各种数据保护及数据管理功能。
在建立数据库时,相应的数据库名称实际是扩展名为DBC的文件,与之相关的还会自动建立一个扩展名DCT的数据库备注文件和一个扩展名为DCX的数据库索引文件.
数据库建立好后,还只是一空库,它没有任何数据,需要建立或添加数据库表才能实现对数据的统一的管理。
2.表的概念
VFP作为关系型数据库系统,是用来管理数据的,而数据以记录和字段的形式存储在数据库中,数据库就是一个关于某一特定主题或目标的信息集合。
表是从简单数据处理到创建关系型数据库,再到设计应用程序的过程中所用到的基本单位,它是数据库的基础,可以说,表是关系数据库系统中的基本结构。
如果要保存数据,就应为所需记录的信息创建一个表。
数据表是由行和列组成的,每一行称为一条记录,每一列称为一个字段。
每条记录可以有若干个字段,而且每条记录具有相同结构的字段。
相同结构的含义是具有相同的字段名、字段类型和字段顺序。
2.1.2建立数据库
数据库的建立
建立数据库的常用方法有以下三种:
l在项目管理器中建立数据库.
l通过”新建”工具或”文件”菜单的”新建”一项实现.
l使用命令CREATEDATABASE建立.
1.在项目管理器中建立数据库
在项目管理器中建立数据库首先要打开相应的项目,在”数据”选项卡中选择”数据库”,再单击”新建”按钮并选择”新建数据库”(如图2.1),
图2.1
接着通过创建对话框提示用户输入数据库的名称(名称由用户自己命名),如果未命名,则系统默认文件名为”数据1”(如图2.2),相应的扩展名为.DBC.
图2.2
2.通过”新建”对话框建立数据库
图2.3
单击工具栏上的”新建”按钮或者选择”文件”菜单下的”新建”,打开如图2.3所示的”新建”对话框.首先在”文件类型”组框中选择”数据库”,然后单击”新建文件”按钮建立数据库,然后的操作和步骤与在项目管理器中建立数据库相同,使用这种方法建立的数据库同样处于打开状态,同时打开相应的数据库设计器.如图2.4
图2.4
3.使用命令建立数据库.
建立数据库的命令格式是:
CREATEDATABASE[DatabaseName|?
]
DatabaseName为用户要建立的数据库名称.
如不输入名称或使用”?
”将出现提示用户输入名称对话框.如图2.5
图2.5
使用该命令所建立的数据库处于打开状态,不过相应的数据库设计器并没有打开,这是与上面两种方法不同的地方。
总之,使用以上三种方法都可以建立一个新的数据库。
如果指定的数据库已经存在,很可能会覆盖掉已经存在的数据库。
如果系统环境参数SAFETY被设置为OFF状态会直接覆盖,否则会出现警告对话核框请用户确认因此,为安全起见可能先执行SETSATETYON。
2.1.3数据库的使用
1.数据库的打开
建立数据库的目的是管理表中的数据,在使用之前,必须先打开数据库,常用的数据库打开方法有如下三种:
①通过“文件”菜单的“打开”功能项打开相应的数据库。
如图2.6所示,这里要注意“文件类型”下拉列表选择“数据库(*.dbc).
图2.6
在“打开”对话框中还有“以只读方式”和“独占”两个复选框可供选择,它们的功能将在命令格式中加以介绍。
②在项目管理器中打开数据库。
先打开数据库所在的项目,再选择相应的已存在的数据库名称。
这时数据库自动打开,用户不必再执行手工打开数据库操作。
③使用命令方式打开数据库
打开数据库的命令格式为:
OPENDATABASE[Filename|?
][EXCLUSIVE|][NOUPDATE]
参数说明:
Filename为要打开的数据库名称
EXCLUSIVE以独占方式打开数据库,即在同一时刻不允许多个用户同时使用。
SHARED以共享方式打开数据库,等同于“打开”对话框中的不选择“独占”复选项。
NOUPDATE指定数据库按只读方式打开,等效于在“打开”对话框中选择复选项“以只读方式打开”,即不允许对数据库库进行写操作。
数据库文件打开默认的方式是可读写方式。
2.数据库的修改
在VISUALFOXPRO中数据库的修改要通过“数据库设计器”来实现,所以要想修改数据库,必须先打开“数据库设计器”,通过“数据库设计器”来完成对数据库的建立,修改和删除等操作。
我们前面讲过,数据库一旦打开,“数据库设计器”便随之自动打开,所以我们先要打开要修改的数据库。
如果是通过“项目管理器”打开的数据库,如图2.7所示,点击“修改”按钮,便打开了“数据库设计器”。
图2.7
在命令窗口中打开数据库设计器或修改数据库的命令格式为:
MODIFYDATABASE[Databasename|?
][NOWAIT][NOEDIT]
说明:
Databasename为要打开的数据库名称。
如果使用“?
”或不使用Databasename系统将出现提示“打开”对话框,要求用户选择要打开的数据库。
NOWAIT该选项只在程序方式中使用,在命令窗口无效。
NOEDIT表示允许打开数据库,但不允许修改。
3、数据库的删除
在使用中,如果某个数据库不再有用,我们可以将其从项目管理器或磁盘上清除。
从项目管理器中删除
打开项目管理器,选择“移去”按钮,出现如图2.8所示对话框。
图2.8
这时有三个选项,这三个选项的功能如下:
移去:
只从项目管理器中删除数据库,并没有真正从磁盘中删除数据库文件。
删除:
真正从磁盘中删除数据库文件,这时项目管理器中也一定不存在该文件。
取消:
取消当前操作,不对数据库进行删除。
使用这种方式删除数据库,并没有将数据库中的表,视图等数据库对象从磁盘中删除,因为表,视图等对象是以文件的形式独立存在于磁盘上的,要想在删除数据库的同时,删除相应的表等文件,可以使用命令格式。
删除数据库的命令格式为:
DELETEDATABASEDatabasename|?
[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个字节。
字符型(二进制)(CharacterBinary)。
字符型(二进制)用于存储不需要系统代码页页维护的字符数据。
其他字段特性同字符型字段。
备注型(二进制)(MemoBinary)。
备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。
其他字段特性同备注型字段。
3.字段宽度
每一种数据类型都有其规定宽度。
字符型字段的最大宽度为254。
货币型字侧面宽度固定为8个字节。
数据型字段的最大宽度为20个字节,小数位数最大为19。
浮点型字段在功能上等价于数值型字段。
日期型字段宽度固定为8个字节。
日期时间型字段宽度固定为8个字节。
双精度型字段宽度固定为8个字节。
备注型字段宽度固定为4个字节,用于存储一个4个字节的指针,指向存储的FPT文件中真正的备注内容。
备注字段存储文本长度仅受可用磁盘空间大小的限制。
通用型字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容。
整型字段宽度固定为4个字节。
小数位数
当字段类型为“Numeric”或“Float”,应在“小数位数”栏中设置小数的位数。
4.空值
是否允许为空(NULL)如果允许字段接受“NULL”栏所在框,则应选中“NULL”栏所在框,否则,不选中该栏,表的字段不允许为NULL值。
5.字段的显示属性
格式:
控制字段在浏览窗口、表单、报表等显示时的样式。
输入掩码:
控制输入该字段的数据的格式。
如:
商品编号的格式由一个字母和一个五位数字组成,则掩码可以定义为S99999
。
标题:
若表结构中字段名用的是英文,则可以在标题中输入汉字,这样显示该字段值时就比较直观了。
没有设置标题,则将表结构中的字段名作为字段的标题。
6.字段有效性
规则:
限制该字段的数据的有效范围。
在规则中输入:
性别="男".OR.性别="女"。
这样当给“性别”字段输入记录值时就只能输入“男”或“女”。
订购数量的有效性规则可以设为:
订购数量>=0.and.订购数量<=1000。
信息:
当向设置了规则的字段输入不符合规则的数据时,就会将所设置的信息显示出。
默认值:
当往表中添加记录时,系统向该字段预置的值。
在“性别”字段中输入默认值为“男”。
输入记录时只有女生才需要改变默认值,可以减少输入。
字段有效性的设置如图2.11所示。
2.2.2修改表结构
在VFP中,表结构可以任意修改:
可以增加、删除字段,可以修改字段的宽度,可以建立、修改、删除有效性规则、索引等。
1.以项目管理器方式修改:
在项目管理器窗口中选择“数据”选项卡,选定“表”,再单击“修改”按钮。
修改表结构和建立表的表设计器界面完全一样。
2.在当前的数据库设计器中,右击要修改的表,然后从弹出的捷菜单中选择修改。
3.在命令窗口中使用命令
命令格式:
MODIFYSTRUCTURE
修改表结构和建立表的表设计器界面是完全一样的,目前可以做的修改包括:
①修改已有的字段
②增加新字段
③删除不用的字段
2.3表的基本操作
2.3.1使用浏览器操作表
如果交互对表中的数据进行操作,那么最简单,方便的方法就是使用Browse浏览器,打开浏览器的方法有多种,常用的方法有:
①在项目管理器中将数据库展开至表,并且选择要操作的表,然后单击“浏览”按扭(如图2.12所示)。
图2.12
②在数据库设计器中选择要操作的表,然后从“数据库”菜单中选择“浏览”;或者右键单击要操作的表,然后从弹出菜单中选择“浏览”。
③在命令方式下,首先用USE命令打开要操作的表,然后键入BROWSE命令。
以上各种方式打开的BROWSE浏览器的界面如图2.13所示,在该界面中可以浏览,添加,删除和修改记录等。
图2.13
2.3.2增加记录命令
1.APPEND命令
APPEND命令是在表的尾部增加的记录,它有两种格式:
APPEND或APPENDBLANK。
使用APPEND命令需要立刻交互输入新的记录值,界面如图3.14所示,一次可以连续输入多条新的记录,然后用Ctrl+Esc键结束输入新记录。
而APPENDBLANK是在表的尾部增加一条空白记录,然后再用EDIT,CHANGE或BROWSE命令交互输入(修改)空白记录的值,或用REPLACE命令直接修改空白记录值。
2.INSERT命令
INSERT命令可以在表的任意位置插入新的记录,命令格是:
INSER[BEFORE][BLANK]
如果不指定BEFORE,则在当前记录之后插入一条新记录,否则在当前记录之前插入一条新记录。
如果不指定BLANK,则直接出现编辑界面,并交互输入记录的值;否则在当前极力之后(或之前)插入一条空记录,然后再用EDIT,CHANGE或BROWSE命令交互输入(修改)空白记录的值,或用REPLACE命令直接修改该空白记录值。
2.3.3删除记录命令
1.置删除标记的命令
逻辑删除或置删除标记的命令是DELETE,常用格式如下:
DELETE[FORlExpressionl]
如果不用FOR短语指定逻辑条件,则只逻辑删除当前一条记录;如果用FOR短语指定了逻辑表达式lExpressionl,则逻辑删除使该逻辑表达式为真的所有记录。
例2.1逻辑删除当前表商品名称为夹心饼干的记录。
Delefor商品名称="夹心饼干"
图2.14
2.恢复记录的命令
被逻辑删除的记录可以恢复,恢复记录的命令是RECALL,常用格式如下:
RECALL[FORlExpressionl]
如果不用FOR短语指定逻辑条件,则只恢复当前一条记录(如果当前记录没有删除标记,则该命令什么都不做);如果用FOR短语指定了逻辑表达式lExpressionl,则恢复使该逻辑表达式为真的所有记录。
例2.2将当前表中已经删除的夹心饼干恢复。
Recallfor商品名称="夹心饼干"
3.物理删除有删除标记的记录
物理删除有删除标记记录的命令是PACK,执行该命令后所有有删除标记的记录将从表中被物理地删除,并且不可能再恢复。
例2.3将当前表中有删除标记的记录物理删除.
Pack
4.物理删除表中的全部记录
使用ZAP命令可以物理删除表中的全部记录(不管是否有删除标记),该命令只是删除全部记录,并没有删除表,执行完该命令后表结构依然存在。
2.3.4修改记录命令
1.交互修改的命令
EDIT和CHANGE均用于交互对当前的表的记录进行编辑、修改,可通过鼠标操作快速定位到要修改的记录,然后直接在原有的基础上修改。
2.直接修改的REPLACE命令
可以使用命令直接用指定表达式或值修改记录,
REPLACE命令的常用格式为:
【格式】REPLACE<字段名1>WITH<表达式1>[FOR<逻辑表达式1>]
【功能】用指定表达式的值替换当前表中满足条件记录的指定字段的值。
说明:
该命令适合对当前库进行成批地、有规律地修改。
缺省范围、条件时,仅替换当前记录,该命令回车后,数据修改自动完成。
例2.4求出订购单表中的金额
Replaceall金额with 单价*订购数量
2.3.5显示记录的命令
【格式】LIST|DISPLAY[FIELDS<字段名表>][<范围>][FOR<条件表达式>]
【功能】将当前表文件的记录按照指定的选项进行显示。
【说明】DISPLAY命令与LIST命令的功能相似,当表文件的数据记录较多时,用DISPLAY命令较为方便。
如果同时缺省<范围>和<条件>子句,DISPLAY命令只显示当前的一条记录,而LIST命令则是取默认值ALL而显示全部记录。
FIELDS<字段名表>:
用来指定显示的字段。
FOR<条件表达式>:
指定对表文件中指定范围内满足条件的记录进行操作。
<范围>:
用来指定显示哪些记录。
“范围”有以下四种表示方法:
·
●ALL:
所有记录。
●
·NEXTN:
从当前记录开始,后面的N条记录(包括当前记录)
·RECORDN:
第N条记录。
·REST:
当前记录后的全部记录(包括当前记录)。
例2.5显示最后一个字为“酒”的记录
Listforright(商品名称,2)="酒"
2.3.6查询定位命令
1.绝对定位
GO[to][record][<物理记录号>|<内存变量表达式>]|[top]|[bottom]
【功能】将记录指针移动到指定的位置
2.相对定位
skip[±记录数]
【功能】从当前记录开始向前或向后移动记录指针。
3.用LOCATE命令定位
【格式】LOCATE[<范围>][FOR<条件>]
【功能】按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。
参数描述:
[<范围>]:
指定要定位的记录范围。
只有在范围内的记录才被定位。
LOCATE命令的默认范围是ALL。
[FOR<条件>]:
LOCATE命令按顺序搜索当前表以找到满足逻辑表达式的第一个记录。
如果让指针指向下一条满足条件的记录上,使用CONTINUE命令。
例2.6使指针指向烟酒类的记录
LOCATEFOR类别="烟酒"
CONTINUE
2.4索引和排序
2.4.1索引概念
数据库表记录一般是按照其输入的顺序进行显示的。
在处理表记录的过程中,通常是按照表中记录的存储顺序进行。
当数据库表中记录的数据很多时,按照这种方法显示就不便于用户查找自己需要的信息。
特别是当需要按照另外的顺序处理时,可以使用索引来改变记录的顺序。
由于索引文件中存储的是按照某一字段的值排列的一组记录号,每条记录号指向一个待处理的记录,所以实际上索引可以理解为根据某一字段的值进行逻辑排序的一组指针。
在按照索引重新排列的数据库表中显示的记录,VFP将按照指针排列的顺序分别读取每一条记录,而这些记录在数据库中的实际存储位置并未改变。
1.索引的结构
VFP中有三种索引:
结构复合索引(.CDX)、非结构复合索引(.CDX)、独立索引(.IDX)。
其中结构复合索引是所有索引中最重要的索引。
本书中大多是结构复合索引,它的特点是:
在表打开时自动打开。
在同一个索引文件中可以有多种排序方式,具有多个索引关键字。
在对表进行添加、更改、删除时索引文件自动维护。
2.索引的类型
在数据库中,把用来确定索引顺序的字段称为关键字字段。
在VFP中,可以根据关键字字段建立下列四各类型索引:
主索引、候选索引、普通索引及惟一索引。
主索引:
可以确保字段中输入值的惟一性并决定了处理记录的顺序。
在创建数据时,除了纽带表以外,一般应根据主关键字字段给每一个表建立主索引。
但不能给自由表建立主索引。
候选索引:
同主索引一样也能确保字段值的惟一性,也能根据候选索引决定处理记录的顺序。
与主索引不同的是,自由表可以建立候选索引。
在数据表中,主索引只能有一个,但候选索引可以有多个。
在创建数据库时,应根据主关键字字段以外的其他字段建立候选索引。
普通索引:
也可以决定记录的处理顺序,但其最大的特点是允许字段中的值可以重复。
在创建数据库时,应在位于一对多关系的多端的表中建立一个普通索引。
这样,在根据普通索引排序或查询记录时,系统将列出所有符合条件的记录。
在一个表中可以加入多个普通索引。
惟一索引:
为了保证与以前版本的兼容性,VFP中可以使用惟一索引。
惟一索引允许出现重复,但惟一索引只存储索引文件中重复值第一次出现的记录。
“惟一”指索引文件对每一个特定的关键字只存储一次,而忽略了重复值第二次及以后的记录。
2.4.2在表设计器中建立索引
对于表,可以对一个字段或一个表达式建立索引。
为了使索引更为有效,对于那些经常用于对表、视图或报表建立过滤器的字段最好建立索引。
如果用户对不经常用于过滤或查询的字段建立索引,它有可能降低运行效率。
建立索引的操作步骤如下:
①在“项目管理器”中,选择想要加入字段的“表”,然后选择“修改”按钮。
在所显示的“表设计器”中,选择“索引”,。
②在“索引名”框中,输入索引名。
③在“类型”处,选择索引类型。
④在“表达式”框中,输入“索引表达式”,或单击右侧“…”按钮,系统进入“表达式生成器”对话框,来定义表达式。
⑤如果想要选择记录,可以在“筛选”框右侧,单击“…”按钮,系统进入“表达式生成器”对话框,建立过滤器。
单击“确定”按钮,完成索引的创建。
如果在表中建立一个主索引或候选索引,输入记录时,系统还可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 数据库 文库