VFP课件4-VisualFoxPro数据库及其操作_第1页
VFP课件4-VisualFoxPro数据库及其操作_第2页
VFP课件4-VisualFoxPro数据库及其操作_第3页
VFP课件4-VisualFoxPro数据库及其操作_第4页
VFP课件4-VisualFoxPro数据库及其操作_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第4章VisualFoxPro数据库及其操作4.1.1VisualFoxPro的数据库数据库文件扩展名为.dbc一个数据库可以包含一个或多个扩展名为.dbf的表建立一个数据库文件后(扩展名为.dbc),系统会自动生成一个数据库备注文件(扩展名为.dct)和一个数据库索引文件(扩展名为.dcx)4.1.2建立数据库通过项目管理器创建通过菜单创建通过命令窗口创建:

CREATEDATABASE[<数据库名>│?]4.1.3打开数据库通过项目管理器通过菜单通过命令窗口:

OPENDATABASE[<数据库名>│?][EXCLUSIVE│SHARED][NOUPDATE]Exclusive:独占性打开

Shared:共享性打开

注:实际上,只有在建立和修改表的关系时,才必须打开数据库。这正是VFP的安全机制完善性。VisualFoxbase可以在同时打开多个数据库,但只有一个是当前数据库。用户所有操作都是针对当前数据库的。指定当前数据库的命令:SETDATABASETO[<数据库名>]4.1.4修改数据库通过项目管理器打开数据库后修改通过命令窗口:MODIFYDATABASE[<数据库名>│?][NOWAIT│NOEDIT]4.1.5关闭数据库通过项目管理器通过命令窗口:CLOSEDATABASECLOSEALL注:关闭数据库设计器,并没有把数据库关闭。4.1.6删除数据库通过项目管理器通过命令窗口:DELETEDATABASE<数据库名>│?[DELETETABLES][RECYCLE]DELETETABLES:彻底删除RECYCLE:删除到回收站4.2表表是处理数据和建立关系数据库的基本单元,由行和列组成。表格中的每一行称为一个记录,每一列称为一个字段。VisualFoxPro的表具有两种状态数据库表:与数据库相关联的表自由表:与数据库无关联的表通过项目管理器可以实现数据库表和自由表之间的转换。自由表字段名最多10个字符,数据库表字段名最多128个字符。数据库表比自由表拥有更多功能。例:数据库与表的关系数据库学生选课成绩数据库.DBC表学生.DBF表课程.DBF表选课成绩.DBF表班级.DBF表教师.DBF例:学生表姓名性别学号学部专业班级刘涛男200515220506信息科学与技术部自动化05q电6范斌男200515221612信息科学与技术部自动化05q电4王铁志男200515220405信息科学与技术部自动化05q电5唐烨平男200515221621信息科学与技术部电子信息工程05q电信1赵欣男200515220517信息科学与技术部通信工程05q通信2刘文晰女200515280316商学人文部国际经济与贸易05q国贸3课程表课程号课程名称教师号学分类别608056高分子材料成型加工原理900112必修608010结构化学36853必修608029无机材料科学基础-1405634必修608036流体力学801582限选608018复合材料768212限选608003无机化学21012限选608003无机化学40981.5任选608014电化学原理30071.5任选607017发酵工程设备10082任选选课成绩表学号课程号成绩2005152205066080565620051522161260801085.520051522040560802950200515221621608036242005152205176080188820051528031660800366200515070311608003702005152602076080145620051528030260701785.52005150701116080035020051526011160800324200515280104608014882005152805076070176620051528040260802970班级表班级年级学部学制类别05q电62005信息科学与技术4工科05q电42005信息科学与技术4工科05q电52005信息科学与技术4理科05q电信12005信息科学与技术4工科05q通信22005信息科学与技术4工科05q国贸32005商学人文部4工科05q管32005商学人文部4工科05q英22005商学人文部4经济05q国贸32005商学人文部4管理05q管12005商学人文部4理科05q英12005商学人文部4理科05q国贸12005商学人文部4理科05q国贸52005商学人文部4工科05q国贸42005商学人文部4工科教师表教师号姓名性别技术职务90011张志明男讲师3685许莹男讲师40563徐研女副教授80158魏军从男讲师76821杨立荣男副教授2101王金锋男教授4098王丽女讲师3007王静女讲师1008田亚红女讲师各表间的关系4.2.1VFP字段类字段是组成表结构的基本单位,不同字段类型有不同的字段属性。字段的属性:包括字段名、数据类型、字段宽度、小数位数、索引、NULL值等字段名的命名规则以字母或汉字开头由字母、汉字、数字、下划线组合而成字母大、小写无区别,不包含空格自由表的字段名最多由10个字符组成数据库表的字段名支持长名,最多可达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成10个字符。字段基本数据类型字段类型代号说明字段宽度字符型C字母、汉字和数字型文本每个字符为1个字节,最多可有

