您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 省二级VFP-第03章概要
第3章数据库与表的创建和使用一、数据库的基本概念数据库的概念:数据库是一个容器,是许多相关的数据库表及其关系的集合数据库设计的一般步骤:*需求分析;*分解问题,确定表;*确定表中字段;*确定表之间关系;*改进优化数据库的功能:存储一系列表,在表间建立关系,设置属性和数据有效性规则使相关联的表协同工作。库文件类型:每创建一个新的数据库都将产生三个文件:数据库文件.dbc,关联的数据库备注文件.dct,关联的数据库索引文件.dcx设计一个完善、高效和结构优化的数据库,是创建以数据库为基础的信息系统中必不可少的重要环节,VFP的主要操作对象就是数据库(库表)一对一关系(1:1)设有甲乙两张表,如果甲表的一个记录在乙表中有且只有一个记录与之对应,则这两张表之间的关系为“一对一关系”。这种关系在实际应用中不常使用。在许多情况下,两张表的信息可以简单合并成为一张表。确定表之间的关系一对多关系(1:n)设有甲乙两张表,如果甲表的任意一个记录在乙表中都有几个记录与之对应,而乙表中的每个记录在甲表中仅有一个记录与之对应,则这两张表之间的关系为“一对多关系”。甲表为“一表”(或“主表”、“父表”),乙表为“多表”(或“子表”)。1:n多对多关系(m:n)设有甲乙两张表,如果甲表的任意一个记录在乙表中存在多个记录与之对应,而乙表中的每个记录在甲表中也存在多个记录与之对应,则这两张表之间的关系为“多对多关系”。在实际应用中,多对多关系不能直接使用,必须建立第三张表,把多对多的关系分解成两个一对多关系,这张表称为“纽带表”。1:mn:1m:n分析并确定表之间的关系系代码表教师表课程表学生表专业表成绩表任课表图上箭头所示的关系均为一对多关系3.1.2数据库的组成数据库表表之间的关系连接视图存储过程库与表之间的双向链接前链保存在数据库文件中存储有关表文件的路径和文件名信息指向库表后链存放在一张表的表头中存储有关库文件的路径和文件信息指向拥有该表的数据库存储过程存储过程是保存在数据库中的过程代码的地方保存用户自定义函数和过程保存参照完整性代码打开数据库时,它们便被加载到内存中概念:数据字典是指存储在数据库中,用于描述所管理的表和对象的数据;存储在数据字典中的信息称之为元数据(Metadata),换言之,其记录的是关于数据的数据。VFP数据字典概述数据字典的功能:创建和指定以下内容表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中的默认控件表的主索引关键字长表名和表注释字段级和记录级有效性规则存储过程插入、更新和删除事件触发器3.2创建数据库数据库的创建:界面方式:1、在“项目管理器”中创建,创建的库在项目2、通过“新建”按钮或“文件”—“新建”来创建,创建的库不在项目中命令方式:用createdatabase[databasename|?]打开一个库:界面方式:•新建一个数据库,保存后会自动打开•在打开一个数据库表时,系统也会自动的打开相应的库•在“项目管理器”中用“打开”或“修改”按钮命令方式:Opendatabase[databaseName][exclusive|shared][noupdate][validate]打开数据库设计器MODIFYDATABASE设置当前数据库在“常用”工具栏“数据库下拉列表”中选择利用setdatabasetodatabaseName命令来进行设置检查数据库的有效性:p75若用户移动了数据库文件(.dbc,.dct,.dcx)或与数据库相关联的表文件,则这些文件的相对路径会改变,那么有可能破坏VFP关联库和表的双向链接,就需要重建链接或检查有效性,使用命令:Validatadatabase[recover][toprinter|tofilefilename]FREETABLE表文件名可取消后链,使此表成为真正的自由表。关闭数据库CLOSEDATABASE:关闭当前数据库CLOSEDATABASEALL:关闭所有数据库CLOSEALL:关闭所有数据库、表、索引及设计器关闭库:“项目管理器”—“关闭”按钮删除数据库“项目管理器”—“移去”按钮;deletefile3.3表的创建与使用根据是否从属于数据库分类:自由表数据库表自有表和数据库表的差异:自由表具有的特性数据库表都有,但数据库表还具有数据库管理的其他特性自由表自由表数据库表数据库表数据库库表的创建:界面方式:选中“项目管理器”—“数据库”—“表”,新建按钮“数据库设计器”—“数据库设计器工具栏”—“新建表”在数据库打开时,“文件”—“新建”或“新建”按钮命令方式:p101,注意name与free子句在数据库打开时,利用createtable-SQL语句来创建表,此时若在命令中不使用free子句,则创建的为库表注意:在利用命令创建库表时,可以使用name子句定义长表名(表名长度可超过128个字符)3.3.1表结构表:存放在磁盘文件中的一张二维表,一张表保存为一个表文件。表的扩展名.DBF表文件.FPT备注文件(当表中有备注字段\通用字段)字段,最多255个字段记录表的组成:表结构+表数据表结构:字段名、数据类型、宽度1.字段名(命名规则)2.字段的数据类型字母表示:CharactercurrencYNumericFloatDatedateTimedouBleIntegerLogicalMemoGeneral日期型输入//、逻辑型表示备注型(不定长的一段文字)通用型(图片、声音等)3.字段宽度(能容纳的最大字节数)除字符型、数值型和浮点型外,其他类型的宽度固定逻辑型1字节,日期型8字节备注型、通用型字段宽度为4字节,包含的是引用信息指向真正的备注内容和包含真正图片及声音的文件。有内容时在表中显示为大写字母M、G;无内容为小写字母m、g。双击打开窗口可以输入内容。表文件.dbf4字节备注文件.FPT备注型/通用型问题?有多个备注字字段,对应几个备注文件?如果表结构中存在一个或多个备注型字段,则存在且仅一个同名的备注文件,扩展名为.FPT,各记录的备注段、通用字段中保存的是什么内容?各记录的备注字段——指出备注文字在备注文件中的位置。各记录的通用字段——指向备注文件中所管理的数据对象。4.小数位数在数值型、浮点型、双精度型中可以指定小数位数。字段宽度=整数宽度+小数点1位+小数宽度123.4的宽度是多少?55.空值支持(.NULL.)空值表示没有任何值或没有确定值,不等同于数值0、空字符串或逻辑假值允许接受空值:选定表设计器NULL列在表中输入空值:按CTRL+0给变量赋空值:变量名=.NULL.建表的命令:P101CREATTABLECJ1NAME考试成绩(XHC(12),KCDMC(6),CJN(5,1),CJBZC(4))表设计器:项目管理器窗口------修改按扭对于有项目管理的表USE表名------MODIFYSTRUCTURE问题表设计器只读怎么办?当表共享打开时,表设计器为只读打开表设计器的命令?modifystructure3.3.3数据库表字段的扩展属性标题(Caption)注释(Comment)字段的显示格式(Format)输入掩码(InputMask)默认值字段的验证规则、信息数据库表除了具有自由表的属性之外,还可以设置一些扩展属性;这些属性在“表设计器”中设置,并作为数据字典保存在数据库中库表的字段扩展属性:P78~80,例字段显示属性:只要求会根据给出的条件进行设置字段格式:用于指定字段显示时的格式,包括浏览窗口、表单和报表中显示时的大小写和样式等,可用的格式字母代号见P79表3-2输入掩码:用于指定字段中输入数据的格式,可用的掩码字符见P79表3-3字段的标题和注释:标题和注释是为了使表具有更好的可读性和可理解性,不是必需的;在“项目管理器”中选中字段,窗口下部的状态栏会显示字段注释设置字段级规则用来进一步限定字段的取值范围包括:有效性规则有效性信息默认值字段有效性规则:用来控制输入到字段中的数据的取值范围,是一个逻辑表达式,且当前字段包含在表达式当中;当输入数据时,系统根据表达式进行验证,若结果为.t.,则接收输入的值;否则,拒绝输入的值,并且显示一个提示框字段有效性信息:它是有效性规则的说明,是一个字符表达式,是在拒绝输入值时显示的提示框中的说明信息默认值:向一张数据库表中添加新记录时所指定的最初的值称为该字段的默认值,它必须是一个与字段类型相同的表达式,适当的设置默认值可以减少输入的工作量Xb$”男女”字段的默认控件类型:作用是指定在使用“表单向导”生成表单或从数据环境中将字段拖放到表单上时,与字段相对应的控件类还可以利用命令来进行扩展属性的设置:P101~102Createtable表名(字段名类型(宽度)[default表达式][check表达式][error‘提示信息’]……)Altertable表名altercolumn字段名[setdefa表达式][setcheck表达式][error‘提示信息’]P101-103例子阅读,请读懂上机操作:为CJ表的CJ字段设置扩展属性:XH的默认值为“980000”,要求CJ必须在0~100之间,若不是在此范围请给出提示信息:成绩必须在0~100之间表结构的修改用“表设计器”修改表结构(对应于命令modifystructure)用altertable-SQL命令来修改表结构P103,记住命令使用格式,看懂书上的例子数据库表不仅可以设置字段的扩展属性,还可以为表设置一些属性,如长表名、记录级验证、触发器等,这些属性在“表设计器”中设置,也保存在数据字典中数据库表的表属性库表的表属性:P81~82,例长表名和表注释长表名:创建表时,若不做任何规定则表文件名就是表名;若设置了长表名属性,则该数据库在任何场合均以长表名代替表文件名使用在“表设计器”—“表”卡片—“表名”中设置,也可在使用createtable命令创建库表时用Name子句来设置(如前述)表注释:表的说明信息,在“表设计器”—“表”卡片中进行设置;设置后在“项目管理器”中选中相应的表,可在窗口的下部状态栏中看到表的注释表属性表记录的有效性规则用来控制用户输入到记录中的信息类型,通常比较同一记录中的两个或多个字段值。在记录指针改变或关闭“浏览”窗口时激活。从数据库中移去具有关联规则的表时,所有属于该表的字段级和记录级规则都会从数据库中删除。因为规则存放在.DBC文件中。记录级验证:用于定义记录级校验规则,包括了记录的有效性规则和有效性信息注意比较字段级验证和记录级验证的区别记录有效性规则和信息的设置类似于字段有效性规则和信息的设置,也可在createtable时利用check子句来进行设置或在altertable时利用setcheck子句来进行设置注意比较利用命令进行字段验证设置和记录验证设置的区别表触发器:是绑定在表上的逻辑表达式,是表在进行插入、更新或删除记录是的检验规则触发器分为三种:插入、更新、删除触发器的返回值为.t.或.f.,若为.t.,则允许该操作执行;否则,就,不允许该操作执行触发器可在“表设计器”—“表”卡片中设置,也可通过createtriggeron来设置触发器,通过deletetriggeron来删除触发器CREATETRIGGERON表名FORDELETE|INSERT|UPDATEAS条件表达式CREATETRIGGERONJSFORDELETEAS.F.DELETRIGON表名FORDELE|INSE|UPDA库表的约束机制及其激活时机综述:P82表3-5库表的索引:前述有关自由表索引的一切内容均适用于库表,但库表多出一个主索引设置主索引时必须注意:主索引必须是一个候选索引,即
本文标题:省二级VFP-第03章概要
链接地址:https://www.777doc.com/doc-3612099 .html