




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章数据库的建立与操作,关系数据库是由多个表组成。VisualFoxpro数据库提供了如下功能:存储一系列的表,在表间建立关系,设置属性和数据有效性规则使相关的表协同工作等。,1.建立数据库使用项目管理器使用命令:CreatDatabase数据库名/?数据库文件的扩展名为.DBC,数据库备注文件扩展名为.DCT,索引文件的扩展名为.DCX,4.1数据库的建立,4.1.1建立数据库,2.数据库设计器新建表:用数据库设计器创建新表.添加表:将表添加到数据库.移去表:从数据库中将表移出.修改表:在表设计器中打开表.浏览表:在浏览窗口中显示并编辑表.新建本地视图:使用数据库设计器创建本地视图.新建远程视图:使用数据库设计器创建远程视图.编辑存储过程:显示VisualFoxpro存储过程,4.1.2数据库和自由表的相互转换,VisualFoxpro中的表可分为两种类型:数据库表:已加入到某个数据库中的表.自由表:不属于任何数据库的表.自由表可以转换为数据库表,数据库表也可以转换为自由表.数据库表拥有自由表所没有的许多特性,如长文件名、字段验证等。,1将表加入到数据库在一个已经打开的数据库中,可以创建表或向数据库中添加已存在的表。用户可以将某个自由表加入到数据库中,也可以将表从某个数据库移出后再将其加入另一个数据库(一个表在同一时间内只能属于一个数据库)。(1)菜单方式数据库添加表(2)命令方式:AddTable表名/?长表名例:打开学籍数据库,并向其中添加表学生.dbfOpenDatabase学籍AddTable学生,2.从数据库中移出表(1)菜单:数据库移出表(2)工具栏:移出表按钮(3)命令:RemoveTable表名/?DeleteRecyle功能:从当前数据库中移出表.说明:Delete子句表示从当前数据库中移出指定名称的表,并从磁盘上删除.Recyle子句表示将删除的表文件放入回收站中.例:将学生表从学籍数据库中移出.OpenDatabase学籍RemoveTable学生,3.删除表文件DropTable表名/文件名/Recyle说明:(1)表名:从当前数据库中移出并从磁盘上删除指定的表文件.(2)文件名:从磁盘上删除指定的自由表文件.删除表文件操作完成后,该表与其它表原有的关联和规则也不存在了.例:打开学籍数据库,并将其中的学生表删除.OpenDatabase学籍DropTable学生,4.1.3数据库的基本操作,在对数据库实施各种操作之前,必须先打开数据库,操作完毕后,也须关闭数据库。1打开数据库OpenDatabaseExclusive/SharedNoupdate2.关闭数据库CloseDatabaseAll3修改数据库ModifyDatabase,4.删除数据库DeleteDatabaseDeleteTables数据字典是每个数据库所特有的数据集合,每一个VisualFoxpro数据库都有对应的数据字典,其中存放数据库表的各种特征信息。如,表的有效性检验,表间的关联等信息。数据工作期多表操作的动态工作环境。可以打开、关闭、浏览多个数据库表或自由表。,4.1.4工作区,1工作区VisualFoxpro在内存中开辟的临时区域。在每一工作区中最多可以打开一个表,即用户打开的每一个表都放在一个工作区中;同一个表可以在不同的工作区中多次打开。工作区编号每一个工作区都是一个编号区域,它标识一个已经打开的表。VisualFoxpro中最多允许使用32767个工作区,可以用1、2、32767标识。,当前工作区及当前表称当前正在操作的工作区为当前工作区,在当前工作区中打开的表为当前表工作区的别名系统固有指定的为A,B,J,在工作区11到32767中指定的别名是W11到W32767。用户自定义的表别名通常是通过使用该工作区中打开的表的别名来识别。表别名是一个名称,通过它可以引用在工作区中打开的表。UseAlias,选择工作区:Select工作区/表别名工作区的联访.或-2.工作区的使用规则一个工作区中只能打开一个表对非当前工作区中的表进行操作只能采用引用方式一个表文件能在多个工作区中打开,3.工作区操作举例(1).在指定的工作区中打开表1)Use学生In52)Select5Use学生3)在不同的工作区中多次打开同一个表Select6Use学生Again4)在“数据工作期”窗口中选定要打开的表别名,然后选择“打开”按钮。表将出现在最低工作期中,(2).关闭工作区中的表1)USEIN52)SELECT5USE3)USE学生IN5USEIN学生4)如果在一个工作区中已经打开了一个表,则在打开另一个表时,前一个表自动被关闭。5)在“数据工作期”窗口选定要关闭的表别名,然后选择“关闭”按钮。,(3).为表定义别名1)用户自定义别名Select3Use学生AliasStudentSelectStudent2)默认别名Use学生In3Use成绩In1Select学生(4).引用其它表的字段,OpenDatabase学籍Select1Use学生AliasStudentLocateFor姓名=“王平”Use成绩AliasGradeIn2Use课程In3SelectGradeLocateForAlltrim(学号)=Alltrim(Student.学号)Select课程LocateForAlltrim(课程号)=Alltrim(Grade.课程号)SelectGrade?学号,Student.姓名,课程号,C.课程名,成绩CloseDatabase,例.查看学生王平所学一门课程的成绩,要求屏幕显示该同学的学号、姓名,及相应课程的课程号、课程名及成绩,在两个数据库表之间可以创建两种关系类型,一种是永久性关系,一种是临时性关系.一、表间的临时关系目的:使一个表文件(父表)的指针移动时,另一个表文件(子表)的指针会自动移到满足条件的记录上。在VFP中,两个表文件记录关系主要有三种:一对一关系,多一关系,一多关系。一对一关系中,父表中一条记录只对应子表中一条记录;在多一关系中,父表中多条记录对应子表中一条记录。一多关系则相反,父表中的一条记录可以对应子表中多条记录。,4.1.5建立表间的关联,例如:在学生表和成绩表之间,学生表为“一”方,成绩表为“多”方,当在二者之间建立一多关系时,用命令:BrowFields学号,姓名,B.课程号,B.成绩可以在浏览窗口中看到每个学生所选所有课程的课程号和成绩;但如果在二者之间建立多一关系时,使用此命令则不能列出每个学生所选的所有课程的课程号和成绩,而只是显示出所选课程中的第一门课程.,1.建立临时关联:SetRelationToIntoAdditive功能:建立表的临时关联,默认关联类型为多一关系。说明:建立关联前应对子表按关联的关键字建立索引。Additive:表示在建立新的关联时,保留当前工作区中已存在的表关联。,Select1Use成绩Select2Use学生IndexOn学号Tag学号Select3Use课程IndexOn课程号Tag课程号Select成绩SetRelationTo学号Into学生SetRelationTo课程号Into课程AdditiveBrowFieldsB.姓名,学号,C.课程名,课程号,成绩,例:显示所有学生的姓名、学号及所学课程的课程名、课程号和成绩。,Select1Use成绩setordertotag学号Select2Use学生setordertoTag学号SetRelationTo学号Into成绩BrowFieldsB.姓名,学号,a.课程号,a.成绩,不能正确显示每个学生所学所有课程的情况。只能显示出每个学生所学一门课程的课称号和成绩。,2.建立一多联系SetSkipTo,功能:说明关联类型为一对多。说明:指子表或其所在工作区别名,应为多方。无参数时表示取消已建立的一多联系,但SetRelation命令所建立的多一关联仍然存在。,Select1Use成绩setordertotag学号Select2Use学生setordertoTag学号SetRelationTo学号Into成绩BrowFields姓名,学号,A.课程号,A.成绩,例:建立学生表和成绩表的一多联系,3.解除表间的临时关联SetRelationOffInto/例:解除上例中已经建立的关联Select学生SetRalationOffInto成绩,二、数据库表间的永久关系1.建立表间的永久关系目的:实现参照完整性在查询设计器、视图设计器中作默认连接条件在数据库设计器、数据环境设计器中作为表单和报表之间的默认关系。(1)通过数据库设计器建立步骤:为父表建立主索引,子表建立主索引、普通索引或唯一索引在数据库设计器中,用鼠标将父表的主索引拖放到子表的相应索引索引上(2)使用命令(两表须先建立索引)AlterTable成绩AddForeignKey学号Tag学号reference学生,注意:表间的永久性关联并不能使子表的记录指针随父表的记录指针产生联动。2.删除表间的永久关系通过数据库设计器使用命令AlterTable成绩DropForeignKeyTag学号VFP在定义表之间的关系时参照以下规则:如果关系的子表一方是主索引或候选索引,则VFP认为这是一对一的关系;如果关系的子表一方是普通索引或唯一索引,则VFP认为是一对多的关系。,4.2有效性、触发器与参照完整性,一、表的字段级属性1定义长字段名自由表的字段名最长10位,而数据库表的字段名可达128位,有利于描述字段的含义。数据库表被移出数据库而称为自由表后,它的长字段名属性就会丢失,被截为前10个字符。利用表设计器可以设置长字段名.,4.2.1有效性,2设置字段标题一般情况下,VisualFoxpro将字段名作为标题使用,但在实际应用中,有时需要为数据库表的字段设立标题,在“浏览”或“编辑”该表时显示字段标题,但字段名并未改变,字段标题只起标示作用,在涉及到对字段变量的操作时必须使用字段名而不是字段标题。方法:表设计器中“字段”标签下的“标题(Caption)”3设置字段注释字段注释即为对字段进行的注释。方法:表设计器中“字段”标签下的“字段注释(FieldComment)”,4.建立输入掩码(格式符)当某个字段需要以一定的格式输入时,如“学号”字段要求都是七位数字形式的字符,则可以利用字段的“输入掩码”特性加以限制(输入:9999999).这样更有利于简化输入、规范格式、减少数据输入错误和提高输入效率。特点:每个模式符仅对显示或输入数据中位置与它相对应的字符起作用。按输入掩码来显示数据时,其变量值并不改变;输入数据时,输入字符必须与输入掩码允许范围一致。,掩码:A只允许输入字母L只允许输入逻辑型数据N只允许输入字母和数字X允许任何字符Y允许逻辑字符Y,y,N,n,并把小写字母转换为对应的大写字母Y和N9对字符型数据只允许输入数字字符,对数值型数据允许输入数字及正负号#允许输入数字、空格和正负号!把小写字母转换为大写字母.指定数值型数据小数点的位置,5设置字段格式(功能符)字段格式类似于输入掩码,也是对字段格式进行控制,不同的是对格式的设置将影响整个字段,不象输入掩码那样只能对数据中的相应位起作用。功能符A只允许字母字符B字符型数据在显示区域中左对齐E以英国格式“日/月/年”编辑日期型、字符型或数值型数据!把小写字母转换为大写字母用科学计数法表示数值型数据,6.设置字段的默认值可以加快数据输入的速度.如学生年龄字段,若大部分的学生年龄都为19,则可以19作为默认值,遇到个别年龄不为19的记录时才需改动,否则就不用对年龄字段进行输入.7.字段级有效性规则在实际应用中,为保证数据表中数据的可靠性和有效性,在数据输入或更新时,必须确认数据类型、取值范围等是否合理,以决定能否接收这些数据存入表中。一般地,可以实现建立一套标准或有效性规则,如果输入数据不能满足有关规则,就拒绝接受该数据进入数据表;否则,允许存入表中。,(1)设置方法:在表设计器的“规则”项中输入当前字段的一条有效性规则,同时可以在“信息”输入框中输入错误提示信息。(2)对有效性规则的检查:在浏览、表单等用户界面上改变了字段值,并离开该字段时检查字段有效性规则。在使用append、insert、browse、replace等语句使值发生改变时,检查字段的有效性规则。,二、数据库表的其它属性1.长表名数据库表可以使用长达128个字符的名称,作为数据库引用该表的名称。VFP默认的表名与表的文件名相同。2.表的记录级有效性规则记录级有效性规则通常比较同一记录中的两个或多个字段值,以确保它们遵守在数据库中建立的规则。,例如,某工厂的产品生产情况表,含有该厂产品的每月产量和销售状况,由于生产的产品数量一定大于售出的数量,因此可以使用记录级有效性规则来保证产量字段的值总是比同一记录(同一月份)中售出字段的值大。如果用户输入一个带有无效产量或售出值的记录,VFP会自动显示错误信息。又如:课程表中,有学时=学分*20.设置方法:表设计器中“表”选项卡的记录验证中的“规则”选项.错误信息可从“信息”输入.,使用命令AlterTable课程SetCheck学时=“9714001
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保洁培训课件命题
- 金溪县物业管理办法
- 银行印章章管理办法
- 2025年河南省郑州市第十九中学物理高三第一学期期末联考试题
- 2025年乡镇村干部考试题及答案
- 企业管理安全生产培训班课件
- 特殊教师案件管理办法
- 纪检案件举报管理办法
- 演出经纪公司管理办法
- 特殊兵种枪支管理办法
- 2025年巴州库尔勒市社区工作者招聘笔试试卷
- 农村拆迁转让协议书
- 原发性醛固酮增多症诊断治疗的专家共识(2024版)解读课件
- 新商标法修订解读:知识产权课件-商标法更新
- 钢厂脱硫脱硝工艺流程图
- 2025年五四制部编版道德与法治五年级上册教学计划(含进度表)
- 食品行业标准化管理体系
- 2025年度国家广播电视总局直属事业单位公开招聘310人笔试带答案
- 初中历年会考试卷及答案
- T-CNAS 18-2020 成人住院患者跌倒风险评估及预防
- 系统功能使用说明及教程
评论
0/150
提交评论