Visual FoxPro程序设计课件第4章数据库和表_第1页
Visual FoxPro程序设计课件第4章数据库和表_第2页
Visual FoxPro程序设计课件第4章数据库和表_第3页
Visual FoxPro程序设计课件第4章数据库和表_第4页
Visual FoxPro程序设计课件第4章数据库和表_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1创建表

4.2表的基本操作

4.3索引的建立和使用

4.4数据库第4章数据库和表4.1创建表4.1.1表的创建每一个表都是由表结构和表中数据两部分构成,创建表结构就是对表中所需字段进行设计。表中数据是在创建好表结构的基础上,进行数据的录入。

1.常用创建表的方法有三种(1)利用表设计器创建(菜单方式)选择“文件”→“新建”命令,打开“新建”对话框,选择“表”单选钮,单击“新建文件”,依次进行设计。(2)使用表向导创建(菜单方式)

(3)命令方式

命令格式:CREATE[<表文件名[.DBF]>]

说明:输入和不输入<表文件名>,打开的窗口不一样。例如:在命令窗口中创建名为xs的自由表。

CREATExs&&该命令直接进入表设计器。

CREATE&&该命令打开“创建”对话框,输入表名XS后,打开表设计器。2.表结构的编辑编辑表结构常用的有两种方法:(1)菜单方式步骤:

1)打开表。“文件”→“打开”,选择要打开的表。

2)打开表设计器。选择“显示”→“表设计器”命令,打开“表设计器”对话框。

3)进行各种表结构的修改。包括增、删字段,字段属性修改等(2)命令方式命令格式:MODIFYSTRUCTURE[<表文件名>]

功能:打开表设计器进行表结构修改。(3)说明

1)菜单方式和命令方式可配合使用。

2)修改字段类型时,不改变字段内容。

3)表结构修改前,系统自动备份当前表,修改完成后,将备份表中数据追加到新修改的表结构中。

4)备份表时,若表中存在备注字段,将创建一个备注备份文件。表备份文件扩展名为.BAK,备注备份文件的扩展名为.TBK。4.1.2输入表记录

1.建立表结构之后立即输入

2.在表中追加记录

浏览界面追加

编辑界面追加说明:①逻辑型字段只能接受单个字母T(Y)或F(N),不区分大小写。

②日期型数据必须与系统给定的日期格式相符。

③备注型字段显示为“memo”

④通用型字段存放的是多媒体数据,如图形、图像、声音等。4.2表的基本操作4.2.1表的打开和关闭

1、表的打开(1)菜单方式:“文件”→“打开”,在“打开”对话框的“文件类型”中选择“表”,双击要打开的表名即可。

(2)命令方式命令格式:USE<表文件名>

例如:打开保存在U盘中第4章目录下的表文件XSDA

useU:/第4章/xsda

说明:1)打开表文件后,VF窗口无显示信息,如果要显示表内容,需要打开浏览窗口查看表内容,或是使用显示命令显示表内容,才可以看到信息。2)在打开对话框中有“以只读方式打开”和“独占”复选框可以选择,这里“以只读方式打开”指表打开后不能进行修改;而“独占”指不允许其他用户在同一时刻使用该表,但可以修改表结构和表数据。

3)在一个工作区中打开另一个表时,先前打开的表文件自动关闭。

4)如果表中包括备注字段,就自动打开相关的备注文件(.FPT)2、表的关闭(1)菜单方式选择“窗口”→“数据工作期”命令,在“数据工作期”对话框中,选择表的别名后,单击“关闭”按钮。(2)命令方式格式1:USE

格式2:CLOSETABLES∣ALL

说明:1)关闭表的浏览窗口并非关闭表文件2)USE为关闭当前打开的表文件3)CLOSEALL为关闭所有打开的文件,包括表文件4)CLOSETABLES为关闭所有打开的自由表4.2.2浏览表浏览表即打开表的浏览窗口,显示表文件中的数据记录。打开表文件后,需打开浏览窗口才能进行记录的浏览和编辑。

1.打开浏览窗口(1)选择“显示”→“浏览”命令。(2)在命令窗口输入命令:BROWSE或BROWSELAST命令

2.在浏览窗口中浏览或编辑记录(1)浏览记录:选择“显示”→“浏览”命令。(2)编辑记录:选择“显示”→“编辑”命令。4.2.3显示表显示表包含显示表记录和显示表结构两种。

