vfp学习《第4章》.ppt_第1页
vfp学习《第4章》.ppt_第2页
vfp学习《第4章》.ppt_第3页
vfp学习《第4章》.ppt_第4页
vfp学习《第4章》.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 数据库的创建和使用,考点 数据库的创建和使用、数据库表的创建和使用(必考)、永久关系和参照完整性(必考)、数据库常用函数 15分左右,本章内容,VFP 数据库概述 数据库的创建 数据库的使用 VFP数据字典概述 数据库表 数据库表的表属性 永久关系与参照完整性 操作数据库极其对象的几个常用的函数,4.1 VFP数据库概述,数据库是一个包容器,是许多相关的数据库表的集合,它包括数据表以及表之间的关系。,因此,数据库不仅把几张表罗列在一起,而且还包括了表之间的关系。这些表及其它们之间的关系构成了一个数据库。,4.2 数据库的创建,数据库提供了如下的工作环境:存储一系列的表,在表之间建立关系

2、,设置属性和数据有效性规则使相关联的表协同工作。每创建一个新的数据库都将生成三个文件:数据库文件(.dbc),关联的数据库备注文件(.dct)和关联的数据库索引文件(.dcx)。,4.2.1 数据库的创建,1.数据库的创建 1)界面操作 在“项目管理器”中新建数据库 通过“新建”对话框 2)命令方式 CREATE DATABASE 数据库名 | ? 2.VFP数据库的组成 1)数据库表 数据库表是从属于某一个数据库的表。数据库表与数据库之间的相关性是通过表文件(.dbf)与库文件(.dbc)之间的双链接实现的。双链接包括前链和后链。,2)视图 在设计表时,要把数据主题分解到不同的表,在使用表时

3、就反过来,把分散的表通过一定的关系连接成一个“虚表”,这张“虚表”就是视图。视图使数据暂时从数据库中分离出来,成为游离数据,以便在主系统之外收集和修改数据。,3)连接 连接是保存在数据库中的一个定义,它指定了数据源的名称。这里的数据源指远程数据源。一个远程数据源通常是一个远程数据库服务器或文件,并且已为它在本地安装了ODBC驱动程序和设置了ODBC数据源名称。(一般可在控制面板中的“ODBC数据源”设置。) 4)存储过程 即保存在数据库中的过程代码,由用户自定义函数或创建表与表之间的参照完整性规则时系统创建的函数组成。,4.3 数据库的使用,1.打开数据库 新建的数据库,保存后自动打开 打开数

4、据库表时,数据库会自动打开 在“项目管理器”中,单击“修改” open database 命令 open database 库名 exclusive|sharednoupdatevalidate 注:open database命令可以同时打开多个数据库,并不会覆盖之前的数据库。,2.设置当前数据库 多次打开数据库时,最后打开的一个数据库就是当前数据库。 方法: “常用”工具栏的“数据库”下拉列表选择当前数据库。 SET DATABASE TO 数据库名。 DBC()返回当前打开的数据库的完整文件名。 DBUSED(数据库名)返回指定的数据库文件是否已经打开的状态。,3.关闭数据库 “项目管理器

5、”的“关闭”按钮 close database 命令(关闭当前数据库) 4.删除数据库 在windows窗口或用delete file命令删除的数据库,不删除链接信息。而使用“项目管理器”中的“删除”进行删除,则可删除链接信息,使库表变成自由表,数据字典是指存储在数据库中用于描述所管理的表和对象的数据,即关于数据的数据,称为“元数据”。其扩展了对数据的描述,从而增强了数据管理和控制功能。可以创建和指定的内容: 表的字段扩展属性,表单中使用的默认控件类等 表的主索引关键字 库表的永久性关系 表的扩展属性 存储过程,4.4 VFP数据字典概述,1. 数据库表的创建 1)界面操作(打开“表设计器”)

