资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
VFP第四章 数据库的创建和使用4.1 VFP数据库1、概念包括数据库表、视图以及表之间的关系、存储过程 等相关内容的集合。4.2 数据库的设计过程步骤:1、确定建立数据库的目的2、确定所需的表3、确定所需字段4、确定表之间的关系5、改进设计1、确定建立数据库的目的数据库中要保存哪些信息 2、确定需要的表数据库设计中技巧性最强的一步要避免在一张表中存储重复的信息 3、确定表的字段确定每张表中要保存哪些详细信息原则:a、每个字段直接和表的主题相关b、不要包含可推导得到和需计算的数据字段c、收集所需的全部信息d、以最小的逻辑单位存储信息e、每张表都必须明确主关键字4、确定表之间的关系*关系的种类:一对多关系(主表XS,子表CJ)多对多关系(甲表XS,乙表KC;纽带表CJ) 一对一关系(不常用) 5、改进设计4.3 创建数据库1、数据库的创建扩展名:库文件.DBC 备注文件.DCT 索引文件.DCX创建方式:a、界面操作方式 b、命令方式CREATE DATABASE 数据库名 2、数据库的组成A、数据库表1、 数据库与表之间的双向链接 ( 前链、后链)2、 在数据库中添加、新建和移去表a、通过项目管理器b、通过命令方式open database 库文件名ADD TABLE 自由表文件名REMOVE TABLE 数据库表名 DELETE3、更新表和数据库之间的链接* 链接被破坏后,可重建链接或删除链接* 删除后链FREE TABLE 表文件名 B、库表之间的永久关系1、定义:永久性关系通过索引建立数据库表所特有的 一 种关系*主表必须用主索引或侯选索引*子表则使用普通索引*如是一对一关系,则两表都必须是主或侯选索引永久性关系的作用:1、用来存储参照完整性规则2、在查询或视图设计器中自动作为默认联接条件3、作为表单和报表的默认临时关系 永久性关系的建立:1、在数据库设计器中建立2、通过命令建立 在创建表时建立CREATE TABLE cj(xh c(6),kcdh c(6),cj n(3,0),;FOREIGN KEY xh TAG cjxh REFEREN xs) 两张表都已经存在ALTER TABLE cj ADD FOREIGN KEY xh; TAG cjxh REFEREN xs C.视图:把分散在相关表中的数据通过联接条件把它们 收集到一起,构成一张虚表,即视图。特点:基表内容可以更新。 D.存储过程:保存数据库中的过程代码的地方。包括用户自定义函数、参照完整性代码等。代码保存在.DBC文件中。 创建、修改或移去存储过程的方法:1、项目管理器2、数据库设计器3、命令MODIFY PROCEDURE数据字典:是包含数据库中所有信息的一张表,记录了数据库中数据的一些信息。元数据:存储在数据字典中的信息,是记录数据的数据数据字典可创建和指定的内容:主关键字和侯选索引关键字表单的默认控件类永久性关系字段的输入掩码和显示格式长表名和表中的长字段名字段级和记录级有效性规则、触发器字段的标题、注释、默认值存储过程4.4数据字典4.5数据库表字段的扩展属性字段基本属性:(字段名、类型、宽度、小数位数)扩展属性包括:字段的显示格式、输入掩码、默认值、 注释以及字段的验证规则。字段扩展属性保存在库表所在的数据库文件中字段的格式(Format)输入掩码(Input Mask)字段的标题(Caption)和注释(Comment)注意:字段名和字段标题的区别和联系 4.5.1. 字段的显示属性4.5.2 字段验证规则 1.字段级规则 作用:n控制用户输入到字段中的信息类型,或检查其它字段 值的字段数据。 *字段级规则在字段值改变时检查规则并发生作用。 *把所输入的值用所定义的规则表达式进行验证,如输入的值不满足规则要求,则拒绝该值。 *字段规则表达式必须返回.T.或.F. n字段验证中的信息框内容可作为出错信息(演示) 设置方法:n表设计器nCREATE TABLE 命令带CHECK子句nALTER TABLE 命令带SET CHECK子句2.默认值 作用:n添加记录时,字段所具有的最初的值n是系统自动的默认值;可将之置为 .NULL.n可减少用户的输入工作量创建字段默认值n表设计器 “字段属性”nCREATE TABLE命令带DEFAULT子句nALTER TABLE命令带SET DEFAULT子句 4.6 数据库表的表属性n数据库表不仅可以设置字段的扩展属性 ,且可为表设置属性。n表属性:n长表名n表注释n表记录的有效性规则及说明n触发器4.6.1 长表名n命名规则 第一字符必须是字母、下划线或汉字n表长度规定 受操作系统的限制,最长128个字符n关于表的打开n使用长表名打开表,表所属数据库必须打开并且是 当前数据库,否则将不能成功打开。n而使用表文件名打开表时,如果所属数据库未打开 ,将会自动打开数据库n如未指定表的别名,则USE 命令打开的表名称即 为别名4.6.2 表记录的验证规则n何时设置 用来控制用户输入到记录中的信息,通常比较同一记 录中的两个或多个字段值。 记录规则表达式必须返回.T.或.F. n何时被激活 在记录指针移离记录时。 增加记录有效规则,默认要对现有记录进行检查n如何设置n表设计器“表”选项卡nCREATE TABLE 表名(字段描述,CHECK子句)nALTER TABLE 表名 SET CHECK子句4.6.3 表的触发器 1. 基本概念:“表触发器” (Trigger)是在一个插入、更新 或删除操作后运行的记录级事件代码。 Trigger是绑定在表上的规则表达式(触发器必 须返回.T.或.F.),当表中的任何记录被指定的 操作命令修改时,触发器被激活。触发器在进行了其它所有检查之后被激活。与字段级规则和记录级规则不同,触发器不对 缓冲数据起作用。2. 创建表的触发器:n三个触发器 插入(INSERT)触发器:每次向表中插入或追加记录时触发该规则; 更新(UPDATE)触发器:每次在表中修改记录时触发该规则; 删除(DELETE)触发器:每次在表中删除记录时触发该规则。n创建方法n表设计器 “表”选项卡n命令nCREATE TRIGGER ON 表名 FOR INSERT AS 逻辑表 达式nCREATE TRIGGER ON 表名 FOR UPDATE AS 逻辑表达 式nCREATE TRIGGER ON 表名 FOR DELETE AS 逻辑表达 式 *当逻辑表达式值为.F.时激发触发器n例:在JS 表中创建更新触发器,防止GL字段值大于50(不大于)CREATE TRIGGER ON JS FOR UPDATE AS GL 2.设置当前数据库所有打开的数据库中,只有一个是当前数据库在打开数据库时,最后一个打开的数据库为当前数据库也可以把其它数据库设置为当前数据库设置方法: 界面(工具栏) SET DATABASE TO 相关函数 测试当前数据库名DBC( ) 测试数据库是否打开DBUSED( )3.使用数据库中的表n使用USE命令可以打开数据库表和自由表n如果打开的是数据库表,则系统会首先自动打开表所属的数 据库(但不是当前数据库) USE n打开非当前数据库中的表 USE ! 4.关闭数据库n项目管理器中先选中数据库名,然后关闭nCLOSE DATABASES &关闭当前数据库和表 说明:若没有当前数据库,则关闭所有工作区内所有打 开的自由表、索引和格式文件,并选择工作区1为当前工作 区nCLOSE DATABASE ALLnCLOSE ALL4.9 查看和设置数据库的属性n返回当前数据库的属性,或者返回当前数据库中字段 、表或视图的属性n例:n?dbgetprop(“js“, “Table“, “PrimaryKey“)n?dbgetprop(“js.gh“, “field“, “caption“)n?dbgetprop(“js.gh“, “field“, “Comment“)n?dbgetprop(“js.gh“, “field“, “default“)4.9.1 DBGETPROP ( ) 函数n可以给当前数据库或当前数据库中表的字段、表 或视图设置属性。n该函数只能设置部分属性,对于表来说可以设置 字段的标题和注释。n例:ndbsetprop(“zy.zydh“,“field“,“caption“,“专业 代号“)ndbsetprop(“zy.zydh“,“field“,“comment“,“标识 专业“)4.9.2 DBSETPROP ( ) 函数4.10 建立表之间的临时关系n在打开的表之间用SET RELATION建立的临时性关系n作用:父表指针的移动会使子表指针相应移动;n注意:子表指针移动不会使父表指针相应移动。n临时关系和永久关系之间的联系区别n联系:n默认性:永久关系常被作为默认的临时关系n区别: 1、临时关系用于控制表之间的记录访问;永久关 系用来存储表之间的参照完整性 2、临时关系在表打开之后使用SET RELATION创建, 随表关闭而解除;永久关系永久保存在数据库中 3、临时关系可在任何表间建立;永久关系只存在 于库表间 4、临时关系中一张表不能有两张主表,永久关系 则不然。4.10.1 临时关系4.10.2 建立临时关系建立临时关系的条件 两表必须为一对多关系或一对一关系 子表必须按照与主表相关联的字段建立索引 利用“数据工作期”窗口建立 使用 SET RELATION 命令 SET RELATION TO 字段表达式 INTO 区号|别名 步骤: SELE 0 USE CJ ORDER CJXH &如无索引则需创建 SELE 0 USE XS SET RELA TO XH INTO CJ4.10.3 解除临时关系 SET RELATION TO SET RELATION OFF INTO 工作区 |别名 关闭主表或子表
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号