1.显示表记录(1)菜单方式第一步:打开所要选择的表(例:学生档案表)。第二步:选择“显示”→“浏览”命令,显示表中记录。同前浏览表操作。(2)命令方式格式:DISPLAY∣LIST

功能:在工作区窗口显示表中记录。DISPLAY和LIST的区别:1、DISPLAY仅显示当前记录;而LIST则显示所有记录。

LIST等价于DISPLAYALL。2、当一次显示的记录多于一个屏幕时,DISPLAYALL命令能分页显示,每显示完一页时暂停;而LIST命令则连续显示。例:显示“学生档案”表中记录。

USED:\学生成绩管理\学生档案.DBF

DISPLAY

LIST

GO5

DISPLAY

DISPLAYALL2.显示表结构(1)菜单方式第一步:打开所要选择的表(例:学生档案表)。第二步:选择“显示”→“表设计器”命令,打开表结构。(2)命令方式格式:DISPLAY∣LISTSTRUCTURE

功能:在工作区窗口显示当前表文件的结构。说明:①DISPLAYSTRUCTURE分页显示,而LISTSTRUCTURE连续滚动显示。②最后一行为总计行,数据等于各个字段宽度之和再加1,多加的1个字节用来存放记录的删除标志。4.2.4编辑表中数据

编辑表中的数据信息包括对记录的查询、增加、删除和修改操作。

1.查询记录对记录的查询可以通过命令方式设置条件,对满足条件的记录予以显示。命令格式:DISPLAY∣LIST[OFF][<范围>][FOR条件][[FIELDS]<表达式表>]

功能:显示当前表文件中全部或满足某条件的记录。说明:命令格式:DISPLAY∣LIST[OFF]

[<范围>]

[FOR条件]

[[FIELDS]<字段名列表>]①[OFF]子句:使用该项表示不显示记录号,反之,则显示记录号。②[<范围>]

表示表文件记录的范围,可选值包括:

RECORDn:第n号记录。N为数字,表示记录号。

NEXTn:表示从当前记录起以下的n个记录,包括当前记录。n数字,表示记录个数。

REST:表示从当前记录开始到文件末尾的所有记录。

ALL:表示全部记录。不选择范围,则默认范围为ALL。③[FOR条件]

表示对筛选出满足条件的记录进行操作,<条件>为逻辑表达式。④[[FIELDS]<字段名列表>]

若省略该项,则显示当前表中所有字段,否则显示<字段名列表>指定的字段。例:显示“学生档案”表中所有男学生的记录。操作命令为:use学生档案

listfor性别=“男”例:显示“学生档案”表中各位同学的姓名、性别、班级等字段的内容。操作命令为:use学生档案

listfields姓名,性别,班级例:教材57页2、添加记录在创建表时,可根据系统提示直接输入记录,也可以在后期操作中随时向表中添加记录。添加记录的方法有:(1)菜单方式步骤1:打开表及表的浏览窗口。步骤2:选择“表”→“追加新记录”命令或“显示”→“追加方式”命令,浏览窗口中最后一条记录后会增加一条空记录,可以输入新的记录值。(2)命令方式格式1:APPEND[BLANK]

功能:在表的末尾增加一条或多条记录。说明:

说明:APPENDBLANK命令只是在当前表的末尾添加一条空记录,不打开编辑窗口。需要查看时,可以在“显示”菜单中选择“浏览”选项。加入的空记录的每个字段被赋予空值。

格式2:INSERT[BEFORE][BLANK]

功能:在当前表的当前记录的前面或后面插入记录。说明:①INSERT表示在当前记录之后插入一条记录。②INSERTBEFORE表示在当前记录之前插入一条记录。③INSERTBLANK或INSERTBEFOREBLANK分别表示在当前记录之后或之前插入一条空记录。④插入记录后,其后所有记录的记录号加1,空记录只有记录号而无内容。3.修改记录(1)菜单方式打开需要修改记录的表的编辑窗口或浏览窗口,将光标定位到所要修改的数据上,便可直接编辑该数据。修改结束后,直接关闭浏览窗口的同时保存修改结果;按ESC键则放弃最近一次修改结果。(2)命令方式格式:REPLACE[范围][字段名1with表达式1][,字段名2with表达式2…][for条件]

功能:在当前表文件中,对指定范围内满足条件的记录进行批量修改。说明:

格式:REPLACE[范围]

[字段名1with表达式1][,字段名2with表达式2…]

[for条件]