6、 “项目管理器”中,数据库中的表新建 “数据库设计器”中,“设计器工具栏”新建表 在数据库打开时,文件新建表新建文件 2)命令 如数据库已被打开,则使用creat table-sql创建表,如不用free,则该表不是自由表。可利用一些子句(name、check等)扩展表的表属性和字段属性。,4.5 数据库表,2. 数据库表的字段扩展属性 字段扩展属性:字段的显示格式、输入掩码、默认值、标题、注释、验证规则等。 设置方法: 界面:“表设计器” 命令:create(alter) table-sql (部分属性) 1)字段显示属性 指定输入和显示字段的格式属性。 字段的格式(format) 字段显示

7、时的格式 输入掩码(input mask) 字段中输入数据的格式 标题(caption)和注释(comment) 使表具有更好的可读性,2)字段验证规则 用于限定字段的取值及取值范围。 字段级规则和有效性信息: 字段级规则是字段中的数据的取值范围,它是一个逻辑表达式,且当前字段包含在该表达式中。 有效性信息也称字段有效性说明,它是字符表达式,与规则配合使用,当规则不满足时,显示的确认框中的说明信息。 例:cj:cj0 and cj=100 xh:len(alltrim(xh)=6 默认值:为字段指定的初始值。 字段所指定的最初的值,其值必使与字段类型相同的表达式。 例:xb:男、 记帐日期:d

8、atetime(),注:如字段允许为NULL,则字段默认值可设为“.NULL.”,否则不可设。 以上是用界面,即“表设计器”完成设置,也可用命令。 creat table-sql:check、error、defualt子句 其中:check:设置字段的有效性规则 error:有效信息 default:默认值,例1:create table cj_temp(xh c(9) default 060409101,kcdh c(6),cj n(3,0) check cj=0 and cj=100),例2:create table cj_temp2(xh c(9),kcdh c(6),cj n(3,0)

9、 alter table cj_temp2 alter column xh set default 060409102 alter table cj_temp2 alter column cj set check cj=0 and cj=100,alter table-sql:set check、 set defualt、drop check 、drop defualt,3. 数据库表的表属性 设置方法: 界面:“表设计器”表 命令:creat table-sql(部分属性) 1)长表名与表注释 设置长表名后,该库表在各种选项卡、窗口中均以长表名代替表名,长表名可与文件名同样使用,但使用长表名

10、打开表时,表所属数据库必须是打开的,并且所属数据库是当前数据库,否则不能打开它。 例:open database jxsj create table cj_temp3 name 学生成绩表 (xh c(6),kcdh c(6), cj n(3,0) close tables all use cj_temp3 use 学生成绩表,2)记录验证 包括记录有效性规则和有效性信息,用于定义记录级校验规则及相应的提示信息。字段有效性规则仅对当前字段有效,而使用记录有效性规则可以校验多个字段之间的关系是否满足某种规则。 记录有效性规则在记录值改变时被激活。 例:alter table js set che

11、ck gzrqcsrq error 出生日期必须大于工作日期 alter table js drop check 3)表触发器 是绑定在表上的逻辑表达式,当表中的任何记录被指定的操作命令修改时,在进行了其他所有检查之后被激发。,数据库表的触发器:插入触发器、更新触发器、删除触发器。触发器的返回值为.T. 或.F.,如为.T. ,则允许执行相应的操作,否则不执行。 用create trigger 创建、delete trigger删除触发器: create trigger on 表名 for delete | insert | update as 表达式 例:create trigger on

12、kc for update as .f. delete trigger on 表名 for delete | insert | update 例:delete trigger on kc for update,4. 数据库表的索引 主索引只能用在数据库表上,需注意的几点: 主索引必是候选索引,其表达式的值对各条记录必唯一 每张库表只能设一个主索引 主索引的主要用途是为了建立表之间的永久关系,6. 在数据库表中添加、与移去表 1)数据库表的添加 添加表就是使自由表成为数据库表,本质上是建立表与数据库之间的双向链接。 界面操作:“项目管理器”数据库表添加 “数据库设计器”添加表 命令:add ta

