vfp数据库的创建和使用

上传人:t****d 文档编号:243022816 上传时间:2024-09-14 格式:PPT 页数:30 大小:90KB
返回 下载 相关 举报
vfp数据库的创建和使用_第1页
第1页 / 共30页
vfp数据库的创建和使用_第2页
第2页 / 共30页
vfp数据库的创建和使用_第3页
第3页 / 共30页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Visual FoxPro,讲授 钟 丹,江苏省普通高校计算机等级考试教程,1,第,四 章,数据库的创建和使用,2,一、数据库的基本概念,数据库的概念:,数据库是一个容器,是许多相关的 数据库表及其关系的集合,数据库的功能:,存储一系列表,在表间建立关系, 设置属性和数据有效性规则使相关 联的表协同工作。,库文件类型:,每创建一个新的数据库都将产生三个 文件:数据库文件.,dbc,关联的数据库 备注文件.,dct,,,关联的数据库索引文 件.,dcx,设计一个完善、高效和结构优化的数据库,是创建以数据库为基础的信息系统中必不可少的重要环节,VFP的主要操作对象就是数据库(库表),3,数据库的创建:,界面方式:1、 在“项目管理器”中创建,创建的库在项目中,2 、通过“新建”按钮或“文件”“新建”来创建,创 建的库不在项目中,命令方式,:,用,create database ,databasename,|?,VFP,数据库的组成,数据库表:从属于某个数据库的表,与自由表相比具有许多 扩展功能和管理特性,注:库表与库之间的相关性是通过库表文件(.,dbf),和库文 件(.,dbc,),之间的双向链接来实现的,,双向链接包括前 链和后链;前链保存在库中,后链保存在表中,视图(,view):,把分散在相关表中的数据通过联接条件将它们收集到一起,构成一张虚表,视图就是这样一种虚表类型。,连接(,connection),存储过程,二、数据库的创建,4,打开一个库:,界面方式:,新建一个数据库,保存后会自动打开,在打开一个数据库表时,系统也会自动的打开相应的库,在“项目管理器”中用“打开”或“修改”按钮,命令方式:注意点:,P84,Open database ,databaseName,exclusive|shared,noupdate,validate,设置当前数据库,在“常用”工具栏“数据库下拉列表”中选择,利用,set database to,databaseName,命令来进行设置,三、数据库的使用,5,检查数据库的有效性:,若用户移动了数据库文件(.,dbc,.,dct,.,dcx,),或与数据库相关联的表文件,则这些文件的相对路径会改变,那么有可能破坏,VFP,关联库和表的双向链接,就需要重建链接或检查有效性,使用命令:,Validata,database recoverto printer|to file,修改库:,启动库设计器:“修改”按钮,MODIFY DATABASE,关闭库:,“项目管理器”“关闭”按钮,close database all,命令,删除库:,“项目管理器”“移去”按钮,6,概念,:数据字典是指存储在数据库中,用于描述所管理的表和对象的数据;存储在数据字典中的信息称之为元数据(,Metadata),,换言之,其记录的是关于数据的数据。,数据字典的功能,:创建和指定以下内容,表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中的默认控件,表的主索引关键字,长表名和表注释,字段级和记录级有效性规则,存储过程,插入、更新和删除事件触发器,四、VFP数据字典概述,7,五、数据库表,库表的创建 :,界面方式:,选中“项目管理器”“数据库”“表”,新建按钮,“数据库设计器”“数据库设计器工具栏”“新建表”,在数据库打开时,,“文件”“新建”或“新建”按钮,命令方式:,在数据库打开时,,利用,create table-SQL,语句来创建表,此时若在命令中不使用,free,子句,则创建的为库表,注意,:在利用命令创建库表时,可以使用,name,子句定义长 表名(表名长度可超过128个字符),数据库表具有自由表的所有功能,对自由表适用的所有操作也同样适用于数据库表,库表还另外扩展了数据管理和控制等功能,8,库表的字段扩展属性 :,字段显示属性:只要求会根据给出的条件进行设置,字段格式:,用于指定字段显示时的格式,包括浏览窗口、表单和报表中显示时的大小写和样式等,可用的格式字母代号见,表4-1,输入掩码:,用于指定字段中输入数据的格式,可用的掩码字符见,表4-2,字段的标题和注释:,标题和注释是为了使表具有更好的可读性和可理解性,不是必需的;在“项目管理器”中选中字段,窗口下部的状态栏会显示字段注释,数据库表除了具有自由表的属性之外,还可以设置一些扩展属性;这些属性在“,表设计器,”中设置,并作为数据字典保存在数据库中,9,字段级验证:用来限定字段的取值及取值范围,包括有效性规则,有效性信息以及默认值,字段有效性规则:,用来控制输入到字段中的数据的取值范围,是一个逻辑表达式,且当前字段包含在表达式当中;当输入数据时,系统根据表达式进行验证,若结果为.,t.,,则接收输入的值;否则,拒绝输入的值,并且显示一个提示框,字段有效性信息:,它是有效性规则的说明,是一个字符表达式,是在拒绝输入值时显示的提示框中的说明信息,默认值:,向一张数据库表中添加新记录时所指定的最初的值称为该字段的默认值,它必须是一个与字段类型相同的表达式,适当的设置默认值可以减少输入的工作量,字段的默认控件类型:作用是指定在使用“表单向导”生成表单或从数据环境中将字段拖放到表单上时,与字段相对应的控件类,相关例题,10,还可以利用命令来进行扩展属性的设置:,Create table,表名 (字段名 类型(宽度),default,表达式,check,表达式,error ,提示信息),Alter table,表名,alter column,字段名 ,set,defa,表达式,set check,表达式,error ,提示信息,例1:在数据库中创建表,CJ_TEMP1,给,XH,字段设置默认值980000,给,CJ,字段设置验证规则0=,CJ=100,验证信息为:成绩必须在0100之间,例2:给已经在数据库中的表,CJ,设置字段属性:,XH,字段的默认值为980000,CJ,字段的验证规则为:0=,CJ=100,验证信息为:成绩必须在0100之间,11,库表的表属性 :,例,长表名和表注释:,长表名:,创建表时,若不做任何规定则表文件名就是表名;若设置了长表名属性,则该数据库在任何场合均以长表名代替表文件名使用,在“表设计器”“表”卡片“表名”中设置,也可在使用,create table,命令创建库表时用,Name,子句来设置(如前述),表注释:,表的说明信息,在“表设计器”“表”卡片中进行设置;设置后在“项目管理器”中选中相应的表,可在窗口的下部状态栏中看到表的注释,数据库表不仅可以设置字段的扩展属性,还可以为表设置一些属性,如长表名、记录级验证、触发器等,这些属性在“表设计器”中设置,也保存在数据字典中,12,记录级验证:用于定义记录级校验规则,包括了记录的有效性规则和有效性信息,注意比较字段级验证和记录级验证的区别,记录有效性规则和信息的设置类似于字段有效性规则和信息的设置,也可在,create table,时利用,check,子句来进行设置或在,alter table,时利用,set check,子句来进行设置,注意比较利用命令进行字段验证设置和记录验证设置的区别,表触发器:是绑定在表上的逻辑表达式,是表在进行插入、更新或删除记录是的检验规则,触发器分为三种:插入、更新、删除,触发器的返回值为.,t.,或.,f.,,若为.,t.,,则允许该操作执行;否则,就,不允许该操作执行,触发器可在“表设计器”“表”卡片中设置,也可通过,create trigger on,来,设置触发器,通过,delete trigger on,来删除触发器,13,库表的索引:前述有关自由表索引的一切内容均适用于库表,但库表多出一个主索引,设置主索引时必须注意:,主索引必须是一个候选索引,即记录的值必须唯一,主索引对每张库表都只有一个,14,库表的添加和移去:,向库中添加表是指将自由表添加到库中,使自由表成为数据库表,本质上是建立了库表和库之间的双向链接;而从库中移去表,则是删除了库表和库之间的双向链接,添加:,“项目管理器”“添加”,“数据库设计器”“工具栏”“添加”按钮,在数据库打开并为当前库时,用,add table,表名 来添加,注意:一张表只能添加到一个库中去,移去:,“项目管理器”中选中表“移去”,“库设计器”中选中表“工具栏”“移去”按钮,在数据库打开并为当前库时,用,remove table,表名来移去,15,有关库和库表的几点说明:,尽可能使用数据库表,因它存在这一些约束条件,可以使用!来指定数据库(在打开多个库时),移动和复制库文件时要考虑到相应库表的位置,以防出现前、后链的错误,不要轻易的从库中移去表,做过多次修改库结构、库表结构的操作后,要进行“数据库清理”,以防出现错误和数据的冗余,在删除库后,应该有一个,FREE TABLE,表名,的命令,若多次移动、删除了库或库表,应使用,validate database recover,命令重建双向联接,16,六、永久关系和参照完整性,表之间的关系:三种关系,一对一关系,:甲表的每一个记录在乙表中只能对应一个记录,而乙表中的每一个记录在甲表中也只能有一个记录与之对应,一对多关系,:设有甲乙两张表,如果甲表中的任意一个记录在乙表中可以有几个记录与之对应,而乙表中的每个记录在甲表中就有一个记录与之对应,则称甲乙两张表之间存在一对多关系,并称甲表为“父表”,乙表为“子表”,多对多关系,:若甲表的一个记录在乙表中可以对应多个记录,而乙表中的一个记录在甲表中也可以对应多个记录,则称这两张表具有多对多关系,数据库中,用户可以为存在一对多关系的两张表创建永久性关系,且基于永久性关系可以创建这两张表之间的数据完整性规则,17,纽带表,:在使用中,多对多关系不能直接被使用;遇到多对多的情况,必须建立第三张表,把一个多对多关系分解为两个一对多关系;这第三张表就称为纽带表,纽带表中要存储两张父表的主关键字,分析并确定表之间的关系,:,分析每张表,并确定它们之间的关系,必要时可以在表中添加字段或者创建一张新表来明确关系;,要求会根据给出的条件判定表之间的关系,特别是要能够找出纽带表,18,表之间的永久性关系:,永久性关系,:是在数据库表之间的一种关系,这种关系不仅在运行时存在,而且一直保留;拥有永久性关系的表必须在数据库中;,永久性关系是根据表的索引来建立的,补充:,临时关系,:是在打开的表之间在“数据工作期”窗口中设置,还可以用,set relation,命令建立临时性关系(,P111,例4.13),它不保存,运行结束时就结束。,永久性关系的作用:,在“查询/视图设计器”中,自动作为默认联接条件,作为表单和报表的默认关系,在“数据环境设计器”中显示出来,用来存储参照完整性信息,19,创建永久性关系的操作:,确定两张具有一对多/一对一关系的表,建立主表的主索引或候选索引,若为一对多关系,则在子表中以主表的主关键字作为该表的外部关键字建立普通索引;若为一对一关系,则在子表中以与主表相同的关键字建立主索引或候选索引,在“库设计器”中,将主表的主索引或候选索引标识拖放到子表相同的索引标识上,则完成了永久关系的设置,在“库设计器”中,可以建立、删除或编辑库表之间的永久关系:删除单击连线,,DEL,编辑双击连线,20,参照完整性:,p102,定义,:用来控制数据的一致性,尤其是控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则,参照完整性的一般要求:三个规则,子表中的每一个记录在对应的主表中必须有一个父记录,在子表中插入记录时,其外部关键字必须是父表主关键字值中的一个,在父表中删除记录时,与该记录相关的子表中的记录必须全部删除,设置参照完整性:,双击连线单击“参照完整性”按钮,右击连线“编辑参照完整性”,21,参照完整性设置规则:,表,例,一般我们使用“更新”、“删除”级联,“插入”限制,但要会根据给出的条件对照规则表设置参照完整性。,VFP,完整性综述:主要使用前两类,系统自动,实体完整性:字段级和记录级有效性验证,参照完整性:表之间数据的一致性,用户自定义完整性:用户通过编写代码来控制数据 的完整性,22,数据库操作常用函数:,DBC(),与,DBUSED(),前者返回当前打开的数据库的完整文件名,该函数无参数后者返回指定的数据库文件是否已打开,若打开则为,T,,未打开为,F,,该函数的参数为数据库名(,C,型),DBGETPROP(,名称,,,类型,,,属性,),DBSETPROP(,名称,,,类型,,,属性,,,表达式,)类型有:,DATABASE,TABLE,FIELD,VIEW,属性有:,Caption,标题,,,Comment,注释,,,DefaultValue,默认值,,,Path,路径,,,PrimaryKey,主索引,,,RuleExpression,有效性验证规则,,,RuleText,有效性验证信息,,,DeleteTrigger,删除触发器,,,InsertTrigger,插入触发器,,UpdateTrigger,更新触发器,23,24,库表的字段格式代号表,代号,含 义 说 明,A,只允许字母和汉字(不能有其他字符,包括空格和标点),D,使用当前的日期格式,E,使用英国日期格式,K,当光标移动到文本框时选定整个文本框,M,允许设置多个可选项目,T,删除输入时的前后空格,!,把字母转换为大写,只用于C型数据,且只用于文本框,使用科学记数法显示N型数据,只用于N型数据,$,显示货币符号,只用于N型数据或Y型数据,25,库表的字段输入掩码代号表,代号,含 义 说 明,X,可输入任何字符,9,可输入数字和正负号,#,可输入数字、空格和正负号,$,在某一固定位置显示当前货币符号,.,指定小数点的位置,指定千分位分隔符的位置,26,按照下述设置JS表的字段属性,1)为GH字段设置标题工号,并删除输入时的前后空格,在输入时第1位为字母,后四位为数字,加注释:主关键字,2)为XB字段设置标题性别,并将默认值设置为男,设置验证规则:性别必须为男或女;并且写入相应的验证信息,3)为XDH字段设置标题系代号,要求在输入时只能输入数字不能输入其他的值,4)为GZRQ字段设置标题工作日期,并将默认值设置为当前的日期,27,按照下述设置JS表的表属性,给,JS,表设置长表名:教师基本情况表,给,JS,表添加注释:这个表介绍了教师的基本情况,设置记录级有效性验证:出生日期必须大于工作日期(请试着设置记录级有效性验证:参加工作时必须年满18周岁),在删除时只有当,GH,字段为空时才能删除,总是允许插入,28,参照完整性设置规则,29,参照完整性设置例题,设置,XS,表和,CJ,表之间的参照完整性:1)当,XS,表中的字段值被更新时,用新的字段值去更新,CJ,表中的所有相关记录2)当,CJ,表中有相关的字段值时,不允许,XS,表进行删除3)若,XS,表中没有相关的字段值则不允许,CJ,表插入记录,30,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!