说明:①若无[范围]项,则缺省值为当前记录。②<表达式1>的值替换<字段1>中的数据,<表达式2>的值替换<字段2>中的数据,依次类推。③若无[for条件]项,则对范围指定的记录进行替代;若同时无[范围]项,则对当前记录进行替代;若有[FOR条件]项,但无[范围]项时,是指在整个数据范围内对符合条件的记录进行替换。例:USE学生档案.DBF

GO5

DISPLAY

REPLACE姓名WITH‘王虹’,性别WITH‘女’

DISPLAY4.删除记录在VF中,删除表中记录通常分为两个步骤:第一步:逻辑删除。给要删除的记录添加删除标记,并未真正删除,还可以恢复。第二步:物理删除。对已做删除标记的记录彻底删除,从表中真正删除,无法恢复。(1)菜单方式

①逻辑删除。指添加删除标记

ⅰ、在表的浏览窗口删除标记条区域单击左键。

ⅱ、选择“表”→“删除记录”命令进行操作②物理删除。指从表中彻底删除记录选择“表”→“彻底删除”命令。

(2)命令方式

命令格式1:DELETE[范围][FOR条件]

功能:DELETE命令是逻辑删除,给记录加上删除标记。说明:①用LIST或DISPLAY命令可显示带删除标记的记录,需要时可用RECALL命令去掉删除标记。

RECALL[范围][FOR条件]

功能:恢复所选表中带删除标记的记录。说明:范围的缺省值为当前记录。②若无[范围]、[FOR条件]选项,则只给当前记录加删除标记。③执行SETDELETEOFF∣ON命令时,OFF(默认值)表示处理记录时可访问标有删除标记的记录。ON表示处理记录时忽略有删除标记的记录。例:对“学生档案”表中第2条记录进行逻辑删除,并恢复。命令为:use学生档案.dbf

go2

delete

list

go2

recall

命令格式2:PACK

功能:将当前表中所带删除标记的记录彻底删除。说明:PACK命令不受SETDELETEDON∣OFF状态影响。属于物理删除记录。命令格式3:ZAP

功能:将表中所有记录做不可恢复性删除,只留下表的结构。相当于直接物理删除。说明:执行ZAP命令等同于先执行DELETEALL,然后再执行PACK命令。直接执行ZAP命令速度要快些。

4.2.5移动记录指针记录指针:在表文件中,系统有一个用来指示记录位置的指针,称为记录指针。当前记录:指针当前所指向的记录称为当前记录。根据需要,在对记录操作的过程中,记录指针会随之变化。指针移动的方法有:

1.在浏览窗口移动利用↑、↓光标或用鼠标单击某个记录直接移动。

2.使用表菜单移动指针选择“表”→“转到记录”命令,在其子菜单中选择移动。

3.使用命令移动指针

(1)绝对移动命令GO

命令格式:GOTOP∣BOTTOM∣<n>

功能:在当前表文件中,移动记录指针到指定的记录上。BOFEOFgotopgo5gobottom3.使用命令移动指针(1)相对移动命令SKIP

命令格式:SKIP<n>

功能:在当前表文件中,记录指针从当前位置向前(记录号减小方向)或向后(记录号增大方向)移动。说明:①SKIP后缺省参数,相当于执行SKIP1,记录指针下移一条记录。②n为整数,当n>0,记录指针向文件尾移动n个记录;如果n<0,记录指针将向文件头移动n个记录。③当末记录为当前记录时,skip后,指针指向EOF,recno()函数返回值为记录数+1。例:P教材62页。单击BOFEOFskip-2当前记录skip2记录的定位(小结)记录结束标志记录开始标志第n条记录文件头Gotopgobottomskip1、记录指针标志记录号(输入顺序)记录的开始标志

BOF()记录指针标志

(当前记录)

RECNO()记录的结束标志

EOF()2、记录的定位方式绝对定位go相对定位skip4.2.6定制表通过对表中数据过滤器的设置有选择地访问表中某些记录和字段。

1、限制对记录的访问操作方法:浏览表状态下,“表”菜单→“属性”→“数据过滤器”。2、限制对字段的访问操作方法:浏览表状态下,“表”菜单→“属性”→“允许访问”。命令小结1.建立表:CREATE表名2.打开表:USE表名3.关闭表:use或close4.修改表结构:MODIFYSTRUCTURE5.打开表浏览器:BROWSE6.增加记录:APPEND[BLANK]︱

APPENDFROM表27.删除记录:DELETE