13、ble 表名 name 长表名 注:使用此命令时,数据库处于打开状态,且为当前数据库,2)数据库表的移去 移去表就是使数据库表成为自由表,本质是删除数据库表与数据库之间的双向链接。 界面操作:“项目管理器”数据库表移去 “数据库设计器”移去表 命令:remove table 表名 delete free table 表(意外的删除了数据库文件),7. 有关数据库及数据库表的几点说明 数据库表与自由表有区别 打开或说明非当前数据库中的表,用“!” 在移动数据库文件的存储位置时,需考虑双向链接 在移去数据库表时,其中的字段、表扩展属性等会丢失 多次修改数据库、数据库表结构之后,应清理数据库,4.6

14、 永久关系与参照完整性 1. 表之间的关系 (1)一对一关系 设A、B两张表,A表中的一个记录在B表中只有一个记录与之对应,B表中的一个记录在A表中也只有一个记录与之对应。在很多情况下,两张表可以简单地合并成一个表。,(2)一对多关系 如A表中的任意一个记录在B表中可有多个记录与之对应,而B表中的每个记录,在A表中仅有一个记录与之对应,则称两表之间存在一对多关系。A为主表,B为子表。,(3)多对多关系 若A表的一个记录在B表中可对应多个记录,而B表中的一个记录在A表中也对应多个记录,则称为多对多关系。 遇到多对多关系时,必须建立第三张表,把多对多关系分解成两个一对多关系。第三张表就称作“纽带表

15、”。把两张表的主关键字都放在这个纽带表中。 对于纽带表,除了包含两个外部关键字外,还可以有其他字段。纽带表的主关键字可以由两个外部关键字组成。,2. 表之间的永久关系 它是库表之间的一种关系,不仅在运行时存在,而且一直保留,拥有永久关系的表必须在数据库中。 表间的永久关系是使用索引建立的。永久关系的类型决定了所使用的索引的类型。在一对多中,主表必用主索引关键字或侯选索引关键字,子表则用普通索引关键字。一对一中,两张表都用主索引关键字或侯选索引关键字。,(1)永久关系的作用 在“查询和视图设计器”中,自动作为默认联接条件; 作为表单和报表的默认临时关系,在“数据环境设计器”中显示; 用来存储参照

16、完整性信息。,(2)永久关系的建立 确定两张具有一对多或一对一关系的表 建立主表的主索引或侯选索引如是一对多,在子表中以外部关键字建立普通索引; 如是一对一,在子表中以与主表相同的关键字建立主索引或侯选索引。建立主表与子表的永久关系。 (3)删除、编辑永久关系,3.参照完整性 是用来控制数据的一致性,尤其是控制数据库相关表之间的主关键字和外部关键字之间数据一致性的规则。,1)参照完整性的一般要求(一对多) 子表的每一个记录在对应的父表中有一个父记录。 在父表中修改记录时,如改了主关键字的值,则子表中相关记录的外部关键字值必须同时改。 在子表中插入记录时,其外部关键字必须是主表主关键字值中的一个

17、。 在父表中删除记录,与该记录相关的子表中的记录必须全部删除。,2)参照完整性的设置 用“表设计器”完成。参照完整性规则包括更新规则、删除规则、插入规则。,4VFP数据完整性综述 完整性包括:域完整性、实体完整性、参照完整性和用户自定义完整性。 实体完整性:为记录赋予数据完整性规则。如记录有效性性规则。 参照完整性:指相关表之间的数据一致性。 域完整性:输入到字段的数据的类型或值必须符合某个特定的要求。如字段有效性性规则。 用户自定义完整性:指由用户通过编程实现对数据完整性的约束。,4.7操作数据库及其对象的几个常用函数,1DBC( )与DBUSED( )函数 DBC( ):返回当前打开的数据库的完整文件名 DBUSED( ):返回指定数据库文件是否已打开 例:?dbc() ?dbused(sjk),2.DBGETPROP()函数: 返回当前数据库的属性,或数据库中字段、表、视图的属性。 语法:DBGETPROP(cName,cType,cProperty) cName:指定数据库、字段、表或视图的名称。 cType:指定cName是否为当前数据

温馨提示

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

评论

0/150

提交评论