第三章VF数据库及其操作教案_第1页
第三章VF数据库及其操作教案_第2页
第三章VF数据库及其操作教案_第3页
第三章VF数据库及其操作教案_第4页
第三章VF数据库及其操作教案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第三章VF数据库及其操作一、创建数据库表:注:表分数据库表和自由表,其文件扩展名都为:.dbf。数据库表是指属于某个数据库的表,自由表是指不属于任何数据库的表。 打开项目管理器->数据库->表->新建; 使用新建命令或者使用Create命令建立数据库;1.方法:opendatabase打开数据库——create建立表。注:如果没有先用opendatabase打开数据库,而是直接用create命令建立表也可以,因为它不包含有些在数据库中才能实现的功能,这时建立的表不是数据库中的表,而是自由表;新建的表处于打开处状态可以直接进行录入及修改表结构操作,如果以后进行操作:1.可以直接在盘符中找到打开;2.在命令窗口中输入USETableName(表名)——单击“显示——浏览”或者在命令行输入BROWSELASE回车即可。二、数据库表的字段属性:1、字段显示属性: 字段名是字段的唯一标志,由1—128个非空字符组成; 字段名即关系的属性名或表的列名。一个表由若干列(字段)构成,每个列都必须有一个惟一的名字即字段名 字段名可以是汉字或合法的西文标识符;注:自由表:2

自由表字段名最长为10个字符。3

数据库表的字段名最长为128个字符。4

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

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

字段名中不能包含空格。注:字段类型决定了存储的数据类型,字段宽度决定了存储数据的宽度和取值范围。字段的类型(字段变量)字段类型宽度实际定义宽度字段类型宽度实际定义宽度字符型C≤254自定义双精度(B)≤20位8数值型(N)≤20位8整型(I)≤10位4浮动型(F)≤20位8逻辑型(L)11日期型(D)88备注型(M)4不受限制日期时间型(D)1414通用型(G)4不受限制货币型(Y)≤20位(bit)8注: 备注型和通用型内容存放在扩展名为:.fpt文件中。 通用型可以存放图片等多媒体内容,而备注型不能存放图片等。 记住各字段类型及字母表示、宽度。注:NULL:空值表示字段或变量还没有确定值。三、设置字段的显示格式:格式确定了一个字段在数据浏览窗口、表单或报表中的显示方式。可以在格式文本框中输入所需要的格式码,常用的格式用。在当前的“工具”——选项下进行设置;四、设置字段的有效性:规则:即字段有效性规则,用来指定该字段的值必须满足的条件,为逻辑表达式;信息:即违背字段有效性规则时的提示信息,为字符串表达式;默认值:即字段的默认值,可以减少数据输入的工作量,类型以字段的类型来确定。对数据库表的操作:1.添加数据库表:一个数据库中可以包括一个或多个相关联的数据表,可以向数据库中加入任何已经建立的表,但这个表不能属于其他的数据库,因为同一个表在同一时间只能属于一个数据库。如果要把其他数据库中的表加入到一个新的数据库中,可以先把要加入的表从原来的数据库中移出。注:添加数据库表的方法——先打开数据库——右击——添加表——选中要添加的表——确定即可。2.删除数据表:在要删除的数据表上右击——移去即可。如果单击删除,该表将从磁盘上删除。二、修改表结构:1、在项目管理器中进行修改;2、在数据库设计器中进行修改;3、使用命令进行修改:如果当前表不在数据库设计器中,则首先用USE命令打开要修改的表——然后输入modifysetructure(此命令后不能有任何参数,其功能是修改当前表的结构)打开表设计器进行修改操作即可。

修改已有的字段:用户可以直接修改字段的名称、类型和宽度。

增加新字段:要在原来的字段后增加新的字段,可以直接将光标移动到增加新字段,然后输入新的字段名、字义类型和宽度;如果要在原来的字段中间插入新的字段,则首先将光标定位在要插入新字段的位置,然后单击“插入”按钮,这时会插入一个新的字段,输入新的字段名、定义类型和宽度。