RECALLPACKZAP8.修改记录:EDITCHANGEREPLACE9.显示记录:LISTDISPLAY10.查询定位:GO,GOTO,SKIP,LOCATEFOR11.use表1

copystructureto表2

说明:生成表2,其结构与表1完全相同12.use表2

appendfrom表1

说明:将表1的所有记录追加到表2末尾13.use表名

replace字段1with表达式1,字段2with表达式2[,…][for条件表达式]4.3表的索引

按照用户需要,将表文件中的记录按照某个字段值的大小顺序重新排列,可在检索、查询满足条件的记录时提高查找效率,这就需要为表建立索引。

一、索引的概念索引是由指针构成的,在逻辑上按照索引关键字值的顺序排列,是对记录的逻辑排序。索引文件可看成是由索引关键字和记录指针两个字段构成的一张索引表。索引文件和表文件分别存储,索引文件的建立不改变表文件中记录的物理顺序。

二、索引文件的类型与建立

1、独立索引文件:只包含一个索引项,扩展名为.idx。

命令格式为:

INDEXON<字段名列表>TO<独立索引文件名>

功能:按某字段建立一个独立索引文件。2、复合索引文件可包含多个索引项,扩展名为.cdx。又分为结构复合索引和非结构复合索引。

1)结构复合索引文件:

菜单方式建立方法为:打开“表设计器”,利用“字段”和“索引”选项卡中相关选项进行设置。说明:文件名与表文件名同名,随着表的打开而打开,表的关闭而关闭。例:为“学生档案表”建立关于“学号”字段的结构复合索引。4.3表的排序与索引索引关键字类型

补充:命令方式建立。命令格式为:

indexon<索引表达式>tag<索引名称>[candidate|unique][ascending|descending]

功能:创建扩展名为.cdx的结构复合索引文件说明:★

ascending为升序,默认为升序;

candidate为候选索引,unique为唯一索引,缺省时为普通索引。例:为“学生档案表”建立关于“班级”字段的结构复合索引,标记名为bj。

indexon班级tagbj4.3表的排序与索引2)非结构复合索引文件:

文件名与表文件名不同,定义时要用户为其命名,不随表文件的打开(或关闭)而自动打开(或关闭),必须由用户手动操作。

命令格式为:

INDEXON<字段名列表>TAG<标记名>OF<复合索引文件名>

例:use学生档案

indexon姓名tagxmofxmsy4.3表的排序与索引按索引关键字的类型分类:索引关键字的类型索引类型索引关键字的值一个表可以拥有的索引个数其它特点主索引唯一,不允许重复唯一只有数据库表可以建立候选索引多个普通索引可以重复唯一索引对于关键字值相同的记录,索引中只列出其中第一个记录,即输出时无重复值。4.3表的排序与索引

3、索引的使用

(1)打开索引文件索引文件不能脱离表文件而单独使用,在使用索引文件时,必须先打开表文件。结构化复合索引文件在打开表的同时打开索引文件,而独立索引文件和非结构化复合索引文件在表文件打开后,需要使用索引文件的打开命令。

命令格式1:USE<表文件>INDEX<索引文件名表︱?>

功能:打开表的同时打开由INDEX后面指定的各个索引文件。?表示弹出一个对话框,用以选择索引文件。

命令格式2:SETINDEXTO<索引文件名表︱?>

功能:在表打开的前提下打开该表的索引文件。例1:在打开学生档案表的同时打开索引文件name.idx

Use学生档案indexname.idx例2:在打开的学生档案表中打开索引文件birthday.idx

Use学生档案

Setindextobirthday.idx4.3表的排序与索引4.3表的排序与索引

(2)按索引文件显示记录对于一个表,允许创建多个索引项。在某一时刻,只能有一个索引项为主控索引,它确定了表记录的显示和访问顺序。表记录在显示时按以下规则进行显示。①当一个表中建立多个独立索引时,按最近一次建立的索引顺序显示记录。②在表的浏览状态下,利用“表”\“属性”下的“索引顺序”设置来显示记录。

③通过命令设置主控索引

setorderto[索引名]

在命令中如果省略索引名,则表示无主控索引,系统按物理顺序显示记录,即取消索引。4.3表的排序与索引

(3)利用索引命令查找记录索引查询的前提是表文件已经建立并打开了索引文件。

命令格式1:FIND<字符串或数值>

功能:在索引文件中找索引关键字值与指定字符串或数值相符的第1条记录并将指针指向它。

