您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 第7讲自由表与数据库表
第7讲自由表与数据库表VFP中的数据库是一个逻辑上的概念和手段,是一个容器,通过一组系统文件统一组织和管理相互关联的数据库表及相关的数据库对象。例如,将扩展名为DBF的数据库表文件组织在一起管理,使它们成为相互关联的数据集合。在建立VFP数据库时,相应的数据库名称实际是扩展名为DBC的文件名,与之相关的还会自动建立一个扩展名为DCT的数据库备注文件和一个扩展名为DCX的数据库索引文件,这三个文件是供VFP数据库管理系统管理数据库使用的,用户一般不能直接使用这些文件。一、数据库的基本操作1.建立数据库1)菜单法从“文件”菜单选择“新建”命令,在“新建”对话框建立数据库;2)使用命令建立数据库,命令格式是:CREATEDATABASE[DatabaseName|?]2.打开数据库1)菜单法从“文件”菜单“打开”命令2)命令方式命令格式:OPENDATABASE[数据库名|?][EXCLUSIVE][SHARED][NOUPDATE][VALIDATE]独占方式共享方式只读方式检查合法性说明:此命令不会自动打开数据库设计器。常在程序中使用。打开数据库时,表不会自动打开。数据库不打开时,仍可使用USE命令打开表。同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库.指定当前数据库的命令是:SETDATABASETO数据库文件名也可以用“常用”工具栏中的按钮来选择当前数据库SETDATABASETO使所有打开的数据库都不是当前数据库。3.修改数据库(1)菜单法从“文件”菜单—“打开”命令(自动打开数据库设计器)(2)命令方式(自动打开数据库设计器)命令格式:MODIFYDATABASE[数据库名|?][NOWAIT][NOEDIT]4.删除数据库命令方式命令格式:DELETEDATABASE〈数据库名|?〉[DELETETABLES][RECYCLE]SETSAFETYON|OFF用于设置在删除时是否给出提示信息。SETSAFETYON提示是否删除(系统默认)SETSAFETYOFF不给出任何提示,直接删除数据库文件二、建立数据库表1.建立数据库表1)“数据库”菜单“新建表”命令;同时删除包含的表放入回收站禁止修改程序中使用2)“数据库设计器”工具栏中“新建”按钮;3)快捷菜单;4)“文件”菜单“新建”命令;5)命令方式(数据库打开时)命令格式:CREATE〈表文件名[.DBF]2.自由表(1)数据库表与自由表自由表不属于数据库中的表就是自由表。自由表可以被移入数据库使之成为数据库表,数据库表也可以移出数据库成为自由表。自由表无法实现数据完整性,自由表不支持主索引,不能建立字段有效性规则,也不支持在表之间建立永久性联系。(2)将自由表添加到数据库菜单法:“数据库”—“添加表”命令方式:ADDTABLE表名/?[NAME长表名]例如ADDTABLETTTNAME2001级学生军训表注意:一个表只能属于一个数据库。(3)从数据库中移出表菜单法:在数据库设计器中选择要移出的表;“数据库”—“移去”。命令方式:REMOVETABLE表名|?[DELETE][RECYCLE]数据库表比自由表又有以下特征:数据库表可以使用长文件名和长字段名数据库表中的字段比自由表中的字段多四个特性数据库表的索引比自由表多了一个索引数据库表与表之间存在永久性关联数据库表与表之间存在参照完整性3.空值:就是缺值或还没有确定值,不能把它理解为任何意义的数据。4.字段有效性规则字段有效性规则是一种对字段取值的约束。它包括“规则”、“信息”和“默认值”“规则”是一个与字段有关的逻辑表达式,通过这个表达式对用户输入的值加以限制,信息是一个字符串表达式,用来给出错的提示信息,默认值是与字段类型一致的数据。字段有效性规则提供数据完整性检验——域完整性检验。5.显示组框1)格式:输出格式2)输入掩码:输入格式3)标题:为字段加标题,用于显示、浏览等。4)注释:为相应字段加说明文字。必须掌握:会将自由表添加到数据库表、建立表的索引和多表之间的联系会将数据库表移出成为自由表掌握如何设置数据库表的字段有效性规则会设置数据的参照完整性规则(多个数据库表)三、索引4.2.4索引索引如同书的目录,通过目录,读者可以快速找到所需要的内容,索引可以使用户快速找到表中的数据。VFP提供四种类型的索引。1.索引的种类1)主索引在指定字段或表达式中不允许出现重复值的索引。主索引主要用于主表或“被引用”表,用来在一个永久关系中建立参照完整性。只有数据库表可以创建主索引。一个表只能创建一个主索引,通常用表的主关键字作为主索引关键字。2)候选索引候选索引同主索引一样要求索引关键字或表达式不能有重复值。数据库表和自由表都可以建立候选索引,并且可以建立多个候选索引。3)唯一索引为了与前期版本兼容而保留的一种索引。一个表中可以建立多个惟一索引,并且不要求索引字段值惟一。4)普通索引普通索引可用来对记录排序和搜索记录,它不要求索引字段或表达式的值惟一。此外,普通索引还可作为一对多永久关系中的“多方”索引的目的是为了提高查询数据的速度,但同时降低了更新数据的速度.因此,并不是建立的越多越好,要根据需要建立索引.索引文件有两种类型:结构复合索引非结构复合索引2.建立索引1)在表设计器中建立索引2)用命令建立索引INDEXON〈索引表达式〉TO〈文件名〉|TAG索引标识符[OF文件名.CDX][FOR条件][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]INDEXON职工号TOZGINADDITIVE.IDXINDEXON职工号TAGZG.CDX说明:索引表达式项,它可以是字段名,或包含字段的表达式。[TO〈文件名〉]项,建立一个单独的索引,扩展名为IDX的文件。TAG〈索引标识符〉中的〈索引标识符〉给出索引名。多个索引可以创建在一个索引文件中,这种索引称做结构复合索引,其文件名与相关的表同名,并具有CDX扩展名。COMPACT选项是建立一个压缩的IDX文件,复合索引总是压缩的。[ASCENDING|DESCENDING]选项是说明建立升序或降序索引,默认升序。[UNIQUE]建立唯一索引[CANDIDATE]建立候选索引[ADDITIVE]说明现在建立索引时是否关闭以前的索引。例如INDEXON上机成绩TOSJIN&&建立单索引,扩展名为.IDXINDEXON笔试成绩TAG笔试成绩&&建立结构复合索引结构复合索引的特点:在打开表时自动打开;在同一索引文件中能包含多个索引方案,或索引关键字;在添加、更改或删除记录时自动维护索引。一般现在只使用结构复合压缩索引,而非结构索引多半是为了与以前版式本兼容。3.使用索引1)打开索引文件非结构复合索引在使用前必须先打开。命令格式:SETINDEXTO〈索引文件名表〉SETINDEXTO职工号,性别LIST2)设置当前有效索引命令:SETORDERTO〈索引序号〉|TAG〈索引标识符〉[ASCE|DESE]3)索引查找SEEK〈表达式〉[ORDER〈索引序号〉|TAG〈索引标识符〉][ASCE|DESE]SEEK“S4”DISPSKIP4)删除索引DELETETAGALLDELETETAG〈索引名〉四、实体完整性与主关键字在数据库中数据完整性是指保证数据的正确的特性,数据完整性一般包括:实体完整性域完整性参照完整性1.实体完整性:是保证表中记录惟一的特性,即在一个表中不允许有重复的记录。2.域完整性:数据类型的定义属于域完整性的范畴。如定义字段的类型,宽度和取值范围、字段的有效性规则等。3.参照完整性:参照完整性与表之间的联系有关,它的大概含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。(1)建立表之间的联系(2)设置参照完整性约束在建立参照完整性之前必须首先清理数据库(数据库——清理数据库)。参照完整性规则包括更新规则、删除规则和插入规则例如建立数据库表的联系和参照完整性规则二、按要求完成下列操作1.建立一个名为“订货项目.PJX”的项目文件。2.在“订货项目”的项目中,建立一个名为“订货管理.DBC”的数据库文件。3.建立如下四张表,都属于“订货管理”数据库。仓库表:仓库号(字符型,3)城市(字符型,4)面积(数值型,3)仓库号城市面积WH1北京370WH2上海500WH3广州200WH4武汉400职工表:仓库号(字符型,3)职工号(字符型,2)工资(数值型,4)仓库号职工号工资WH2E11220供应商表:供应商号(C,2)供应商名(C,12)地址(C,4)供应商号供应商名地址S3振华电子厂西安S4华通电子公司北京S6607厂郑州S7爱华电子厂北京订购单表:职工号(C,2)供应商号(C,2)订购单号(C,4)订购日期(D)职工号供应商号订购单号订购日期E3S7OR672001/06/23E1S4OR732001/07/28E7S4OR762001/05/25E6NullOR77NullE3S4OR792001/06/13E1NullOR80NullE3NullOR90NullWH1E31210WH2E41250WH3E61230WH1E71250E3S3OR912001/07/134.建立参照完整性步骤(1)在职工表上建立职工号的主索引,索引名为职工号。在仓库表中建立仓库号主索引,索引名为仓库号。在供应商表中建立供应商号的主索引,索引名为供应商号。在订购单表中建立职工号的普通索引和供应商号的普通索引,索引名分别为职工号和供应商号。(2)建立永久联系。(3)建立参照完整性。定义删除规则为“级联”,更新规则和插入规则为“限制”。习题四一、选择题1.打开一个数据库的命令是A)USEB)USEDATABASEC)OPEND)OPENDATABASE2.VFP数据库文件是A)存放用户数据的文件B)管理数据库对象的系统文件C)存放用户数据和系统数据的文件D)前三种说法都对3.要为当前表所有职工增加100元工资,应该使用命令A)CHANGE工资WITH工资+100B)REPLACE工资WITH工资+100C)CHANGEALL工资WITH工资+100D)REPLACEALL工资WITH工资+1004.以下关于自由表的叙述,正确的是A)全部是用以前版本FoxPro(FoxBASE)建立的表B)可以用VFP建立,但是不能把它添加到数据库中C)自由表可以添加到数据库中,数据库表也可以从数据库中移出成为自由表D)自由表可以添加到数据中,但数据库表不可以从数据库中移出成为自由表5.VFP参照完整性规则不包括A)更新规则B)删除规则C)查询规则D)插入规则二、填空题1.VFP的主索引和候选索引可以保证数据的完整性。2.数据库表之间的一对多联系通过主表的索引和子表的索引实现。3.实现表之间临时联系的命令是。4.在定义字段有效性规则时,在规则框中输入的表达式类型是。5.在VFP中,最多同时允许打开个数据库表和自由表。三、上机题1.建立一个学生数据库,要求如下:(1)数据库名为“学生”(2)建立如下表:学生(学号C7,姓名C8,年龄I)课程(课程号C6,课程名C14)成绩(学号C7,课程号C6,成绩I)(3)建立如下索引在学生(学号)、课程(课程号)上建立主索引;在成绩(课程号)和成绩(学号)上建立普通索引。(4)建立学生和成绩之间的联系,课程和成绩之间的联系。2.将以上建立的数据库表移出数据库使之成为自由表。3.分别利用APPEND和INSERT命令为以上自由表输入记录,然后用EDIT、CHANGE和REPLACE命令修改表中记录。4.将以上自由表再添加到数据库中,并重新建立索引和表之间联系。5.定义学生表和成绩表之间的参照完整性规则,定义删除规则为“级联”,更新规则和插入规则为“限制”。6、建立下列表文件(1)计算每位职工的实发工资(2)计算基本工资、奖金、房水费和实发工资的平均值。添加到表中
本文标题:第7讲自由表与数据库表
链接地址:https://www.777doc.com/doc-2198790 .html