删除不用的字段:若要删除某个字段,首先将光标定位在要删除的字段上,然后单击“删除”按钮即可。三、对表的基本操作:1、打开并游览表有多种方式: 在项目管理器中将数据库展开至表并选中要浏览的表单击浏览即可。 在数据库设计器中选择要操作的表从数据库中选择浏览。 在命令窗口中,首先用USE打开要操作的表——输入BROWSE命令来浏览表;即可对表进行浏览、添加、删除和修改操作。2、浏览表的操作:A:下一记录:下箭头键;B:上一记录:上箭头键;C:下一页:BageDown键;D:前一页:PageUP键;E:下一字段:Tab键;F:前一字段:Shift+Tab键;还可以使用四个方向键;3、用命令对表进行操作:修改表中的数据:A:追加记录命令格式:APPEND[BLANK]APPEND:在表文件的尾部追加任意多少记录,并且进入交互式状态,等待用户输入数据.APPENDBLANK:在表文件尾部追加一条空白记录。B:插入记录的命令格式:INSERT[BEFOE][BLANK]INSERT:在当前记录的后面插入任意多少记录,并且进入交互式状态等待用户输入数据。INSERTBEFOR:在当前记录的后面插入任意多少记录,并且进入交互式状态等待用户输入数据。INSERTBLANK:在当前记录的后面插入一条空白记录。INSERTBEFOREBLANK:在当前记录的前面插入一条空白记录。C:删除记录:在VF中删除记录分为逻辑删除和物理删除两个步骤。逻辑删除是指给表文件中的记录打上一个删除标记(可以恢复),但表中记录仍然存在,物理删除是指将表文件中的数据彻底删除(不能恢复)。1

逻辑删除记录命令格式:DELETE[范围]|[FOR<条件>]ALL:表示所有DELETE:逻辑删除当前表中的当前记录一条。DELETEALL:逻辑删除当前表中所有记录。DELETEFOR<条件>:逻辑删除当前表中满足条件的记录。Deletefrom表名where条件例如:逻辑删除当前表中职工编号为003的员工:DELETEFOR职工编号=0032物理删除记录命令:3

PACK:物理删除当前表中打上逻辑删除标记的所有记录。4

ZAP:物理删除当前表中所有的记录(不管是否打上逻辑删除标记,但表结构并没有删除)注:DELETEALL和PACK两个命令集合等价于ZAP功能D:恢复记录的删除:RECALL[FOR]+逻辑表达式:如:将当前表中已经删除的女生记录恢复:RECALLFOR性别=”女”1

修改记录命令格式:REPLACE<被修改的字段名>WITH<表达式>[FOR<条件>]修改全部记录的命令:REPLACEALL<被修改的字段名>WITH<表达式>1.修改面积为500的城市为贵阳2.修改仓库在武汉的仓库号为WH33.把所有仓库的面积增加100注:没有FOR<条件>和<范围>默认只替换当前记录一条。如果有FOR<条件>和<范围>替换指定范围当中的满足条件的记录(有FOR<条件>没有<范围>时,默认范围是ALL)例:将当前表中所有学生的年龄加2。REPLACEALL年龄WITH年龄+22

显示记录命令:LIST和DISPLAYLIST:默认范围是所有记录。当SETDELETED为ON时,LIST不显示带删除标记的记录。DISPLAY:默认显示当前记录。TOPRINTER,DISPLAY:是将结果定向输出到打印机;PROMPT:可以调整打印机的设置;TOFILEFILENAME:是将结果定向输出到指定的文件中。例:显示XS表中的女生记录;USEXS打开学生表LIST姓名,政治,数学FOR性别=”女”即可显示女生的记录。3.查询定位(或者叫记录指针定位)查询定位命令格式:LOCATEFOR<条件>将记录指针定位到从上至下第一个满足条件的记录上。如果表中没有满足条件的记录时,记录指针则指到结束标识EOF。如需继续定位到下一个满足条件的记录上用CONTINUE继续查找。注CONTINUE不能单独使用,必须跟LOCATEFOR联用。其格式为:LOCATEFOR查询定位的表达式DOWHILEFOUND()//处理……CONTINUEENDDO注:当用LOCATE命令发现一个满足条件的记录之后,可CONTINUE命令,从而在表的剩余部分寻找其他满足条件的记录,可重复的执行CONTINUE命令,直到到达表尾。例:在下列示例中,搜索所有女生的记录,然后显示总数。USEXSSTORE0TOsLOCATEFOR性别=”女”DoWHILEFOUND()s=s+1?姓名CONTINUEENDDO?“女生总数:”+LTRIM(STR(GNCOUNT))4