254个字符货币型Y货币单位8个字节日期型D包含有年、月和日的数据8个字节日期时间型T包含有年、月、日、时、分、秒的数据8个字节逻辑型L“真”或“假”的布尔值1个字节数值型N整数或小数在内存中占

8个字节;在表中占1至20个字节双精度型B双精度浮点数8个字节浮点型F与数值型一样在表中占1至20个字节整型I不带小数点的数值4个字节通用型GOLE对象在表中占

4个字节备注型M不定长度的一段文字在表中占

4个字节字符型(二进制)C同字符型,但是当代码页更改时字符值不变每个字符用1个字节,最多可有

254个字符备注型(二进制)M同备注型,但是当代码页更改时备注不变在表中占

4个字节4.2.2表的建立通过项目管理器创建通过菜单创建通过命令窗口创建

CREATE[<表名>│?]CREATETABLE|dbf<表名>(字段名1字段类型[(字段宽度[,小数位数])][,字段名2字段类型[(字段宽度[,小数位数])]]……)例:CREATETABLExscj(xhc(8),xmc(6),xbc(2),;

cjn(5,1),ksrqd)4.2.3复制表及表结构复制表:COPYTO<表名>复制表结构:COPYSTRUCTURETO<表名>4.3表操作打开表通过项目管理器通过菜单通过命令窗口:USE[<表名>│?]●关闭表通过菜单通过命令窗口:USE4.3表操作打开浏览器通过项目管理器通过菜单通过命令窗口:BROWSE●命令方式浏览:LIST4.3.1通过浏览器操作表浏览操作添加记录修改记录删除记录4.3.2命令方式操作表添加记录:APPEND[BLANK]在表尾部添加记录插入记录:INSERT[BEFORE][BLANK](对未索引的表有效)删除记录:DELETE[FOR<条件表达式>]恢复记录:RECALL[FOR<条件表达式>]物理删除有删除标记的记录:PACK物理删除表中的全部记录:ZAP修改记录:REPLACE<字段名1>WITH表达式1,[<字段名2>WITH表达式2]…[FOR<条件表达式>]交互修改记录:EDIT,CHANGE显示记录:LIST┃DISPLAY[<范围>][FIELDS]<字段名>[FOR<条件1>][TOPRINT┃TOFILE<文件>]

不使用条件时,LIST显示全部记录,DISPLAY显示当前记录4.3.2命令方式操作表查询定位直接定位:GO记录号│TOP│BOTTOM基准定位:SKIPn条件定位:LOCATEFOR<条件表达式>

找到第一条满足条件的记录后,可以用CONTINUE继续查找下一个满足条件的记录。4.4索引记录的顺序:物理顺序:即表中记录在磁盘中的存储顺序。逻辑顺序:表打开后被使用时记录的处理顺序。索引是在不改变记录物理顺序的前提下按照索引关键字的顺序(升序或降序)排列记录,从而方便快速查找。4.4.2索引的种类1.按扩展名分类VisualFoxPro支持复合索引和单索引两类索引文件。前者扩展名为.CDX,后者扩展名为.IDX。复合索引文件允许包含多个索引,每个索引都有一个索引标识,代表一种记录逻辑顺序。这种索引总以压缩形式存储,以便减少存储空间。复合索引文件又分结构复合索引和非结构复合索引。主名与表文件名相同的称为结构复合索引,它与表文件同步打开与关闭,主名与表文件名不同的称为非结构的复合索引(又称独立复合索引),它不与表文件同步,须使用专用命令打开与关闭。单索引文件中只有一个索引条目,这种类型是为了与FoxBASE+开发的应用程序兼容而保留的。单一索引和非结构复合索引都很少使用。2.按功能分主索引:组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。候选索引:在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。普通索引:也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。唯一索引:参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。在一个表上可以建立多个普通索引、多个唯一索引、多个候选索引,但只能建立一个主索引。通常,主索引用于主关键字字段;候选索引用于那些不作为主关键字但字段值又必须唯一的字段;普通索引用于提高查询速度;唯一索引用于一些特殊的程序设计。4.4.3索引文件的建立1.使用表设计器创建和修改索引利用表设计器可以为表创建或修改索引,具体步骤如下(以XSB为例):①在项目管理器中选择“表”中的:XSB,单击“修改”,打开表设计器。②在“字段”选项中选择要建立或修改索引的字段,如XH,单击“索引”列的组合框,确定升序或降序,本例选择升序。③打开“索引”选项卡,确定索引类型,本例选择“主索引”。

