VisualFoxPro程序设计教程4数据库、表.ppt_第1页
VisualFoxPro程序设计教程4数据库、表.ppt_第2页
VisualFoxPro程序设计教程4数据库、表.ppt_第3页
VisualFoxPro程序设计教程4数据库、表.ppt_第4页
VisualFoxPro程序设计教程4数据库、表.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

Visual FoxPro程序设计教程,第四章 数据库的基本操作,2019/8/5,2,第四章 数据库的基本操作,教学目的:使学生能够熟练掌握数据库的建立和维护 教学重点:数据库的建立和维护,2019/8/5,3,第四章 数据库的基本操作,4.1 数据库的建立 4.2 建立数据库表 4.3 表的基本操作 4.4 索引 4.5 参照完整性 4.6 自由表 4.7 多表同时使用,2019/8/5,4,5.1 数据库及其建立,在应用中将多个有联系的表组织在一起,构成数据库。,2019/8/5,5,4.1.1 建立数据库文件,1.菜单操作方式 “文件”“新建”“数据库”“新建文件”打开数据库设计器。 2.命令操作方式 命令格式: CREATE DATABASE |? 说明:扩展名为.dbc。并同时生成同名的.dct数据库备注文件与.dcx索引文件。 使用该命令建立数据库后并不打开数据库设计器,只是建立一个新的数据库文件并打开此数据库。 用MODI DATA 文件名打开数据库设计器,2019/8/5,6,4.1.2 数据库的使用,1、数据库的打开 菜单:“文件”“打开”打开的数据库文件名 命令:OPEN DATABASE 注意:在数据库被打开的情况下,它所包含的所有表都可以使用。但这些表并没有被自动打开,使用时仍需要用USE命令打开。,2019/8/5,7,2、数据库的修改 命令:MODIFY DATABASE 3、数据库的关闭 命令:CLOSE ALL| DATABASE 4、数据库的删除 命令:DELETE DATABASE 数据库文件名 注意:要删除的数据库必须处于关闭状态,被删除的数据库中的表成为自由表。,2019/8/5,8,4.2 建立数据库表 (3。29),4.2.1 在数据库中建立表 表分两部分:表结构、表记录 表结构描述了数据存放形式以及存储的顺序。 表记录是表所要保存的数据的主体,数据由记录组成。 一、建数据库表 菜单方式:文件|新建 项目管理器:数据|数据库|表|新建 快捷菜单方式:数据库设计器 “数据库”菜单或数据库设计器快捷菜单“新建表” 命令方式: CREATE:当数据库打开时,在数据库中直接建立表; 如果没有打开数据库,则建立的表是自由表。,2019/8/5,9,二.字段的属性的设置 1、字段显示属性,字段的显示属性包括显示格式、输入掩码和标题。 (1)格式 用于键入格式表达式,确定当前字段在浏览窗口、表单或报表中显示时采用的大小写、字体大小和样式。 例: AT 只允许输出文字字符,用禁止有前导和结尾空格。 (2)输入掩码 输入掩码用于指定字段的输入格式。输入掩码必须按位指定。 例:99-999:表示相应字段只能输入数字,可输入5位数字,第3个符号“-”不是输入掩码,照原样显示,“-”不用输入。 例:学号 200599,前4位固定,后2位必须是数字字符。 (3)标题(9。15) 指定字段显示时的标题。用于为当前字段指定在浏览窗口、表单或报表中的标题显示内容。 (选课),2019/8/5,10,2. 字段有效性,有效性规则是一个与字段或记录相关的表达式,通过对用户的值加以限制,提供数据有效性检查。 规则(关系式或逻辑式) 输入字段内容时测试表达式。 例:入学成绩0 性别=”男” OR 性别=”女” 信息(提示字符串) 违反规则时显示的错误提示信息。 例:“入学成绩应大于0”。 默认值(字段默认值) 用户向表中输入新记录时,显示默认值,除非键入新值,否则一直保留默认值。注意:字符型字段默认值应加定界符。,2019/8/5,11,3、记录有效性规则 使用“表”选项卡设置。 (3)触发器 若要控制对已经存在的记录所作的非法操作,则应使用数据库表的记录级触发器。 触发器是在某些事件发生时触发执行的一个表达式或一个过程。这些事件包括插入记录、修改记录和删除记录。 触发器包括插入触发器、更新触发器和删除触发器。 例如,设置“删除触发器”的表达式为“EMPTY(姓名)”,表示只有当相应记录的“姓名”字段为空时才能删除该记录,这个触发器用于保证不误删除记录。,2019/8/5,12,4.2.2 修改数据库中的表,1、在数据库设计器中,右键快捷菜单 “修改”,即打开相应表的表设计器,在表设计器可以完成表结构的修改、建立索引以及设置字段属性和表的有效性规则。 2、项目管理器: 选中要修改的表,单击“修改” 3、命令:MODI STRU,2019/8/5,13,4.3 表的基本操作,4.3.1 表的打开与关闭 打开 1 文件打开表 2 命令:use 关闭:USE,2019/8/5,14,4.3.2 表记录的显示,1、菜单方式 显示|浏览 2、项目管理器 选表|浏览 3、命令 (1) BROWSE 在浏览窗口显示。 (2)LIST|DISPLAYFIELDS FORWHILEOFF,2019/8/5,15,4.3.2 表记录显示,说明:FIELDS :指定要显示的表达式,通常是字段名 范围: (1) All:所有记录 (2) Next n:包括当前记录的向尾部方向的连续n条记录 (3) Record n:第n条记录 (4) Rest:从当前记录到表尾的全部记录,2019/8/5,16,4.3.2 表记录显示,命令 LIST|DISPLAYFIELDS FORWHILEOFF 说明:常量 FOR:显示满足所给条件的所有记录 WHILE:显示满足所给条件的记录,直到条件不成立为止。 OFF:不显示记录号 DISP:分页显示,省略范围和条件时只显示当前记录。,2019/8/5,17,4.3.3 表记录指针的定位,1. 指针定位命令 (1)绝对定位GO GO |TOP|BOTTOM 绝对移动指针。如GO 3,GO TOP,GO BOTTOM。 GO : 记录指针指向具体的物理记录号,与索引无关。 GO TOP,GO BOTTOM:指向逻辑首或尾记录。Go top Go 1,2019/8/5,18,(2)相对定位SKIP SKIP 相对移动指针。相对于当前记录移动。如SKIP,SKIP 3,SKIP 2。(算术加减),2019/8/5,19,(3)查询定位LOCATE LOCATE FOR |WHILE CONTINUE,2019/8/5,20,2.相关的几个函数 BOF()、EOF()、RECNO()、recc()、FOUND()测试函数,1起始标记bof()=.t. 1 2 共n条记录 n n+1结束标记eof()=.t.,2019/8/5,21,USE AA &假定表中有5条记录 ?BOF( ),RECNO( ) &显示 .F. 1 SKIP 1 ?BOF( ),RECNO( ) &显示 .T. 1 GO BOTTOM ?EOF( ),RECNO( ) &显示 .F. 5 SKIP ?EOF( ),RECNO( ),RECCOUNT( ) &显示 .T. 6 5,2019/8/5,22,例4.3 在学生表中查询汉族男生的姓名、入学成绩和年龄。取年函数 操作命令如下: 逻辑表达式 USE 学生 LOCAT FOR !少数民族否AND 性别=“男“ DISP 姓名,入学成绩, YEAR(DATE()-YEAR(出生日期) CONTINUE ? RECNO(),姓名,入学成绩, YEAR(DATE()-YEAR(出生日期),2019/8/5,23,4.3.4 表的修改,表记录修改 1、浏览窗口:两种显示方式、窗口的分割与同步 2、菜单方式: 用”显示|浏览“打开表,用”表|替换字段“ 3、命令: REPLACE WITH , WITH ,FORWHILE(中外),2019/8/5,24,例4.2写出对学生表进行如下操作的命令: (1)将少数民族学生的入学成绩增加20分。 (2)将6号记录的出生日期修改为1983年9月7日; 操作命令如下: USE 学生 REPLACE 入学成绩 WITH 入学成绩+20 FOR 少数民族否 GO 6 &将记录指针定位到6号记录 REPLACE 出生日期 WITH 1983-09-07,2019/8/5,25,4.3.5 表记录的增加,一、表记录的增加 1直接输入记录:建立库结构后 2追加一批记录:显示追加方式 命令 APPEND 说明: 在表的末尾追加一批记录 3追加一个记录:表追加新记录(ctrl+y) 命令: APPEND BLANK 说明: 在表的末尾追加一个空记录 4从其他文件追加记录:表追加记录 命令:APPE FROM 文件名FIEL 字段名 FROM 条件 5、插入记录:INSERT BEFORE BLANK,2019/8/5,26,4.3.5 表记录的删除,1逻辑删除: (1)鼠标单击记录前 (2)Ctrl+T (3)利用菜单:表删除记录 (4)命令: DELETE FOR WHILE,2019/8/5,27,4.3.5 表记录的删除,2恢复记录 (1)鼠标 (2)表恢复记录 (3)取消删除标记 RECALL FOR WHILE,2019/8/5,28,4.3.5 表记录的删除,3彻底删除(物理删除): (1)菜单:表“彻底删除” (2)命令:PACK 真正物理删除,不能用RECALL恢复 4. 删除全部记录 命令:ZAP 删除全部记录,只保存结构,2019/8/5,29,4.4 索 引(4.12),1 索引的概念 索引并不是重新排列表记录的物理顺序,而是另外形成一个索引关键表达式值与记录号之间的对照表,这个对照表就是索引文件。索引文件中记录的排列顺序称为逻辑顺序。索引后,对表进行操作时将按索引表中记录的逻辑顺序进行操作,表的物理顺序不变。,2019/8/5,30,如:原表为: 按计算机成绩索引(升序)后,表变为:,2019/8/5,31,2.索引文件的种类,单索引文件 复合索引文件 结构复合索引文件 结构复合索引文件的文件名与相应的表名相同,扩展名cdx) 其特殊性在于无论何时打开表,该索引文件将由系统自动打开。,2019/8/5,32,3 建立索引文件,1. 四种索引 主索引、侯选索引、唯一索引、普通索引。 (1) 主索引的关键字或关键字表达式值必须唯一(不能重复),一个表只能有一个主索引。 (2) 候选索引与主索引类似,但可有多个。 (3) 唯一索引只在关键字值重复的记录中取记录号小的那条记录。即索引后显示索引文件内容时关键字段值唯一,而表中索引依据的关键字段值不必唯一。 (4)普通索引的索引关键字值相同时,按记录号从小到大排列。表中可建立多个普通索引,用不同的索引标识区别。,2019/8/5,33,2、在表设计器中建立索引 (1) 建立单项索引。 (2) 建立复合字段索引。 (3) 确定索引标识 注意:表达式中的运算量必须是相同类型,若类型不同,需转换成同一类型。 筛选记录。仅索引表中符合筛选条件的记录。 注意:用表设计器建立的索引都是复合索引文件。,2019/8/5,34,例:就学生表建立结构复合索引文件,其中包含2个索引。 (1)按学号的升序排列,不允许有学号相同的记录 (2)先按性别升序,性别相同再按入学生成绩升序排列。 索引表达式: (1)学号 (候选) (2)性别+str(入学成绩),2019/8/5,35,4. 为数据库表建立索引,为了建立表之间的永久关联,需要为数据库表建立索引。 方法:选定数据库表“修改表”按钮打开表设计器,2019/8/5,36,5. 建立表之间的永久联系,基础 基于索引 联系类型 两个表的索引中至少有一个是主索引。父表为主索引,而子表的索引类型决定联系的类型: (1)一对一关系: (父)主索引(子)主索引或候选索引 (2)一对多关系: (父)主索引(子)普通索引,2019/8/5,37,5. 建立表之间的永久联系,永久联系形式 数据库设计器中显示为表索引之间的连接线。 操作方法 在数据库设计器中,首先,选中父表中的主索引字段,拖动到子表中的对应字段,再松开鼠标左键。,2019/8/5,38,6. 编辑表间的永久联系,单击关系连线,此时连线变粗, (1)从“数据库”菜单项中选择“编辑关系”命令。 (2)用鼠标右键单击连线,从弹出的快捷菜单中选择“编辑关系”或“删除关系”命令。 (3)双击连线,打开“编辑关系”对话框,在该对话框中,通过在下拉列表框中重新选择表或相关表的索引名则可以修改指定的关系。,2019/8/5,39,4.5 设置参照完整性,参照完整性生成器: 供用户指出保证数据完整性的要求,根据用户要求生成参照完整性规则以保证数据完整性。 1、实体完整性与主关键字 指行的完整性。即保证所有行都有唯一的标识作符即主关键字。主关键字的修改与删除要取决于与之建立联系表间要求的完整性。 主关键字不能为空。,2019/8/5,40,4.5 设置参照完整性,2、域完整性与约束规则 域完整性是指给定列的输入有效性。对指定列的数据具有正确的数据类型、格式和有效的数据范围。,2019/8/5,41,4.5 设置参照完整性,3、参照完整性生成器: 供用户指出保证数据完整性的要求,根据用户要求生成参照完整性规则以保证数据完整性。 清理数据库: 在建立参照完整性之前必须首先清理数据库,所谓清理数据库是物理删除数据库各个表中所有带有删除标志的记录。 方法:“数据库”“清理数据库”,2019/8/5,42,参照完整性生成器窗口,选择“数据库”菜单项或数据库设计器快捷菜单中的“编辑参照完整性”命令,或在“编辑关系”对话框中单击“参照完整性”按钮,可打开参照完整性生成器窗口。 (1) “更新规则”选项卡, 级联:当更改父表中的某一记录时,子表中相应的记录将会改变。 限制:当更改父表中的某一记录时,若子表中有相应的记录,则禁止该操作。 忽略:两表更新操作将互不影响。,2019/8/5,43,(2) “删除规则”选项卡 级联:当删除父表中的某一记录时,将删除子表中相应的记录。 限制:当删除父表中的某一记录时,若子表中有相应的记录,则禁止该操作。 忽略:两表删除操作将互不影响。 (3) “插入规则”选项卡 限制:当在子表中插入某一记录时,若父表中没有相应的记录,则禁止该操作。 忽略:两表插入操作将互不影响。,2019/8/5,44,4.6 自由表,自由表:不属于任何数据库的的表 数据库表:属于某一数据库的表。 数据库表与自由表的区别: 数据库表具有长表名、长字段名。达128个字符。 数据库表具在字段属性、有效性规则及参照完整性。 自由表不具有以上特点,2019/8/5,45,4.6 自由表,1、添加自由表 在数据库设计器中将自由表添加到数据库就成为数据库表。 方法: 右击数据库设计器空白处,选择“添加表” 单击数据库设计器工具栏的“添加表” 2、移出数据库表 在数据库设计器中将数据库表移出到就成为自由表。 方法: 右击数据库设计器中表的标题,选择“删除”|移去 单击数据库设计器工具栏的“删除表”,2019/8/5,46,4.7 多个表的操作,1.工作区的概念 工作区:是用来保存表及其相关信息的一片内存空间。 当前工作区:当前正在操作的工作区。 注意: (1)同一时刻,每个工作区中只能打开一个表文件。 (2)在任何一个时刻用户只能选中一个工作区进行操作。 (3)若在一个工作区中打开一个新的表,则该工作区中原来的表将被关闭。,2019/8/5,47,2.工作区号与别名 不同工作区可以用其编号或别名来加以区分。 Visual FoxPro提供了32767个工作区,系统以132767作为各工作区的编号。 工作区的别名有两种: (1)系统定义的别名:110号工作区的别名分别为字母AJ; (2)用户定义的别名,用命令“USE ALIAS ”指定。若未用ALIAS子句对表指定别名,则以表的主名作为别名。,2019/8/5,48,3.工作区的选择 命令格式是:SELECT |0 命令中各子句的含义是: (1)工作区的切换不影响各工作区记录指针的位置。每个工作区上打开的表有各自独立的记录指针。通常,当前表记录指针的变化不会影响别的工作区中表记录指针的变化。 (2)SELECT 0表示选择当前没有被使用的最小号工作区为当前工作区。 (3)也可在USE命令中增加IN子句来选择工作区并打开表。 例如,在1号工作区打开学生表,并给它取一个别名: USE 学生 ALIAS zg IN 1 或 USE 学生 ALIAS zg IN A,2019/8/5,49,4.工作区的互访 在当前工作区中可以访问其他工作区中的表的数据,但要在非当前表的字段名前加上别名和连接符,引用格式为:别名.字段名或别名-字段名。 例: B.姓名 或 B-姓名,2019/8/5,50,作业:教材后习题1,2,6,7,8,9, 上机实验:在磁盘上建立一个文件夹,名为“订货管理”。完成教材P94习题5(1)(2),要求将相应文件存放在“订货管理”文件夹中。教材P82习题10、13,上机指导实验二。,2019/8/5,51,5.1.2 向数据库添加自由表,表的两种存在状态: (1)自由表:不属于任何数据库的表。 自由表的字段名最多包含10个字符, (2)数据库表:包含在数据库中的表。 数据库表的字段名最多包含128个字符。 添加表: 数据库设计器中 “添加表”按钮。 移去或删除表 在数据库设计器中选中一个数据库“移去表”,2019/8/5,52,第八章 Visual FoxPro项目管理器,Visual FoxPro项目是文件、数据、文档和对象的集合,项目管理器是组织和管理这些文件的工具。 项目文件的扩展名为.pjx。,2019/8/5,53,8.1 建立与打开项目文件,建立 文件新建文件类型:项目新建文件 打开 文件打开,2019/8/5,54,8.2 项目管理器的界面,项目管理器有6个选项卡 1“数据”选项卡 包含了一个项目中的所有数据:数据库、自由表、查询和视图。 2“文档”选项卡 包含了处理数据时所用的全部文档,表单,报表及标签。 3“类”选项卡 显示和管理由类设计器建立的类库文件。 4“代码”选项卡 包含了用户的所有代码程序文件:程序文件、API库文件、应用程序等。 5“其他”选项卡 显示和管理下列文件:菜单文件、文本文件、由OLE等工具建立的其它文件(如图形、图像文件)。 6“全部”选项卡 该选项卡显示和管理以上所有类型的文件。,

温馨提示

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

评论

0/150

提交评论