直接定位的命令:GOTON|TOP|BOTTOM说明:N指表文件中的记录号,而不是表中的第几行;TOP:表中的首记录即第一行记录,而不是起始标识BOF。BOTTOM:表中的尾记录即最后一条记录,而不是结束标识EOF;例:USEXS打开学生表GOTOP将记录指针定位在表的第一个记录上GOBOTTOM:将记录指针定位在表的最后一个记录上。相对定位命令格式:SKIPNN:表示将记录的指针从当前记录移动N行,正数往下移,负数往上移,但当遇到起始标识BOF或结束标识EOF时,则停止移动;例:USEXS打开学生表;SKIP1?RECNO()显示2查询定位命令格式:LOCATEFOR<条件>索引:1使记录按某种顺序排列,但不需要改变记录的物理位置。是由记录指针构成的文件,当在表文件中建立索引后表中记录的物理顺序(记录号)不会发生改变,只是逻辑顺序发生改变。也称为逻辑排序。2

索引文件的扩展名为:.CDX注:索引文件具有如下特点:3

同一个索引文件中可以有多种排序方式,有多个索引关键字。4

在对表进行添加、删除、更改操作时,索引文件自动维护。种类要求特点主索引是关键字才能建立主索引不允许出现重复值,只有数据库表才能建立,并且只能建立一个主索引候选索引是关键字才能建立主索引数据库表和自由表都能建立,每个表中可以建立多个候选索引惟一索引无要求保持与早期的版本兼容性,任何表任何字段都能建立,并且可以建立多个,建好后索引中的值是唯一的;它的“唯一性”是指索引项的唯一,而不是字段值的唯一。普通索引无要求允许字段中出现重复值,也允许索引项出现重复值,任何表任何字段都能建立,并且可以建立多个所以在VFP中,索引可分为主索引、候选索引、唯一索引和普通索引4种。任何一种索引均可以设置升序和降序。二、创建索引:分单项索引和复合字段索引。1.单项索引:(1)

打开表设计器——在“字段”选项卡中选择要建立索引的字段后,在对应的索引的下拉列表框中选择无、升序或降序,就产生了单项普通索引,索引名与字段名相同,索引表达式就是对应的字段。(2)

如果要将索引定义为其他类型的索引,应选择表设计器中的“索引”选项卡,然后从“类型”下接列表框中选择索引的类型,这时可以根据需要选择要建的索引即可。2.复合索引:(1)

在多个字段上的索引称做复合字段索引,其建立方法:(2)

在表设计器中的“索引”下——单击“插入”在表达式下输入所需要的索引名——确定——选择类型——表达式默认——确定即可。注:在一个表上可以建立多个普通索引,唯一索引和候选索引,但只能建立一个主索引。通常,主索引用于确定主关键字字段;候选索引用于不作为主关键字但字段值又必须唯一的字段;普通索引用于一般地提高查询速度;唯一索引用于一些特殊的程序设计。3.用命令方式建立索引:其表达式为:INDEXON索引表达式TAG索引名[UNIQUE|CANDIDATE]说明:表达式:指定一个索引表达式,它可以是字段名,或包含字段名的表达式。TAG索引名:表示创建一个复合索引文件,TAG索引名指为索引命名多个索引,可以创建在一个索引文件中,这种索引称做结构复合索引,其文件名与相关的表同名,并且扩展名为.cdx。UNIQUE:表示建立唯一索引。CANDIDATE:表示建立候选索引。例:打开学生表,并创建一个名为“排名”的索引文件,该索引文件以“政治”字段的分类显示和处理记录。USEXSINDEXON政治tag排名CLEARDISPLAY三、索引文件的种类:1

非结构单索引文件中只包含一种索引,这种索引文件的扩展名为.idx。2

非结构复合索引文件可以包含不同的索引标识的多个索引,也可以为一个表建立多个非结构复合索引文件,这种索引文件的扩展名为:.cdx3