2.使用命令创建索引

格式:INDEXON<索引表达式>TO<索引文件名>│TAG<标识名>[OF<索引文件名>][FOR<条件>][ASCENDING/DESCENDING]TO<索引文件名>用来建立单索引文件;TAG<标识名>用来建立结构复合索引文件;OF<索引文件名>用来建立非结构复合索引文件;

[ASCENDING/DESCENDING]表示选择建立“升序”或“降序”索引。【例】打开XSB表,以XM(姓名)、ZY(专业)字段为索引关键字分别建立索引条目XM和ZY,放入结构索引文件XSB.CDX中。解:USEXSBINDEXONXMTAGXMINDEXONZYTAGZY4.4.4索引文件的使用1.打开索引文件索引文件同表文件一样,必须打开后才能使用。结构索引文件在打开表文件时会随着表文件自动打开和关闭。但对于非结构索引必须在使用前通过以下命令打开。SETINDEXTO[<索引文件名>]

2.设置主控索引(即当前索引)

只能有一个索引条目为主控索引,它确定了表记录的显示和访问顺序。主控索引可以使用命令方式进行设置。格式:SETORDERTO[<索引名>][ASCE|DESC]3.在打开表的同时指定主控索引格式:USE<表名>ORDER<索引名>功能:打开表的同时指定结构索引中的主控索引。4.删除索引(1)使用命令删除索引文件格式:DELETETAG<标识名>/<ALL>功能:删除复合索引文件的索引标识。说明:若复合索引文件的所有索引标识都被删除,则该索引文件也被删除。(2)使用使用“表设计器”删除索引文件在“表设计器”的“索引”选项卡中选择欲删除的索引,单击“删除”按钮即可删除指定的索引。5.索引查询格式:SEEK<表达式>功能:在主控索引文件中查找关键字与<表达式>相同的第一条记录。【例】

已知表XSB中按照出生日期建立索引CSRQ,快速查找出生日期为{09/25/85}的记录,并显示。解1:INDEXONCSRQTAGCSRQSEEK{^1985-09-25}&系统状态行显示找到第15条记录

DISPLAY

【例】

已知表XSB中按照ZY建立索引ZY,快速查找“工业工程”专业的同学,并连续显示两条记录。解:INDEXONZYTAGZYSEEK‘工业工程’&&系统状态行显示找到第7条记录

DISPSKIP注意:不能用CONTINUE命令!4.5排序排序就是将表中记录按某一字段值的大小重新排列,然后复制产生一个新的表文件。其命令格式如下:格式:SORTTO<新表文件名>ON<字段名1>[/A/D/C],<字段名2>[/A/D/C]…[FOR<条件>][FIELDS<字段名表>][<范围>]功能:按指定的字段为排序依据,对当前打开的文件中符合条件的范围内的记录重新排列,生成新表文件。其中/A表示升序,/D表示降序,默认为升序;如果不指定字段列表,则对所有字段复制。【例】对XSB.DBF按CSRQ(出生日期)降序排序,产生新的表文件为XS.DBF,打开XS文件显示所有记录。解:USEXSBSORTTOXSONCSRQ/DUSEXSBROW

由于排序产生的新表与原来的表只是排列顺序不同但数据完全相同,两个表都要占据磁盘空间。因此除特殊情况外,很少使用。

4.6数据完整性数据的完整性就是指保证数据库中数据正确的特性。完整性控制的主要目的在于防止不正确的数据进入数据库,在对数据库操作时一般通过3类完整性规则来保证数据库中数据的正确性,这就是“实体完整性”、“域完整性”和“参照完整性”。

4.6.1实体完整性

实体完整性是保证表中记录唯一的特性,指表中不允许出现重复的记录,在VisualFoxPro中我们可以利用主关键字或候选关键字的特性来保证表中不出现重复的记录。4.6.2域完整性域完整性是指限制表中字段取值的有效性规则。例如,在创建表时用户定义字段的类型、宽度等都属于域完整性的范畴。除此之外,VisualFoxPro还在表设计器中提供了“字段有效性”规则和“显示”规则来进一步保证域的完整性。【例】以“XSB”表为例,设置高考分数的有效值在0-750分之间,如果输入的分数值不在此范围时,给出出错信息:“高考分数输入错误!”

