讲数据库的创建和使用.ppt_第1页
讲数据库的创建和使用.ppt_第2页
讲数据库的创建和使用.ppt_第3页
讲数据库的创建和使用.ppt_第4页
讲数据库的创建和使用.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1,第7-8讲数据库的创建和使用,本章学习要求数据库的概念数据库的创建、打开、关闭等基本操作(数据库设计器)数据库表的创建、添加数据库表的数据扩展属性:数据级和表级永久关系与参照完整性(基本概念、设置)本章重点及难点数据库表的数据扩展属性永久关系参照完整性的理解与设置,2,本章内容,4.1VFP数据库概述,4.2数据库的创建,4.3数据库的使用,4.4VFP数据库字典概述,4.5数据库表,4.6永久关系和参照完整性,4.7操作数据库及其对象的几个常用函数,3,4.1VFP数据库概述,数据库是一个包容器,用来组织和联系表,它提供了存取数据的一种结构。内容:表表之间的关系连接视图存储过程,4,系代码表,教师表,课程表,学生表,任课表,成绩表,专业表,实例:教学管理数据库,5,4.2数据库表的创建,4.2.1数据库的创建,4.2.2VFP数据库的组成,6,4.2.1数据库的创建,界面方式在“项目管理器”中新建通过“新建”对话框创建,命令方式,createdatabase数据库名|?,每创建一个数据库会生成三个相关文件:,.DBC、.DCT、.DCX,7,4.2.2VFP数据库的组成,表,视图,连接,存储过程,8,1.数据库表,前链保存在数据库文件中指向库表存储有关表文件的路径和文件名信息,后链保存在一张表的表头中指向拥有该表的数据库存储有关库文件的路径和文件信息,从属于某个数据库的表。,数据库表与数据库之间的相关性通过“双向链接”实现。,数据库文件,数据库表文件,9,2.视图(view),是一种“虚表”类型,其数据来源于一张或多张表。,本地视图,远程视图,10,3.连接(connection),是保存在数据库中的一个定义,指定远程数据源的名称。,创建远程数据连接的目的是创建远程视图。,连接远程数据源的方法:,直接访问机器上注册的ODBC数据源,用“连接设计器”设计自定义连接,11,4.存储过程,是保存在数据库中的过程代码,数据库移动时会自动随数据库移动。包括:保存用户自定义函数和过程保存参照完整性代码打开数据库时,它们便被加载到内存中创建、修改或移去存储过程的方法:“项目管理器”“存储过程”“数据库设计器”“数据库”菜单MODIFYPROCEDURE,12,4.3数据库的使用,创建数据库,打开数据库,关闭数据库,删除数据库,设置当前数据库,检查数据库有效性,13,界面方式,创建,打开,关闭,移去,删除,从项目中移去,从磁盘删除,14,设置当前数据库,15,命令方式,创建数据库createdatabase数据库名|?打开数据库opendatabase数据库名|?关闭数据库closedatabase关闭当前数据库closedatabaseall关闭所有数据库closeall关闭所有设置当前数据库setdatabaseto数据库名,16,删除数据库deletefile数据库名,注意点:,删除数据库时,如果直接从windows的“资源管理器”窗口中删除,或利用deletefile命令,这些方法不会删除该数据库所包含的数据库表中的链接信息。因此,应通过“项目管理器”“移去”操作进行删除,这样该数据库所包含的数据库表将自动变成自由表。,17,检查数据库的有效性validatedatabaserecovertoprinter|tofile文件名,recover用于说明更新链接,缺省时仅检查数据库的有效性。,to子句用于说明检查结果的去向,缺省时在vfp主窗口中显示。,说明:,该命令只能处理以“独占”方式打开的数据库。在更新链接时,如果数据库表文件不在原位置,系统会打开:“检查数据库”对话框,要求用户进行文件的定位。,18,4.4VFP数据字典概述,数据字典是包含数据库中所有表信息的一个表。每个数据库带有一个数据库字典。数据库表可以享受到数据字典的各种功能。使用数据字典,可以创建字段级规则和记录级规则,保证主关键字字段内容的唯一性。如果不用数据字典,也可通过编程实现上述功能。,19,数据字典可以创建和指定以下内容:,表中字段的标题、注释、默认值、输入掩码和显示格式,以及表单中使用的默认控件类。表的主索引关键字长表名和表注释字段级和记录级有效性规则存储过程插入、更新和删除事件的触发器,20,4.5数据库表,4.5.1数据库表的创建,4.5.2数据库表的字段的扩展属性,4.5.3数据库表的表属性,4.5.4数据库表的约束机制及其激活时机综述,4.5.5数据库表的索引,4.5.6数据库表的添加与移去,4.5.7有关数据库及数据库表的几点说明,21,4.5.1数据库表的创建,界面方式“项目管理器”窗口“数据库设计器”在数据库打开时,利用菜单命令或常用工具栏“新建”命令方式在数据库打开时,利用createtable-SQL命令,22,实例,下列命令可以在当前数据库jxsj中创建一张数据库表xsb,opendatabasejxsj,createtablexsb(xhc(8),xbc(2),如果数据库已打开,但是使用了free关键字,则该表是自由表。如:,23,4.5.2数据库表字段的扩展属性,24,1.字段的显示属性,25,用于指定字段显示时的格式,如大小、样式等。数据库表的字段格式参见教材P91表3-4。,26,用于指定字段中输入数据的格式。数据库表的字段输入掩码参见教材P91表3-5。,27,增强可读性。字段注释会出现在“项目管理器”窗口下部。,28,2.字段的有效性,29,规则用来控制输入到字段中的数据的取值范围。信息指定在不满足规则时显示的说明信息。,30,添加新记录时,为字段指定的初值,31,指定在用“表单向导”生成表单或从数据环境中将字段拖放到表单上时,与该字段相应的控件类。,32,对字段有效性设置的命令方式,opendatabasejxsj,createtablecj1(xhc(11)default“20062331000”,kcdhc(6),cjN(3,0)checkcj=0andcj=0andcj=100,(教材P100),33,4.5.3数据库表的表属性,34,表注释会出现在“项目管理器”窗口下部。,增强可读性,35,规则用来控制多个字段之间是否满足某种规则。信息指定在不满足规则时显示的说明信息。,注意:与字段级规则相区别!,36,触发器是指当数据库表中的记录被修改前,所做的检查满足条件后被激活。,37,表属性设置的命令方式,opendatabasejxsj,createtablexsname学生表(xhc(11),xmc(8),xbc(2),altertablejssetcheckcsrqgzrqerror“工作一定在出生之后”,altertablejsdropcheck,createtriggeronjsforupdateas.f.,deletetriggeronjsforupdate,38,4.5.4数据库表的约束机制及其激活时机综述,约束机制及其激活时机,(教材P103表4-4),39,4.5.5数据库表的索引,主索引,候选索引,唯一索引,普通索引,只有在数据库表中才能设置主索引,且一张数据库表只能设置一个。设置主索引的主要用途是为了建立表之间的永久性关系。,40,4.5.6数据库表的添加与移去,向数据库中添加表,本质是建立数据库与表之间的双向链接。,从数据库中移去表,本质是删除数据库与表之间的双向链接。,41,界面方式,通过“项目管理器”通过“数据库设计器“,42,命令方式,addtable表名name长表名,removetable表名delete,使用这两条命令之前,数据库必须已经打开!,freetable表名,如果意外地删除了某个数据库文件,由于该数据库中包含的数据库表仍然保留后链,因此这些数据库表也不能被添加到其他数据库中,必须使用freetable命令删除后链,才能使之成为自由表。,43,4.5.7有关数据库及数据库表的几点说明,参见教材P104,44,4.6永久关系与参照完整性,4.6.1表之间的关系,4.6.2表之间的永久关系,4.6.3参照完整性,4.6.4VFP完整性综述,45,关系的种类一对多关系(1:M)一/主表:一个记录在子表中有几个记录与之对应。多/子表:一个记录在主表中仅有一个记录与之对应。多对多关系(M:N)甲表:一个记录对应于乙表中多个记录。乙表:一个记录对应于甲表中多个记录。必须建立“纽带表”(JunctionTable),把多对多的关系分成两个一对多的关系。一对一关系(1:1),4.6.1表之间的关系,如:学生表与成绩表,如:学生表与课程表,46,学生基本信息表,学生成绩表,课程表,1:n,1:n,47,4.6.2表之间的永久关系,是保存在数据库中的。,是数据库表之间的一种关系。,是根据表的索引建立的。索引的类型决定了要创建的永久关系类型。,48,建立(详细步骤参照教材P100)建立两张表的索引在“数据库设计器”中拖动索引标识编辑在“数据库设计器”中双击关系连线单击连线数据库编辑关系删除单击连线,按DEL键右击连线删除关系,永久关系的建立和编辑,49,4.6.3参照完整性,用来控制数据库相关表之间的数据一致性(主关键字和外部关键字之间)的规则。参照完整性是建立在库表之间永久关系基础之上的。目的:防止孤立记录的产生。实施机制:规则被设置在主表或子表的触发器中,规则的代码被保存在存储过程中。相关表之间的数据一致性要求:有子必有父插子必有父父删子必删,(P101),50,4.6.3参照完整性,设置参照完整性时,应满足以下规则:在关联的数据表间,子表中的每一个记录在对应的父表中都必须有一个父记录。对子表作插入记录操作时,必须确保父表中存在一个父记录。对父表作删除记录操作时,其对应的子表中必须没有子记录存在。,51,4.6.3参照完整性,参照完整性规则包括三种规则:更新规则:当父表中记录的关键字值被更新时触发删除规则:当父表中记录被删除时触发插入规则:当在子表中插入或更新记录时触发每种规则又包括三种设置级联:将操作也作用于建立永久关系的另一数据库表限制:禁止操作忽略:允许操作,52,参照完整性的设置,参照完整性规则,53,4.6.4VFP数据完整性综述,三类完整性实体完整性:字段级、记录级参照完整性:表级用户自定义完整性通过字段级、记录级和表间三级完整性约束,有效地实现了数据的完整性和一致性。,54,命令使用小结,有关数据库操作命令有关数据表操作命令有关记录操作命令有关索引操作命令有关表之间的关系的操作命令,55,有关数据库操作命令,创建数据库CREATEDATABASE|?关闭数据库CLOSEDATABASE关闭当前数据库CLOSEDATABASEALL关闭所有数据库CLOSEALL关闭所有,注意:在使用命令创建数据库时,如果命令中没有指定数据库名称,或是命令后带的是“?”,则会打开“创建”对话框。如果命令后带有数据库的名称,则创建数据库,并使数据库处于打开状态,但不打开“数据库设计器”窗口。,56,有关数据库操作命令,设置当前数据库SETDATABASETO数据库名检查数据库的有效性VALIDATEDATABASERECOVERTOPRINTER|TOFILE文件名删除数据库DELETEDATABASE数据库文件名|?,57,有关数据库操作命令,添加数据库表ADDTABLE表名|?NAME长表名移去和删除数据库表REMOVETABLE表名|?DELETE|RECYCLE,58,有关数据表操作命令,创建数据表CREATE0向文件尾方向;n0向文件头方向。记录的条件定位LOCATE范围FOR/WHILE条件,范围ALL:全部记录NEXTn:从当前记录开始的N个记录RECORDn:第N个记录REST:从当前开始到结束的所记录,63,有关记录操作命令,修改表的记录REPLACE字段名1WITH表达式1ADDITIVE,字段2WITH表达式2ADDITIVE范围FOR条件表达式记录的逻辑删除DELETESCOPEFOR条件IN工作区号|表别名记录的恢复RECALLSCOPEFOR条件记录的物理删除PACKZAP(删除所有记录),64,有关记录操作命令,数据的复制COPYTO文件名FIELDS字段名范围FOR条件表达式类型SDF|XLS|DELIMITEDWITH分隔符|WITHBLANK|WITHTAB|WITHCHARACTER分隔符数据的统计COUNT范围FOR条件表达式1WHILE条件表达式2TO变量名NOOPTIMIZESUMAVERAGE,65,有关索引操作命令,创建索引INDEXON索引表达式TAG索引标识名FOR条件表达式ASCENDING|;DESCENDINGUNIQUE|CANDIDATE修改索引使用INDEX命令建立同标识名的索引文件删除索引DELETETAG索引标识名1,索引标识名2,66,有关索引操作命令,设定主控索引SETORDERTO索引编号|idx文件|TAGTAG名OFcdx文件IN工作区|别名ASCENDING|DESCENDING利用索引快速定位SEEK索引关键字表达式ORDER索引标识ASCENDING|DESCENDING注意:SEEK只能在索引过的表中使用,并且只能搜索索引关键字;如找不到相匹配的关键字,则RECNO()将返回表中记录个数+1,FOUND()返回.F.,EOF()返回.T.。,67,有关表之间的关系的操作命令,创建表的触发器插入触发器:CREATETRIGGEON表名FORINSERTAS逻辑表达式更新触发器:CREATETRIGGEON表名FORUPDATEAS逻辑表达式删除触发器:CREATETRIGGEON表名FORDELETEAS逻辑表达式触发器的删除DELETETRIGGERON表名FORINSERT|UPDATE|DELETE,68,有关表之间的关系的操作命令,建立一对一临时关系SETRELATIONTO关联表达式1INTO工作区号1|子表表别名l,INTO工作区号2|子表表别名2IN工作区号|父表表别名ADDITIVE建立一对多临时关系SETSKIPTO子表表别名l,子表表别名2.取消关联SETRELATIONOFFINTO工作区号|子表表别名,69,函数使用小结,有关数据库的函数DBC()DBUSED(数据库名)DBGETPROP()DBSETPROP(),70,查看数据库或当前数据库中字段、表或视图属性语法:DBGETPROP(cName,cType,cProperty)cName:指定数据库、字段、表或视图的名称cType:指定cName的类型,是否为当前数据库,或者当前数据库中的一个字段、表或视图cProperty:指定属性名称,(具体见教材P104),?DBGETPROP(“cj.cj”,”FIELD”,”Caption”),例:,DBGETPROP()函数,71,设置数据库或当前数据库中字段、表或视图属性语法DBSETPROP(cName,cType,cProperty,eValue)eValue:指定cProperty的设定值,它的数据类型必须和属性的数据类型相同示例:?DBGETPROP(“cj.cj”,

温馨提示

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

评论

0/150

提交评论