版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章VisualFoxPro数据库及其操作
1/71页本章教学要求:掌握数据库和表的建立,对表的基本操作。3.1VisualFoxPro数据库和表的建立3.2建立数据库表3.3表的基本操作3.4索引3.5数据完整性3.6自由表3.7多表的同时使用3.8排序23.1VisualFoxPro数据库及其建立
在VisualFoxPro中,数据库可以说是一个逻辑上的概念和手段,它通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一进行组织和管理。
33.1VisualFoxPro数据库及其建立
3.1.1基本概念
数据库是具有逻辑关系的一组表的集合,表是库中的成员。
VisualFoxPro数据库以文件的形式保存在计算机的磁盘上,数据库文件的扩展名为.dbc,与之相关地还有一个扩展名为.dct的数据库备注(Memo)文件和一个扩展名为.dcx的数据库索引文件。一个数据库文件可以包含一个或多个表、表间的关联、视图和存储过程等。43.1VisualFoxPro数据库及其建立
3.1.2建立数据库
建立数据库的三种方法1.在项目管理器中建立数据库(1)在项目管理器中选择“数据”选项卡中的“数据库”,单击“新建”按钮。(2)单击“新建数据库”按钮后,弹出“创建”对话框;在“数据库名”文本框中输入新建的数据库名。(3)单击“保存”按钮即可完成数据库的建立,并打开“数据库设计器”。
5
建立数据库的三种方法(续)2.利用“文件”->“新建”命令建立数据库
(1)单击“文件”→“新建”菜单命令或者选择工具栏中的“新建”按钮;(2)在“文件类型”选项组中选中“数据库”单选按钮。(3)单击“新建文件”按钮,在“创建”对话框中输入要创建的数据库文件的名字。(4)单击“保存”按钮,即创建数据库并且打开该数据库的数据库设计器。
6
建立数据库的三种方法(续)3.用命令方式建立数据库
命令格式:CREATEDATABASE<数据库文件名>
73.1.3使用数据库
1.在项目管理器中打开数据库在项目管理器窗口下切换到“数据”选项卡,然后选择其中要打开的数据库,再单击窗口右侧的“修改”命令按钮,则弹出该数据库的数据库设计器。2.利用“文件”->“打开”命令打开数据库
单击“文件”→“打开”菜单命令或者选择工具栏中的“打开”按钮。在“文件类型”下拉列表框中选择“数据库(*.dbc)”。
83.用命令方式打开数据库打开数据库的命令是:OPENDATABASE。命令格式:OPENDATABASE<数据库文件名>
[EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]只读方式9
设置当前数据库
VisualFoxPro在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库。指定当前数据库的命令如下:
SETDATABASETO<数据库名字>其中“数据库名字”是一个已经打开的数据库的名字。如果不指定该参数,即输入命令:
SETDATABASETO此时使得所有打开的数据库都不是当前数据库(注意:所有的数据库都没有关闭,只是都不是当前数据库)。另外,也可以通过标准工具栏中的数据库下拉列表来选择、指定当前数据库。
103.1.4修改数据库
在VisualFoxPro中修改数据库实际是打开数据库设计器来进行操作,可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。1.在项目管理器中打开数据库设计器在项目管理器窗口下切换到“数据”选项卡,然后选择其中要修改的数据库,再单击窗口右侧的“修改”命令按钮,则弹出该数据库的数据库设计器。112.利用“文件”->“打开”命令打开数据库设计器
单击“文件”→“打开”菜单命令或者选择工具栏中的“打开”按钮。在“文件类型”下拉列表框中选择“数据库(*.dbc)”。
123.用命令方式打开数据库设计器修改数据库的命令是:MODIFYDATABASE。命令格式:MODIFYDATABASE<数据库文件名>
[NOWAIT][NOEDIT]133.1.5删除数据库
1.使用项目管理器删除数据库在项目管理器窗口下切换到“数据”选项卡,然后选择其中要删除的数据库,再单击窗口右侧的“移去”命令按钮。142.用命令删除数据库删除数据库的命令是:DELETEDATABASE。命令格式:DELETEDATABASE<数据库文件名>[DELETETABLES][RECYCLE]将数据库文件放入回收站删除数据库及其表153.1.6关闭数据库
两种方法:
1.利用“文件”->“关闭”命令关闭打开的数据库单击“文件”→“关闭”菜单命令可以关闭当前数据库。
2.用命令关闭数据库关闭数据库的命令是:CLOSEDATABASE。命令格式:
CLOSEDATABASE[ALL]关闭所有打开的数据库163.2建立数据库表
在VisualFoxPro中,数据表对应着关系,即二维表格。
VisualFoxPro的数据表也以文件的形式保存在计算机的磁盘上,数据表文件的扩展名为.dbf。一个数据表由若干记录(元组)构成。173.2建立数据库表
3.2.1在数据库中建立表
在VisualFoxPro中,表分为自由表和数据库表两种类型:自由表是指那些没有加入到任何数据库中的表。数据库表是指那些已经加入到相应数据库中的表。183.2.1在数据库中建立表
使用项目管理器来建立数据库表
要为数据库新建表,首先要进入到该数据库的数据库设计器界面,方法是:在项目管理器窗口下切换到“数据”选项卡选择其中要新建表的那个数据库单击窗口右侧的“修改”命令按钮,则弹出该数据库的数据库设计器在菜单栏中选择“数据库”菜单单击其中的“新建表”命令(或者在数据库设计器窗口的空白处右击鼠标,并在弹出“数据库”快捷菜单中选择“新建表”命令)参见P100相关内容193.2.2修改表结构
使用项目管理器来修改数据库表
方法:在项目管理器窗口下切换到“数据”选项卡选择其中要修改的那个表所属的数据库,并选中该数据库中要修改的那个表单击窗口右侧的“修改”命令按钮,则弹出该数据库表的表设计器。使用数据库设计器修改数据库表方法:进入要修改的那个表所属的数据库的数据库设计器窗口选中要修改的那个表单击“数据库”菜单,并单击其中的“修改”命令(或者在数据库设计器窗口中右击要修改的那个表,在弹出快捷菜单中选择“修改”命令。则弹出该表的表设计器)203.2.2修改表结构
使用命令修改数据库表
命令格式:
MODIFYSTRUCTURE213.3表的基本操作
Visual表的基本操作,其中包括增加记录、删除记录、修改记录、显示记录以及查询定位。223.3表的基本操作
3.3.1使用浏览窗口操作表
1.打开浏览窗口如果交互对表中的数据进行操作,那么最简单、方便的方法就是使用Browse浏览器。打开浏览器的常用方法有以下几种:(1)在项目管理器中将数据库展开至表,选择要操作的表,单击“浏览”按钮。(2)在数据库设计器中选择要操作的表,选择“数据库”→“浏览”命令;或者右击要操作的表,从弹出的快捷菜单中选择“浏览”命令。(3)命令方式下,首先用USE命令打开要操作的表,然后输入BROWSE命令。
233.3.2增加记录的命令
1.APPEND命令
命令格式:
APPEND[BLANK
]2.INSERT命令命令格式:
INSERT[BEFORE][BLANK]
243.3.3删除记录的命令
逻辑删除和物理删除。1.逻辑删除命令格式:
DELETE[范围][FOR<条件>]
2.恢复被逻辑删除记录的命令命令格式:
RECALL[范围][FOR<条件>]253.3.3删除记录的命令
3.物理删除带有删除标记的记录命令格式:
PACK[MEMO][DBF]命令说明:
MEMO表示从备注文件中删除未使用的空间,但不从表中删除带有删除标记的记录。
DBF表示从表中删除带有标记的记录,但不影响备注文件。
263.3.3删除记录的命令
4.物理删除表中的全部记录
命令格式:ZAP273.3.4修改记录的命令
用REPLACE命令修改记录数据
REPLACE命令直接用指定表达式的值来修改记录。
命令格式:
REPLACE[范围]<字段名1>WITH<表达式1>[,<字段名2>WITH<表达式2>]…[For<条件>]例:①useXSreplace姓名with“张晓军”,是否团员with.T.for姓名=“张小军”②useXSreplaceall总分with政治+数学+外语&&计算学生总分修改表的所有记录修改满足指定条件的记录283.3.5显示记录的命令
显示数据记录的命令是LIST和DISPLAY。
命令格式:LIST/DISPLAY[[FIELDS]Fieldlist][FOR<条件>][OFF][TOPRINTER[PROMPT]|TOFILEFileName]293.3.6查询定位的命令
1.GO和GOTO命令——绝对定位可以用GO、GOTO命令直接定位,GO和GOTO命令是等价的。命令格式:GOn|TOP|BOTTOMGOTOn|TOP|BOTTOM例3.5用GO命令直接定位记录。USEXS &&打开"学生"表GOTOP &&将记录指针定位在表的第一条记录上GOBOTTOM&&将记录指针定位在表的最后一条记录上表的第一个记录表的最后一个记录303.3.6查询定位的命令
2.SKIP命令——相对定位命令格式:SKIP[nRecords]例3.6用SKIP命令定位记录。USEXS &&打开"学生"表SKIP3?RECNO() &&显示第4条记录SKIP2?RECNO() &&显示第6条记录SKIP-2?RECNO() &&显示第4条记录313.3.6查询定位的命令
3.LOCATE命令LOCATE是按条件定位记录位置的命令。命令格式:LOCATE[范围]FOR<条件>例:使用LOCATE的定位。USEXSLOCATEFOR总分>=240CONTINUE323.4索引
3.4.1索引的概念
索引本质上是一张为了方便查找数据而设置的对照表。例如,书本的目录就是为了方便大家查找书本中的相关内容而设置的一张“章节内容”和“页码”的对照表。数据表的索引本质上是一张根据数据表创建的对照表。使用索引的目的是为了对数据表进行排序,从而实现数据的快速查找。可以对同一数据表按不同的列(字段)建立多个索引,也可以对同一数据表的同一个列(字段)建立多个索引。同一数据表的全部索引被保存在计算机的磁盘上的一个文件中,这就是复合索引文件,复合索引文件的扩展名为.CDX。333.4.1索引的概念
索引文件必须和对应的数据表一起使用,而不能单独使用。在每一个索引均可以设置升序或降序
。VFP中,索引可分为主索引、候选索引、普通索引和唯一索引4种类型。
341.主索引主索引是一种设定为主关键字的索引,其值在一个表中具有唯一性,不允许出现重复值。它强调的“不允许出现重复值”是指建立主索引的字段值不允许重复。
一个表只能有一个主关键字,所以一个表只能创建一个主索引。只有数据库表才能建立主索引,自由表不能建立主索引。
352.候选索引候选索引和主索引一样,要求字段值具有唯一性。建立候选索引的字段可以看做候选关键字,所以一个表可以建立多个候选索引。363.普通索引普通索引允许字段中出现重复值。在数据库表和自由表中均可为一个表建立多个普通索引。374.唯一索引唯一索引中的“唯一”是指允许表中索引项的唯一,而不是字段值的唯一。38索引示例39索引示例关键字值(学号)记录的物理地址(记录号)9921101799211022992110339921104499211055992110669921107740索引示例关键字值(姓名)记录的物理地址(记录号)曹伯6郝爱萍7李建2林勇军5王君望3王林4张瑞雪141索引示例关键字值(年龄)记录的物理地址(记录号)185193197201204206212423.4.2在表设计器中建立索引
1.打开表设计器的方法(1)在项目管理器中打开表设计器
方法:在项目管理器窗口下切换到“数据”选项卡选择其中要修改的那个表所属的数据库选中该数据库中要修改的那个表单击窗口右侧的“修改”命令按钮,则弹出该数据库表的表设计器。(2)在数据库设计器中打开表设计器方法:进入要修改的那个表所属的数据库的数据库设计器窗口选中要修改的那个表单击“数据库”菜单,并单击其中的“修改”命令(或者在数据库设计器窗口中右击要修改的那个表,在弹出快捷菜单中选择“修改”命令。则弹出该表的表设计器)43(3)使用命令打开表设计器
命令格式:
MODIFYSTRUCTURE443.4.2在表设计器中建立索引
2.创建索引
建立索引的操作步骤如下:(1)在表设计器界面下单击的“索引”选项卡,然后单击“插入”按钮,这时会在界面中出现一个新行;(2)在“索引名”列中输入所需的索引名;(3)在“索引类型”下拉列表框中选择所需的索引类型;(4)单击“表达式”列右侧的按钮打开表达式生成器;(5)在表达式生成器中输入索引表达式,单击“确定”按钮。(6)关闭表设计器窗口,保存结果。
453.4.3利用命令方式建立索引
命令格式:INDEXON〈索引表达式〉TAG〈索引名〉[ASCENDING|DESCENDING][UNIQUE|CANDIDATE]例3.7建立索引:打开学生表XS,以“数学”字段创建一个名为“sx_cj”的索引。USEXSINDEXON数学TAGxs_cj463.4.4使用索引
设置、关闭主控索引(1)设置主控索引命令:setordertotag<索引名>(2)关闭主控索引命令:setorderto473.4.5使用SEEK快速定位483.4.4使用索引
删除索引
>>当不再需要使用某个索引时,可以删除它。
>>既可以在表设计器中删除索引,也可以用命令来删除索引。删除索引的命令有以下两种格式:命令格式1:DELETETAG<索引标识名1>[,<索引标识名2>]…命令格式2:DELETETAGALL例:删除索引。USEXSDELETETAGsx_cj493.5数据完整性
在数据库中数据完整性是指保证数据正确的特性。数据完整性一般包括实体完整性、域完整性和参照完整性等,VisualFoxPro提供了实现这些完整性的方法和手段。503.5数据完整性
3.5.1实体完整性与主关键字
实体完整性:是对关系中的记录唯一性,也就是主关键字的约束。具体来说,实体完整性是指关系中的主关键字不能为“空”值且不能有相同值。在VFP中,实体完整性是通过设置主关键字或候选关键字来实现的。513.5数据完整性
3.5.2域完整性与约束规则
域完整性:是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束。域完整性是通过以下几个方面来实现的:(1)限定字段的取值类型和取值范围;(2)设置域约束规则。域约束规则也称作字段有效性规则,它用于检验输入数据的正确性。
523.5.2域完整性与约束规则
设置字段有效性规则设置字段有效性规则通常是在表设计器中进行,“字段”选项卡中定义字段有效性规则的项目有“规则”、“信息”和“默认值”这3项。具体的步骤如下:(1)进入数据库表的表设计器后,单击要定义字段有效性规则的字段;(2)分别输入“规则”、“信息”及“默认值”等项目;字段有效性规则的项目可以直接输入,也可以单击文本框旁边的按钮打开表达式生成器来生成相应的表达式。
533.5数据完整性
3.5.3参照完整性与表之间的关联表之间的关联:一个数据库包含的各个表中,有一些表之间存在着某种逻辑上的联系,为了反映这种联系,就需要建立这些表之间的关联。通常,存在逻辑上的联系的两个表有公共字段(相同的某个字段),这两个表之间的关联就是按照这它们的公共字段值相等来建立的。参照完整性:参照完整性与表之间的关联有关,其含义是:当插入、删除或修改一个表的数据时,通过参照引用与之关联的另一个表的数据,来检查对该表的数据操作是否正确。
543.5.3参照完整性与表之间的关联1.建立表之间的永久联系(关联)建立数据库表之间的永久联系(关联)需要在数据库设计器中进行操作。首先,需要在要建立关联的两个数据库表中按这两个表的公共字段分别建立主索引和普通索引。父表——以公共字段建立了主索引的那个表子表——以公共字段建立了普通索引的那个表553.5.3参照完整性与表之间的关联1.建立表之间的永久联系(关联)下面通过建立数据库表之间永久联系(关联)的实例来介绍建立数据库表之间永久联系(关联)的方法和步骤。假设在学校管理数据库中有学生表、成绩表、课程表。(1)学生表含有字段为学号、姓名、性别,以学号建立主索引。(2)成绩表含有字段为学号、成绩、课程号,以学号建立普通索引。(3)课程表含有字段为成绩、课程号、学号,以课程号、学号建立普通索引。56
在这3个表中,学生表和成绩表是一对多的联系,连接字段是“学号”。学生表和课程是一对多的联系,连接字段是“课程号”。
建立学生和成绩之间的一对多联系选中学生表中的主索引“学号”,按住鼠标左键拖动鼠标到成绩表的“学号”索引上,鼠标指针会变成小矩形状,释放鼠标。这样就在学生表和成绩表之间建立了一对多的联系。
573
.5.3参照完整性与表之间的关联2.设置参照完整性
通常设置参照完整性需借助VFP的参照完整性生成器来完成。在建立参照完整性之前必须首先清理数据库。所谓清理数据库就是物理删除数据库各个表中已经标有删除标记的记录。清理数据库的具体操作步骤如下:打开数据库设计器,在主菜单栏上出现“数据库”菜单;选择“数据库”→“清理数据库”命令。该操作等同于执行命令PACKDATABASE。
583.5.3参照完整性与表之间的关联2.设置参照完整性
设置参照完整性的具体操作步骤:打开数据库设计器,在主菜单栏上出现“数据库”菜单;选择“数据库”→“编辑参照完整性”命令。或是右击表之间的联系,从弹出的快捷菜单中选择“编辑参照完整性”命令参照完整性规则具体见P116593.6自由表
3.6.1数据库表与自由表所谓自由表,就是那些不属于任何数据库的表。自由表和数据库表之间可以相互转化。即可以将自由表添加到数据库中,使之成为数据库表;也可以将数据库表移出数据库,使之成为自由表。603.6自由表
1.使用项目管理器创建自由表操作步骤如下。(1)打开项目管理器,切换到“数据”选项卡;(2)选择“自由表”项,单击“新建”按钮,弹出“新建表”对话框;(3)单击“新建表”按钮可以打开表设计器创建自由表。613.6.1数据库表与自由表2.利用菜单方式创建自由表操作步骤如下:(1)选择“文件”→“新建”菜单命令,打开“新建”对话框;(2)在“文件类型”选项组中选择“表”;(3)单击“新建文件”按钮,打开表设计器对话框建立自由表。3.利用命令方式创建自由表命令格式:
CREATE<表文件名>|?62!注意:利用菜单方式(“文件”→“新建”命令)和CREATE命令创建的表默认均是自由表,要创建数据库表应使用项目管理器或是第四章中讲到的“CREATETABLE”命令。633.6.2将自由表添加到数据库中把自由表添加到数据库中可以使用以下3种方法:1.使用项目管理器添加自由表操作步骤如下:(1)在项目管理器中将要使用的数据库展开至表,选择“表”;(2)单击“添加”按钮,调出“打开”对话框,从中选择要添加的自由表。643.6.2将自由表添加到数据库中2.使用数据库设计器添加自由表操作步骤如下:(1)打开数据库设计器,选择“数据库”→“添加表”菜单命令,弹出“打开”对话框;(2)在“打开”对话框中选择要添加的自由表。3.利用命令方式添加自由表命令格式:ADDTABLE<表文件名>[NAMELongTableName]给表指定一个长表名(最多可以有128个字符)653.6.3从数据库中移去表将自由表移出数据库可以利用项目管理器、数据库设计器和命令方式3种方法:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024届哈尔滨市第六中学高三年级第二次四校联考数学试题
- 餐饮企业用工合同范本
- 财政审计造价合同模板
- 补钱协议书复制
- 脑梗中医治疗方法
- 新闻传播学中的新闻素养与媒介批评
- 颈椎病教学课件
- 高风险手术的围手术期管理
- 《船用眼板》规范
- 2024-2025学年上海市浦东新区洋泾中学高三(上)期中数学试卷
- 铁路物资管理模拟考试试题
- 初中历史课堂教学如何体现学生的主体地位
- 部编版三年级上册语文课件-习作六:这儿真美---(共19张PPT)部编版
- 2020湖南湖南省建筑施工开工安全生产条件承诺书
- 《白内障》PPT课件.ppt
- 先进先出(FIFO)
- 2020年四年级上册语文素材-全册课文梳理(1-27课)-人教(部编版)全册可修改打印
- 汽轮机本体检修规程
- 档案数字化实施说明及报价表
- 翻板滤池设计计算
- 红楼梦1——40回考点梳理
评论
0/150
提交评论