说明:①该命令必须在包括索引文件在内的表文件中查找,而且索引文件的关键字必须是要查找的字段。②该命令只能查找字符型和数值型的索引关键字。

③find后的字符串定界符可省略。④各检测函数的值。例:用FIND命令查询“学生档案”表中姓名为“王虹”的学生记录。命令为:use学生档案

indexon姓名toname

find王虹&&或find“王虹”

?Found()?recno()disp4.3表的排序与索引4.3表的排序与索引

命令格式2:SEEK<表达式>

功能:在索引文件中查找关键字内容与表达式相同的第一条记录。

说明:

①该命令可以处理任何类型的关键字表达式。如果查找字符型常量,需要使用定界符。②同find命令,P教材68页,各检测函数的取值。(4)删除索引

1)在表设计器中删除。删除结构化复合索引的索引项。

2)在资源管理器中删除。删除索引文件。4.4数据库4.4.1创建数据库

1.新建数据库方法同4.1表的创建

说明:在VF中,数据库文件的扩展名为.dbc。在创建数据库的同时还会自动产生与其同名的两个文件,一是扩展名为.dct的文件,用来存储数据库的备注信息;另一是扩展名为.dcx的文件,用来存储数据库索引信息。

2.打开数据库

3.关闭数据库

4.查看数据库

4.4.2数据库的基本操作主要包括对数据库中表和视图的添加、移去、浏览和修改等操作。

1、向数据库中添加表例:在打开的数据库设计器中添加学生成绩表和学生档案表。说明:一个表只能添加到一个数据库中。

2、在数据库中新建表

3、从数据库中移去表方法一:在打开的数据库设计器中移去方法二:利用命令removetable<表名>移去表4.浏览、修改表中数据步骤1:选择数据库中要浏览或修改的表步骤2:利用“数据库”菜单下的“浏览”或“修改”命令,打开表的浏览窗口或表设计器窗口进行操作。或单击鼠标右键,在弹出的快捷菜单上选择操作命令。4.4.3建立表间关系数据表之间可以创建两种关系类型:一种是永久性关系,另一种是临时性关系。永久性关系的表必须是数据库表之间创建,而临时性关系的表可以是数据库表的形式也可以是自由表形式之间创建。1.永久关系是一种表之间的制约关系,是建立在数据库表间的关联关系。

1)建立永久关系的前提:

①两个表必须在同一个数据库中,一个为主表(父表),另一个为子表。

②两个表必须至少包含一个相同的字段。主表中的字段称为主关键字,子表中的字段称为相关表关键字。

③在两表中,分别对该字段进行索引设置。主表索引必须为主索引或候选索引,子表的索引类型任意。前提条件满足后,即可进行关联关系的创建与编辑。2)建立关联有两种关联关系类型:“一对一”关系和“一对多”关系。取决于子表中索引的类型。3)编辑关系4)设置参照完整性所谓参照完整性就是利用一种制约机制互相参照,来控制表间数据的一致性和完整性。在用户执行插入、修改或删除记录等操作时,进行一定的限制。操作步骤为:首先选中数据库中的某个关系,选择“数据库”菜单下的“编辑参照完整性”命令,或鼠标右键单击关联线,在弹出的快捷菜单中选择命令,打开“参照完整性”对话框,进行设置。2.临时关系在数据库操作过程中临时建立起的表与表之间的关系。可存在于任何表之间,既可以是自由表,也可以是数据库表。当关闭两表中任意一表或退出VF系统时,表之间的关系自动解除。建立临时关系的两个表应有公共字段且均建立了索引。可通过数据工作期窗口创建,也可以使用命令建立临时关系。

1)利用数据工作期窗口创建步骤一:选择“窗口”菜单下的“数据工作期”命令,打开数据工作期窗口。步骤二:在打开的表中建立临时关系。步骤三:浏览建立了临时关系的两张表的变化情况。★VF中的工作区在VF中,系统共开设有32767个工作区,编号为1~32767,前十个还可用字母A~J表示,从第11个开始,用w11表示,依次类推。系统默认的工作区为1区。一个工作区只能打开一个数据表文件,如果在同一个工作区中打开了另一个表文件,则系统自动关闭前一个已打开的表文件。如果同时使用多个表文件,就需要在不同的工作区中分别打开,这要通过选择工作区的命令来实现。命令格式:select工作区号/别名功能:选择需要使用的工作区。

说明:①别名是代表该表文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论