结构复合索引文件可以包含不同的索引标识的多个索引,一个表只能建立一个结构复合索引文件。这种索引文件夹扩展名为:.cdx。注:结构复合索引文件具有随表打开时自动打开,在同一索引文件中能包含多个索引项,在添加、更改或者删除记录时自动维护索引等特性。四、使用索引的方法:1、打开索引文件:注:与表名相同的结构索引文件在打开表时都能够自动打开,但是对于非结构索引必须在使用之前打开索引文件,使用SETINDEXTO命令。命令格式为:SETINDEXTOIndexFileList例:USEXSSETINDEXTO排名ORDER政治2、设置当前索引:命令格式为:SETORDERTO格式;例:USEXSSETORDERTO1例:将结构索引文件中的“订购单号”设置为当前索引。SETORDERTOTAG订购单号或者SETORDERTO订购单号3、删除索引:(1)在表设计器中删除;(2)使用命令:

DELETETAGTagName1;TagName1指要删除的索引名;

DELETETAGALL指删除全部索引。数据完整性:主要保证表中数据的正确性即三类:实体完整性、域完整性和参照完整性。一、实体完整性与主关键字:实体完整性是保证表记录的惟一性,即在一个表中不允许有重复的记录。在VF中是利用主索引或候选索引来实现。二、域完整性与约束规则:即设置字段值的取值范围。约束规则又称为字段有效性规则,包括三个方面: 规则:是设置字段值的取值范围(逻辑表达式) 信息:是违背规则后的提示信息(字符表达式) 默认值:是表示默认的数据(与该字段值的数据类型保持一致)。三、参照完整性:跟表之间的联系有关,包含三个方面:更新、删除和插入。设置参照完整性之间必须建立两个表之间的永久联系(物理联系),父表建立主索引,子表建立普通索引。自由表:一、创建自由表的方法: 使用项目管理器: 使用菜单方式; 使用命令方法:(1)格式为:CREATE表名例:CREATEXS创建学生自由表;(2)打开表的方法: 文件打开: USE表名[ALIAS<表别名>][IN<工作区号/工作区别名/表别名>][AGAIN][Exclusive]/[NoupdateShared]命令的功能:在指定的工作区打开表文件。[IN<工作区号/工作区别名/表别名>]:指定要选择的工作区;[ALIAS<表别名>]:为要打开的表指定一个别名;[AGAIN]:可以在某一工作区中打开其他要在工作区中打开的表;[Exclusive]:以独占方式打开表;[NoupdateShared]:以只读方式打开表;(3)关闭表的方法:如果已打开一个表,当打开别一个表文件时,系统将自动将先前打开的表关闭。使用不带任何选项的USE命令,关闭当前已打开的表。使用CloseAll命令:关闭所有类型的文件。使用CloseDatabase命令,关闭已打开的数据库文件、表文件、索引文件等。使用CloseTable命令:关闭当前打开的所有表,不改变当前工作区。使用QUIT命令,退出VFP系统,关闭所有打开的文件,返回操作系统。二、将自由表添加到数据库中:1

使用项目管理器添加自由表;2

使用数据库设计器添加自由表;3

使用窗口命令添加自由表;命令格式为:ADDTABLETableName命令说明:TableName指定添加到数据库中的表的名称例:OPENDATABASE“学生管理”EXCLUSIVE以独占方式打开“学生管理”数据库ADDTABLEXS添加“学生”自由表;注:一个表只能属于一个数据库,当一个自由表添加到某个数据库后就不再是自由表了,所以不能把已经属于数据库的表添加到当前数据库,否则会有出错提示。三、从数据库中移去表; 使用项目管理器; 使用数据库设计器;注:以上两种操作是从数据库中移去表,使数据库表成为自由表,所以应该单击“移去”按钮,如果单击“删除”按钮,则不仅从数据库中移去表,并且还将该表文件从磁盘上删除。从数据库移出表后,与之联系的所有主索引、默认值及有关的规则都随之消失。若移去的表在数据库中使用了长表名,移出数据库后长表名将不能再使用。利用命令窗口方式移去表;1、命令格式为:REMOVETABLE表名|?[DELETE][RECYCLE]命令说明:表名:指定要从当前数据库中移去的表:?显示“移去”对话框,从中可以选择一个

温馨提示

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

评论

0/150

提交评论