解:在项目管理器中打开XSB的设计器,如图7-2所示。选GKFS字段,并且在字段有效性“规则”的文本输入框内输入“GKFS>=0.and.KGFS<=750”“信息”的文本输入框内输入“高考分数输入错误!”。4.6.3参照完整性

参照完整性是指当插入、更新和删除一个表中的数据时,需要参照引用另一个表中的数据,借以检查数据操作是否正确。因参照完整性属于表间操作规则,且与表的联系有关,因此在VisualFoxPro中为了建立参照完整性,必须首先建立表之间的联系(或称为关系),然后才可以设置参照完整性规则。1.建立表之间的联系表之间的联系可以利用“数据库设计器”来建立,具体操作步骤如下(以XSB、CJB和KCB为例):(1)在XSB表中以XH字段为索引关键字建立主索引;在KCB表中以KCH字段为索引关键字建立主索引在CJB表中以XH、KCH字段为索引关键字分别建立普通索引(这些索引已经建立)。建立主索引的表称为“父表”,普通关键字的表为子表。(见图)(2)打开数据库设计器,用鼠标选中XSB表的主索引(XH)按住不放拖至CJB表的普通索引(XH)上,然后释放鼠标,即可建立两表之间的联系。建立表之间的联系(关系)2.设置参照完整性约束(1)在菜单中选择“数据库”的“清理数据库”,将有删除标记的记录彻底删除。(2)用右键单击表的联系线,激活快捷菜单,选择“编辑参照完整性”,打开参照完整性生成器。三个选择按钮:更新规则:当父表中的关键字作修改时,应用哪条规则。删除规则:当父表中的记录作删除时,子表应用哪条规则。插入规则:当子表插入记录时,应用哪条规则。编辑参照完整性【例】假定在教学管理库JXK中,按照图7-4建立了三个表的参照完整性。当在CJB表中插入一条记录,其中xh或kch是另外两个表中不存在时,观察是否能够存盘。

解:USECJBAPPEND在图7-5中显示的编辑窗口输入一条记录,其中学号为任意一个XSB中没有的,其他数据任意。关闭窗口,此时系统显示一个提示信息:“触发器失败”,并把刚才输入的数据清空。这说明“插入”规则确定的“限制”起了作用,不允许没有的学号或课程号的记录输入。参照完整性触发器:在一个插入、更新或删除操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。它们常用于交叉表的完整性。4.7多个表的同时使用工作区的概念所谓工作区就是在内存中开辟的一块区域,用于存放表文件。系统共开设有32767个工作区,这些工作区分别用数字1~32767来标识,称为工作区号,前十个工作区还可以使用字母A~J来标识,称为工作区的别名。工作区还可用在该区打开的表名(或表的别名)来标识。系统默认的工作区为1区,用户可以使用工作区的选择命令选择工作区,当前被选中的工作区称为当前工作区。4.7.1工作区的选择格式:SELECT<工作区号>│<别名>功能:选择指定的工作区为当前工作区。说明:l

每一个工作区某一时刻仅可以打开一个表文件。l

当使用SELECT0时表示选择当前未使用的最小工作区。l

可以使用SELECT()函数测定当前工作区号。【例】分别在1,2,3工作区打开学生表(XSB)、课程表(KCB)、成绩表(CJB)三个表,显示其中的记录,并选择当前工作区为2区。解:OPENDATABASEJXKSELECT1USEXSBALIASXS &&XS是指定的别名

BROWSESELECT2USEKCBALIASKCBROWSESELECT3USECJBALIASCJBROWSESELECT2&&或使用SELECTB、SELECTKC、SELECTKCB?SELECT() &&此时主屏幕显示为2。可以通过“窗口”--〉”数据工作期“查看。4.7.2使用不同工作区的表格式:IN工作区号│表名│表别名如:seek‘04076103’orderxhinxsb如果要在当前工作区调用另外一个工作区的表记录数据时,须使用如下调用格式:<工作区别名>.<字段名>或<工作区别名>-><字段名>其中->为“-”和“>”的组合键【例】在第1工作区中,显示学生表XSB.DBF中姓名,专业和成绩表CJB.DBF中的课程号及成绩。解:SELECT1USEXSBSELECT2

温馨提示

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

评论

0/150

提交评论