分享
分享赚钱 收藏 举报 版权申诉 / 86

类型第3章 Visual Foxpro 6[1].0数据库及其操作.ppt

  • 上传人:kpmy5893
  • 文档编号:7183598
  • 上传时间:2019-05-09
  • 格式:PPT
  • 页数:86
  • 大小:699.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第3章 Visual Foxpro 6[1].0数据库及其操作.ppt
    资源描述:

    1、Visual Foxpro 6.0 程序设计,第3章 VFP数据库及其操作,内容提要,3.1 创建项目 3.2 创建数据库 3.3 创建数据表 3.4 数据表的基本操作 3.5 数据表的维护 3.6 数据表排序与索引 3.7 建立数据字典 3.8 多数据表操作,项目管理器是按照一定的顺序和逻辑关系对应用系统的文件进行有效组织的工具。 使用项目管理器可以用可视化的方法对数据库和数据表进行管理。 项目管理器是VFP中最有用的超级工具。 其扩展名是.PJX,3.1 创建项目,建立工作目录 组织和管理磁盘中的各类文件。 2建立项目文件 (1)菜单选择“文件|新建”命令单击常用工具栏中的“新建”按钮 (

    2、2)命令:CREATE PROJECT create project“演示“ 3打开项目文件 (1)菜单:选择“文件|打开”命令或单击常用工具栏中的“打开”按钮,在“打开”对话框中选择一个项目文件(*.PJX)。 (2)命令:MODIFY PROJECT modify project“演示“,3.1 创建项目,创建项目的方法,项目管理器中的项目是以类似于大纲的结构来组织的,可以将其展开+或者折叠- ,以查看不同层次的详细内容(类似于os中的资源管理器),改变项目管理器的外观,1 移动项目管理器 2 改变项目管理器对话框的大小 3 折叠项目管理器 4 还原项目管理器 5 拆卸项目管理器 (只能是

    3、项目管理器折叠后才可以把6个标签拆卸下来,单独使用,还原时只需要点关闭按钮即可,或者直接拖回去),项目管理器快捷菜单的使用,1 显示说明路径 2 移动 3 大小 4 关闭 5 项目信息,使用项目管理器组织文件,1 创建新文件 2 修改已经创建的文件 3 为文件添加说明 4 添加和移去文件区别 移去 和 删除 移去 从此项目中移去 删除 从硬盘上删除,3.2 创建数据库,1设计步骤 (1)数据的分析需求:需要从数据库中得到哪些信息 确定数据库要存储哪些信息。 (2)确定需要的数据表。 (3)确定所需字段,即每个表中要存储的信息(表的结构)。 (4)确定关系,即各表之间的数据应该如何进行连接。 (

    4、5)改进设计,3.2.1 数据库的设计思想,3.2.1 数据库的设计思想,2设计过程 (1)明确设计目的 明确需保存哪些信息 (2)确定需要的数据表 (3)确定表中需要的字段每个字段直接与本表的主题相关不要包含可推导得到或需要计算的数据 收集所需的全部信息 以最小的逻辑单位存储信息 使用主关键字段,3.2.1 数据库的设计思想,2设计过程 (4)确定表间关系 (5)优化设计 每个表包括的数据只与一个主题有关 是否有字段由于对很多记录不适用,而多数保持空白? 表间是否有大量同样的字段?,3.2.2 数据库的创建,数据库(.DBC) 存储了所包含的表和表之间的关系,以及依赖于表的视图、连接和存储过

    5、程等信息。 把表放入数据库中可以减少数据的冗余,保护数据的完整性。1. 建立数据库 (1)项目管理器:“新建:数据库” (2)菜单: “文件|新建:数据库” (3)命令:CREATE DATABASE CREATE DATABASE 演示 (在之前设置的文件夹中就存在有 “演示”数据库了) 2在项目中添加数据库方法是:在项目管理器中选定“数据库”项,单击“添加”按钮,在“打开”对话框中选择需要添加的数据库文件。,利用项目管理器建立数据库,3.2.2 数据库的创建,3.2.3 数据库的基本操作,1. 打开数据库 (1)项目管理器:选定要打开的数据库,单击“修改”按钮。 (2)菜单:选择“文件|打

    6、开”命令 (3)命令 打开数据库文件OPEN DATABASE OPEN DATABASE “演示” (在工具栏中查看打开不同数据库后的结果) OPEN DATABASE “演示1“ 打开数据库文件所对应的数据库设计器 MODIFY DATABASE modify DATABASE “演示1“,2关闭数据库 (1)项目管理器:选定要关闭的数据库,单击“关闭”按钮。 (2)命令:CLOSE DATABASES CLOSE DATABASE3. 删除数据库 (1)项目管理器:选定要删除的数据库,单击“移去”按钮,在对话框中选择“移去”命令,将从项目中移去选定的库文件;选择“删除”命令,则将选定的库

    7、文件从磁盘上删除。 (2)命令:DELETE DATABABE DELETE TABLES DELETE DATABASE “演示1“,3.2.3 数据库的基本操作,3.3 创建数据表,1. 数据表和数据库表(Table)是 处理数据和建立关系型数据库及应用程序的基本元素。数据库(DATABASE)是表的集合。 2. 数据表的类型 (1)自由表:不属于任何数据库而独立存在的表 (2)数据库表:属于某一数据库的表 使用项目管理器中的“移去”/“添加”命令,可以在数据库表和自由表之间相互转换。 3. 数据表的结构 形式上是一组相关联的数据按行和列排列的二维表格,用来描述一个实体。表中的每一列称为一

    8、个字段,每一行称为一条记录。,3.3.1 基本概念,(1)字段名 以字母或汉字开头,由字母、汉字、数字或下划线组成,不能包含空格。数据库表字段名最长为128个字符,自由表字段名最长为10个字符,要见名知意。 例:姓名,课程_1,成绩A 均合法“姓名”,2班,3B 均不合法,(2)字段类型 决定了存储在字段中的值的数据类型,有13种:字符型(C)、货币型(Y)、数值型(N)、浮点型(F)、日期型(D)、日期时间型(T)、双精度型(B)、整型(I)、逻辑型(L)、备注型(M)、通用型(G)、字符型(二进制)、备注型(二进制)。,字段的数据类型决定了对该字段所允许的相应操作;字段类型也决定了该字段存

    9、放数据的类型;如果某个字段是字符型,存储的字符数量超过254个,为节省存储空间就把它定义为备注型;若要保存图片或OLE这种对象,可以定义为通用型的字段;备注型和通用型字段的信息都没有直接存放在表文件中,而是存放在一个与表文件同名的.fpt文件中,不是放在DBF这个文件里的。,3.3.1 基本概念,3.3.1 基本概念,(3)字段宽度 指能够容纳存储数据的长度,字符型字段不得大于254个字节;浮点型和数值型字段的宽度为整数位和小数位的和再加 1(小数点占一位),最多20位。,宽度过大将浪费存储空间,过小则会数据溢出:除字符型、数值型、浮点型外,其他类型字段的宽度是由系统规定的,不需用户设定,(4

    10、)小数位 若字段的类型是数值型(N)和浮点型(F),还需给出小数位数。小数位数不能大于9,双精度型数据的小数位数不能大于18,(5)使用空值 在建立数据表时,可以指定字段是否接受空值(NULL),3.3.2 自由表的建立,定义表结构 利用“表设计器” 创建表的结构。打开表设计器有以下几种方法: (1)菜单:选择“文件|新建”命令。 (2)命令:Create CREATE 演示表1 (3)项目管理器:在“数据”选项卡中选择“自由表”,单击“新建”命令。 定义表结构就是设置表的字段属性,包括字段名、数据类型、字段宽度和小数位数等。,打开表设计器的方法,3.3.2 自由表的建立,3.3.2 自由表的

    11、建立,2输入记录 选择“显示”菜单下的“浏览”或“编辑”命令,打开“浏览”或“编辑”窗口。 (1)一般数据的输入 字符型、数值型、逻辑型、日期型等字段类型可直接在浏览窗口或编辑窗口中输入数据。 (2)备注型字段数据的输入 双击名为“memo”的备注字段标志,进入备注窗口,输入文本内容。 (3)通用型字段数据的输入 双击名为“gen”的通用字段标志,进入通用型字段的输入编辑窗口。选择“编辑|插入对象”命令,打开“插入对象”对话框,插入OLE对象。 要删除备注字段或通用字段的内容,可双击字段名,打开编辑窗口,选择“编辑|清除”命令。,如果在数据表中定义了备注型或通用型字段,系统就会自动生成相应的备

    12、注文件(.FPT),其主文件名与相应的表文件名相同。备注文件是表文件的辅助文件,专门用于存放数据表中所定义的备注型或通用型字段的实际内容;它随着表文件的打开而打开,随着表文件的关闭而关闭。无论一个数据表中定义了多少个备注型或通用型字段,系统只生成一个备注文件,存放这个表文件中的所有备注型或通用型字段的内容。,3.3.2 自由表的建立,1.在数据库中建立新表 (1)项目管理器:在“数据”选项卡中,单击“数据库”项前的“+”号,展开该数据项;然后选定“表”,再单击“新建”按钮。 使用项目管理器创建的表自动包含在项目文件中。 (2)当数据库处于打开状态时,用建立自由表的方法创建的新表将包含在该数据库

    13、中。命令:create DATABASE 数据库文件名CREATE 数据表文件名create database 123create 1234,3.3.3 数据库表的建立,注意: 数据库中的表只能属于一个数据库文件,如果向当前数据库中添加的表已属于其它数据库,则需要先从其它数据库中移去该数据表,然后才能将它添加到当前数据库中。,2将自由表添加到数据库 (1)项目管理器:在“数据”选项卡中展开”数据库“项,选择“表”项,再单击“添加”按钮。 (2)命令:ADD TABLE ,3.3.3 数据库表的建立,移去数据库表时的提示框,3从数据库中移去数据表 (1)项目管理器:选中要移去的表,单击“移去”按

    14、钮,在提示对话框,选择“移去”。若选择“删除”,则不仅从数据库中移去该表,同时也从磁盘上删除了该表。 (2)命令:REMOVE TABLE DELETERECYCLE,3.3.3 数据库表的建立,1. 打开数据表 (1)菜单:选择“文件|打开”命令。 (2)命令格式:USE use 1234 BROWSE LAST功能:打开或关闭当前使用的表文件 说明:只有USE(无表文件名)时,为关闭当前打开的表文件,否则为打开指定表文件。打开表时,若表含有备注型字段,则该表的备注文件也同时被打开在任一时刻,每个工作区最多允许打开一个表,如果指定工作区已有表打开,则在打开新表时,系统总是先关闭原来打开的表。

    15、打开表时,记录指针总是指向第一条记录。,3.4 数据表的基本操作,3.1 数据表的浏览,2浏览与显示表结构 (1)浏览表结构 项目管理器:选定要浏览的表,单击“修改”按钮,打开表设计器。 菜单:选择“文件|打开”命令,打开要浏览的数据表; 然后选择“显示|表设计器”命令,打开表设计器。 (2)显示表结构(主窗口)命令:LIST|DISPLAY STRUCTURElist:连续显示;disp:分页显示,例:打开“学生表”文件,并显示该表的结构。use e:vfp学生表.dbflist structure 说明:表结构的最后一行为总计行,其数据等于各字段宽度之和再加1,多加的1个字节用来存放记录的

    16、逻辑删除标志,3. 浏览与显示记录 (1)在浏览窗口中浏览记录 项目管理器:选定要浏览的表,单击“浏览”按钮。对于备注型字段或通用型字段内容,可以在浏览窗口中双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口浏览。 菜单:选择“文件|打开”命令,打开要浏览的数据表。然后从“显示”菜单中选择“浏览”或“编辑”命令,打开浏览窗口。 命令:BROWSE,3.1 数据表的浏览,(2) 在浏览窗口中有选择地浏览记录 菜单:打开浏览窗口,选择“表|属性”命令,打开“工作区属性”对话框。在“数据过滤器”中输入筛选条件,可以只显示满足筛选条件的记录。删除筛选表达式,可恢复显示所有记录。 在“工作区属

    17、性”对话框的“允许访问”栏中,选中“字段筛选指定的字段”选项,单击“字段筛选”按钮,打开“字段选择器”对话框,选择要显示的字段,可以只显示选定的字段内容。若在“允许访问”栏内选择“工作区中的所有字段”选项,可取消对字段访问的限制,恢复显示所有字段。,3.1 数据表的浏览,“工作区属性”对话框:设置数据过滤器,输入筛选条件,3.1 数据表的浏览,“工作区属性”对话框:设置字段筛选,3.1 数据表的浏览, 命令设置数据过滤器:SET FILTER TO 设置字段过滤器:SET FIELDS TO ALL| (3)显示记录(主窗口)命令:LIST | DISPLAY FIELDSWHILE FOR

    18、功能:显示当前表文件的全部或部分记录内容 说明: 若有“FIELDS”,则显示指定字段,否则显示全部字段 FOR条件:对筛选出满足条件的记录进行操作。WHILE条件:选择到第一个不满足条件的记录为止。当WHILE和FOR子名同时存在时,WHILE有较高的优先权。任选项间用空格分开,各任选项的次序任意。,3.1 数据表的浏览,1、记录指针 记录指针存放的是记录号。向表中录入数据时,系统会按照录入次序为记录加上记录号。数据表刚打开时,记录 指针总是指向首记录;通过 移动记录指针可以指定当前 要操作的记录。,数据表文件的逻辑结构,3.4.2 记录的定位,2. 移动记录指针 (1)菜单:打开浏览窗口,

    19、选择 “表|转到记录” 命令。或者直接在浏览窗口单击某条记录,3.4.2 记录的定位,(2)命令绝对移动:GO | TOP | BOTTOM 功能:将记录指针定位在指定记录号的记录上。TOP表示第一条记 录,BOTTOM表示最后一条记录。 相对移动:SKIP +|-功能:将记录指针从当前位置向前或向后移动若干条记录位置。skip 与skip+1等价 条件定位:LOCATE FOR WHILE 功能:查找满足条件的第一条记录。说明:使用 CONTINUE 命令可继续查找下一条满足条件的记录。,3.4.2 记录的定位,例如USE E:VFP6DATA学生 GO TOP & 指向首记录GO BOTT

    20、OM & 指向最后一条记录GO 3 & 指向第3条记录SKIP 5 & 指向第8条记录SKIP 5 & 指向第3条记录* 将记录指针定位在学生表中第一条性别为男的记录上LOCATE FOR 性别 = ”男” CONTINUE & 继续查找下一个满足条件的记录,3.4.2 记录的定位,在表设计器中可以修改表结构。1. 项目管理器:选定要修改的表,单击“修改”按钮。 (1)修改已有的字段 (2)增加新字段 (3)删除字段 (4)改变字段顺序 2. 命令:Modify Structure 功能: 显示并修改当前表文件的结构。 说明:命令执行后将打开“表设计器”窗口,可对表结构进行修改;改变表结构时,

    21、系统会自动备份当前表文件,备份文件是*.BAK,备注备份文件是*.TBK 修改字段属性后,VFP将按新的属性改写整个.dbf 文件,可能造成数据丢失。,3.5 数据表的维护,1在浏览窗口中追加记录 (1)菜单: 打开浏览窗口,选择“显示|追加方式”命令,可以在原有记录的后面追加多条新记录。选择 “表|追加新记录”,每次只能添加一条新记录。 (2)命令: APPEND BLANK功能:当前表的尾部添加记录 说明:命令执行后将出现一个编辑窗口,可输入新记录;有BLANK选项时,只在当前表的末尾添加一条空记录,并不打开编辑窗口,3.5.2 添加记录,2插入记录 命令:INSERT BEFOREBLA

    22、NK功能:在数据表的某个记录之前或之后插入一条记录。 说明:若无BEFORE选择则在当前记录之后插入一条记录,否则在其前插入;若有BLANK选项,则插入一条空记录;插入记录后,则其后所有记录的记录号自动加一。,3.5.2 添加记录,3从其它文件中追加记录 (1)菜单:打开浏览窗口,选择“表|追加记录”命令。 (2)命令:APPEND FROM FIELDS FOR 功能:将满足条件的记录按指定的字段从源表文件中追加到当 前数据表的末尾。说明:只追加两表中具有相同字段名和类型的字段,其他字段为空。也就是两个表可能有些字段不一致,它只追加两表中具有相同字段名和类型的字段,其它字段为空。 例如,将“

    23、课程”表中的相应数据追加到“课程安排”表中:USE E:VFP6DATA课程安排APPEND FROM E:VFP6DATA课程.DBF FIELDS 课程号,课程,3.5.2 添加记录,1. 在浏览窗口中编辑记录 (1)项目管理器:选定表,单击“浏览”按钮,打开浏览窗口,直接修改字段值。关闭浏览窗口,所做的修改将自动保存在表文件中。 对于备注型字段或通用型字段内容,可以双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口进行编辑或修改。 (2)命令:BROWSEFIELDSFREEZE NOAPPENDNOMODIFY FIELDS字段名:浏览窗口中出现列出的字段; FREEZE字段

    24、名:使光标冻结在某字段上,只能修改该字段,其他字段只能显示,不能修改; NOAPPEND:禁止向表中追加记录; NOMODIFY:禁止修改或删除表中的记录,3.5.3 编辑记录,“替换字段”对话框,3.5.3 编辑记录,2批量修改记录 对一批记录中的若干字段进行编辑修改。(1)菜单:打开数据表,选择“表|替换字段”命令,出现“替换字段”对话框。,(2)命令:REPLACE WITH ADDITIVE , WITH ADDITIVEFOR WHILE 功能:对表中指定范围内的满足条件的记录进行批量修改。说明: ADDITIVE只适用于备注型字段的修改,若有些选项,则新内容添加于原备注之后,否则覆

    25、盖原备注 例如,将“学生”表中管理系的每个学生减去15.5元助学金。USE E:VFP6DATA学生REPLACE ALL 助学金 WITH 助学金-15.50 FOR 系别=”管理”,3.5.3 编辑记录,1. 逻辑删除: 给记录加删除标记 (1)鼠标操作:在浏览窗口中,单击左侧的白色方框使之变黑。 (2)菜单:打开浏览窗口,选择“表|删除记录”命令 (3)命令:DELETE FOR WHILE 2. 恢复逻辑删除: 取消删除标记 (1)鼠标操作:单击逻辑删除标记,取消黑色方框。 (2)菜单:打开浏览窗口,选择“表|恢复记录”命令 (3)命令:RECALL FOR WHILE 3.物理删除:

    26、从磁盘上删除记录,不可恢复。 (1)菜单:选择“表|彻底删除”,删除带有删除标记的记录。(2)命令:PACK (删除带有删除标记的记录) ZAP (一次性清除表中所有记录,仅保留表结构),3.5.4 删除记录,慎用此命令,1数据表文件的复制 (1) 菜单:打开表文件,选择“文件|导出”,显示“导出”对话框。 (2)命令:COPY TO FIELDS FOR WHILE 功能:将当前表文件的内容全部或部分复制到新文件中; 说明:对已打开的表文件进行复制,复制得到的新表文件是关闭的; 2数据表结构的复制 将表结构复制到一个新表中。 命令:COPY STRUCTURE TO FIELDS 功能:将当

    27、前表文件的结构全部或部分复制到表文件名指定的文件中;说明:目标表文件是关闭的。如果要对它进行操作,必须先把它打开。,3.5. 复制数据表,利用“导出”对话框和“导出选项”对话框复制数据表,3.5. 复制数据表,3.5. 复制数据表,3. 数据表文件的更名 在项目管理器中右击要重命名的表,从快捷菜单中选择“重命名” 命令,打开“重命名文件”对话框,输入新的文件名。,1将表的当前记录复制到数组 命令:SCATTER FIELDS MEMO TO | MEMVAR 功能:将当前表中的当前记录指定字段的值顺序传给指定数组的各个元素,且从数组的第一个元素开始存放。 例如,USE E:VFP6DATA学生

    28、* 将第1条记录的姓名、性别和系别3个字段复制到数组AA中 SCATTER FIELDS 姓名,性别,系别 TO AAGO 5* 将第5条记录复制到数组BB中,包括备注型字段的内容SCATTER TO BB MEMO,3.5.6 数据表与数组之间的数据交换,2将数组复制到表的当前记录 命令:GATHER FROM | MEMVAR FIELDS MEMO 功能:从指定数组的第一个元素开始,将各元素的值顺序传送给当前记录的指定字段。 说明:从与字段同名的内存变量中传送数据给当前记录的指定字段,要求内存变量的名字应该和字段的名字是同名的 例如: USE E:VFP6DATA学生* 在表的末尾增加一

    29、条空记录APPEND BLANK * 将数组 AA 中的数据复制到当前的空记录中GATHER FROM AA FIELDS 姓名,性别,系别,3.5.6 数据表与数据之间的数据交换,排序是把数据表中的记录按照某个字段值的大小重新排列,作为排序依据的字段称为“关键字”。按照关键字的值从小到大的排序称为升序,从大到小的排序称为降序。排序后生成一个新的数据表文件,其结构和数据可以与源文件完全相同,也可以取自源文件的一部分字段。命令: SORT TO ON /A/D/C,/A/D/C ASCENDING/DESCENDING FOR WHILEFIELDS 功能:对当前表中指定范围内满足条件的记录,按

    30、指定字段的升序或降序重新排列,并将排序后的记录按FIELDS子句指定的字段写入新的表文件中。,3.6 数据表排序与索引,说明:ON子句中的字段列表不能包括逻辑型字段和备注型字段,字段列表中第一个字段是最大关键字,列表中最后一个字段为最小关键字;每个主关键字都可以各自按升序或降序排列. /A 升序/D 降序/C 不区分大小写;ASCENDING/DESCENDING 把所有的关键字都定义相同的升序或降序 排序后生成的新表文件是关闭的。排序后原表文件没有任何改变,3.6.1 数据表排序,例如,对“学生”表中所有贷款的学生按“系别”的升序进行排序,排序后的新表文件为“贷款学生”:USE E:VFP6

    31、DATA学生SORT TO 贷款学生 ON 系别 FOR 贷款否对“学生”表中的数据按“系别”升序进行排序,系别相同者,按“学号”降序进行排序。排序后的文件为“各系学生”:USE E:VFP6DATA学生SORT TO 各系学生 ON 系别, 学号/D,3.6.1 数据表排序,1 基本概念 (1)索引 是由指向表记录的指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。索引文件和表文件分别存储,并且不改变表中记录的物理顺序。 (2)索引的类型 组织方式上分,有三类。 独立索引 在索引文件中只包含一个单一的关键字或者组合关键字的索引,独立索引文件的扩展名为.IDX。 结构复合索引 在索引文

    32、件中可以包含多个索引项的索引。结构复合索引文件的扩展名为.CDX,是最常用的一种索引类型。,3.6.2 数据表索引,结构复合索引的特点:结构复合索引的文件主名与数据表文件主名相同在用一索引文件中可以包含多个索引关键字在打开数据表时自动打开对表进行添加、修改、更新、删除等操作时自动维护索引 非结构复合索引 索引文件的扩展名也是.CDX,但文件主名与数据表文件不相同,它不会随着数据表文件的打开而打开,需要使用单独的打开命令。,3.6.2 数据表索引,复合索引文件全部被自动压缩。,(3)索引关键字 是指建立索引用的字段或字段表达式,可以 是表中的单个字段,也可以是几个字段组成的表达式。 复合索引表达

    33、式通常用字符串运算符“+”将几个字段连接起来。当各字段类型不同时,必须转换为相同的数据类型。创建索引文件时就是根据索引关键字值的大小从逻辑上重新安排数据表中各条记录的组织顺序。,3.6.2 数据表索引,(4)索引关键字的类型 主索引:索引表达式的值唯一,即记录不允许有重复值。 一个数据库表只能有一个主索引。 候选索引:索引表达式的值唯一,即记录不允许有重复值。 一个表可以有多个候选索引。 惟一索引:索引表达式的值惟一,若有重复,只取第一个值。 一个表可以有多个唯一索引。 普通索引:索引表达式的值允许有重复。一个表可以有多个普通索引。,3.6.2 数据表索引,2. 建立索引 (1)利用表设计器:

    34、选择“索引”选项卡。,3.6.2 数据表索引,(2)命令:INDEX ON TAG UNIQUE|CANDIDATEASCENDING|DESCENDINGFOR 功能:建立一个独立索引文件或复合索引文件。说明:若无 则建立独立索引文件,否则为结构复合索引文件; ASCENDINGDESCENDING:复合索引中关键字以递增或递减方式建立索引,默认为升序;独立索引中没有降序,自动取升序。 UNIQUE:当表中具有关键字表达式值相同的记录时,只有第一个记录被放入索引文件中; CANDTDATE:创建一个候选结构化索引标识;,3.6.2 数据表索引,例如,用INDEX命令为“学生”表建立结构复合索

    35、引,包含4个索引项:学号(候选索引)、性别(普通索引)、系别与性别(普通索引)、系别与出生日期(普通索引)。USE E:VFP6DATA学生INDEX ON 学号 TAG 学号 CANDIDATEINDEX ON 性别 TAG 性别INDEX ON 系别 + 性别 TAG 系别_性别INDEX ON 系别 + DTOC(出生日期) TAG 系别_生日,3.6.2 数据表索引,3. 按索引顺序浏览记录 一个复合索引文件中可以建立多个索引项,每一项代表了处理记录的一种逻辑顺序。使用索引之前,应先指定将要使用的索引项。 (1)菜单:打开浏览窗口,选择“表|属性”命令,打开 “工作区属性”对话框,在“

    36、索引顺序”框中选择一个索引项,浏览窗口中的记录就会按按照该索引顺序排列。 (2)命令:SET ORDER TO TAG 功能:在打开的索引文件中指定主控索引文件或在打开的复合索引文件中,设置某个标记为主标记,3.6.2 数据表索引,“工作区属性”对话框:设置索引顺序,选择索引顺序,3.6.2 数据表索引,3.6.2 数据表索引,取消索引: SET ORDER TO :记录按表中的原来顺序显示,但不关闭索引文件。关闭索引文件(这两种方式 ): CLOSE ALL: 关闭所有文件 CLOSE INDEXES:关闭所有的索引文件,数据表建立索引后,就可以使用FIND、SEEK 等查询命令,快速定位记

    37、录,提高数据库应用系统的运行效率。 1FIND 命令:FIND | 功能:在索引文件中找到索引关键字值与指定字符串或数值相符的第一个记录并将指针指向它 若查询成功,FOUND()函数返回值为.T.; EOF()函数值为.F.;RECNO()函数返回记录号,同时在主窗口的底部显示找到的记录号;若查询失败,FOUND()函数返回值为.F.; EOF()函数值返回为.T.; RECNO()函数返回末记录号加一的数值,并在主窗口的底部显示没有找到。,3.6.3 数据表查询,2SEEK命令:SEEK 功能:在索引文件中查找关键字内容与表达式相同的第一条记录;可以处理任何类型的关键字表达式 这两条命令可以

    38、快速查找表中索引关键字值与表达式相匹配的第一条记录。若要继续查找表中其他满足条件的记录,可以执行 SKIP 命令。,3.6.3 数据表查询,例如,USE E:VFP6DATA学生SET ORDER TO TAG 学号 & 将“学号”索引项设置为当前索引FIND 01020215 & 查找学号为01020215的学生记录SEEK “01020215”SET ORDER TO 性别FIND 女 & 查找性别为女的学生记录SET ORDER TO TAG 系别_性别 SEEK “计算机 ” + “男” & 查找计算机系男生的记录SKIP & 继续查找下一个计算机系男生的记录,3.6.3 数据表查询,

    39、1. 数据表的统计 (1)计数: COUNT FORWHERETO (2)求和: SUMTO|TO ARRAYFORWHILE 功能:对当前表中指定范围内满足条件的记录按指定字段的列求和 (3)求平均值: AVERAGE TO|TO ARRAYFORWHILE 功能:将当前表中的全部记录或指定记录的数值型字段求平均值。,3.6.3 数据表统计与汇总,命令:TOTAL ON TO FIELDSFORWHILE 2数据表的分类汇总 对数据表中的数值型字段,按照排序或索引关键字值的不同分类,然后各组分别求和。 功能:以关键字的不同字段值为类别,对指定范围内满足条件的记录的全部数值字段或由FIELDS

    40、子句指定的数值字段进行分类求和,并将结果保存在新表文件中。 当前表必须先按关键字进行排序或索引; 分类求和结果生成的新表结构式与当前表文件相同,但无备注型字段; 关键字值相同的记录汇总成一个记录;生成的新表文件是关闭的。,3.6.3 数据表统计与汇总,数据库文件可以作为一个数据字典来存储和管理有关记录和字段的规则、 缺省值、触发器、 表间关系等。数据库表是数 据库的一部分,具 有自由表所没有的 一些属性。,数据库表特有的属性,3.7 建立数据字典,1. 输入掩码:定义字段中的值必须遵守的标点、空格和其他格式要求统一风格,提高输入效率,以限制输入字段的内容格式,屏蔽非法输入。 2. 格式:决定字

    41、段在表单、浏览窗口或报表中的显示方式。 3. 标题:字段标题将作为该字段在浏览窗口中的列标题,以及表单表格中的默认标题名称。 4. 字段注释:为字段添加注释,使表更容易被理解。此外,也可以在“表”选项卡的“表注释”框中为整个数据表添加注释内容。,3.7.1 设置表的字段属性,1. 字段级规则:将用户输入的数据与所定义的规则表达式进行比较,如果输入的值不满足规则要求,系统就拒绝该值,从而控制输入到字段中的信息类型。 2. 默认值:在浏览窗口、表单或以编程方式输入数据时,VFP将自动为某个字段填入默认值,直到输入新值。默认值可以是任何有效的表达式,但表达式的返回值必须和该字段的数据类型一致。 3.

    42、 记录级规则:控制用户输入到记录中的信息类型。,3.7. 设置表的有效性规则,3.7. 设置表的有效性规则,违反记录有效性规则时的提示信息,3.7. 设置表的有效性规则,触发器是对数据表中的记录进行输入、删除、更新时,系统自动启动的一个程序,用来完成指定的任务。 (1)插入触发器:是在数据库表中插入记录时所触发的检测程序,若响应假值时,表示触发器挫败,插入的记录将不被存储; (2)更新触发器:是在修改记录后按回车键时,激发检测程序,确定修改后是否符合预定规则,若符合返回真值,保存修改后的记录,否则还原修改之前的记录值。 (3)删除触发器:记录被删除时,激发检测程序,若检测结果为真值,则该记录可

    43、删除,否则不能删除。,3.7.3 设置触发器,永久关系是数据库表之间的关系,存储在数据库文件中。建立关系的两个表通常具有公共字段或语义相关的字段,其中包含主关键字段的表称为父表,包含外部关键字段的表称为子表。 1. 建立关系:对主关键字段和外部关键字段使用相同的索引表达式分别建立索引;然后打开“数据库设计器”,将父表的索引拖到子表相匹配的索引上(两表之间显示一条关系线)。 2编辑关系:在数据库设计器中右击关系线,从快捷菜单中选择“编辑关系” 命令。 3. 删除关系:右击关系线,选择“删除关系”命令 。,3.7.4 创建永久关系,表之间的关系,关系线,3.7.4 创建永久关系,参照完整性是指建立

    44、一组规则,就是建立一组规则,当用户插入、更新或删除记录时保护数据表之间已定义的关系。 建立了关系的两个数据库表,通过实施参照完整性规则,可以确保:当父表中没有关联记录时,记录不得添加到子表中;当因改变父表的值而导致子表中出现孤立记录时,主表的值不能被改变;若某主表记录在相关表中有匹配的记录,则该主表记录不能被删除 设置方法:打开数据库设计器,执行“数据库|清理数据库”命令,再选择“数据库|编辑参照完整性”命令,出现“参照完整性生成器”对话框,分别定义更新规则、删除规则和插入规则。,3.7.5 设置参照完整性,3.7.5 设置参照完整性,存储过程是专门操作库中数据的代码过程,存储在数据库文件中。

    45、打开一个数据库时,它们会自动加载到内存中。目的是为了创建用户自定义函数,字段,记录级规则将引用这些函数; 存储过程的建立、修改或移去可在“数据库设计器”中进行; 使用存储过程可以不必在数据库文件之外管理用户自定义函数,使得应用程序更容易管理。,3.7.6 存储过程,1工作区 VFP允许在32767个工作区中打开和操作数据表。要同时使用多个数据表,必须在不同工作区中分别打开。 2选择工作区:SELECT 功能:选择需要使用的工作区 说明: 别名就是代表该表文件的一个简短易记的文件名; 定义别名的命令格式:USE 表文件名 ALIAS 表文件的别名 若某工作区中,打开表文件的同时,为该文件定义了别

    46、名,则可用别名代表该工作区进行操作;,3.8 多数据表操作, select 0表示选择当前未被使用的最小工作区号 当前工作区中表文件的字段名可直接使用;使用非当前工作区中的字段的格式为:别名.字段名或别名-字段名 例: 显示学生表中的学号、姓名、系别字段,还有成绩表中的课程号与成绩字段。,3.8 多数据表操作,例:在不同工作区打开学生表和成绩表,并分别为它们定义别名,1关联 也称为逻辑连接,仅建立记录指针之间的关系,不产生新表文件,可以使两个数据表的记录指针同步移动。命令:SET RELATION TO INTO|,INTO|ADDITIVE 功能:当前工作区中的表文件与其他工作区中的表文件通

    47、过关键字建立关联 . 说明:关键字表达式:其值必须是相关联的两个表文件共同具有的字段,并且别名表文件必须已按关键字表达式建立了索引文件并处于打开状态additive:在建立新的关联时,仍然保留该工作区与其他工作区已经建立的关联执行不带参数的 set relation to命令,将删除当前工作区中所有的关联;切断当前数据表与特定数据表之间有关联:set relation off into |。,3.8.2 数据表的联接,例如,在“学生”表和“成绩”表之间建立关联,显示学生的学号、姓名、系别、课程号和成绩字段的内容SELECT 2 & 在2号工作区中打开“成绩”表USE E:VFP6DATA成绩

    48、* 将“成绩”表中的“学号”索引项设置为当前索引SET ORDER TO 学号 SELECT 1 & 在1号工作区中打开“学生”表USE E:VFP6DATA学生 * “学生”表作为父表,“成绩”表作为子表,建立关联 SET RELATION TO 学号 INTO B,3.8.2 数据表的联接,2物理连接 将两个表文件联接生成一个新的表文件。命令 :JOIN WITH | TO FIELDS FOR 功能:将不同工作区中的两个表文件进行联接生成一个新的表文件 说明: 当前表文件自第一条记录开始,每条记录与被联接表的全部记录逐个比较,联接条件为真时,就把这两条记录联接起来,作为一条记录,存放到新表文件中,否则进行下一条记录的比较; 新表文件(*.DBF)生成后,处于关闭状态。,3.8.2 数据表的联接,例如,将学生表和成绩表联接起来,得到一个新的数据表“学生成绩”,包含学号、姓名、系别、课程号 、成绩等字段。SELECT BUSE E:VFP6DATA成绩SELECT AUSE E:VFP6DATA学生 JOIN WITH B TO 学生-成绩 FIELDS 学号,姓名,系别,B.课程号,B.成绩 FOR 学号=B.学号,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第3章 Visual Foxpro 6[1].0数据库及其操作.ppt
    链接地址:https://www.docduoduo.com/p-7183598.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开