二级程序设计教程精.ppt

上传人:石*** 文档编号:72354657 上传时间:2023-02-10 格式:PPT 页数:93 大小:3.14MB
返回 下载 相关 举报
二级程序设计教程精.ppt_第1页
第1页 / 共93页
二级程序设计教程精.ppt_第2页
第2页 / 共93页
点击查看更多>>
资源描述

《二级程序设计教程精.ppt》由会员分享,可在线阅读,更多相关《二级程序设计教程精.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、二级程序设计教程第1页,本讲稿共93页第四章第四章Visual Foxpro 数据库及其操作数据库及其操作 第2页,本讲稿共93页第一节第一节 Visual Foxpro Visual Foxpro 数据库及其建立数据库及其建立在Visual Foxpro中,数据库是一个逻辑上的概念和手段,用于将相互联系的数据表及其相关的数据库对象统一管理和组织。一般的逻辑层次关系:一般的逻辑层次关系:数据库数据库数据表数据表记录记录字段字段第3页,本讲稿共93页建立Visual Foxpro 数据库时,建立扩展名是建立扩展名是dbc的数的数据库文件据库文件,与之相关自动建立扩展名为dbt的备注文件和扩展名为

2、dcx的数据库索引文件。建立一个数据库,对应的文件有三个:DBC、DBT、DCX。一、建立数据库一、建立数据库1、在项目管理器中建立数据库、在项目管理器中建立数据库方法:在“数据”选项卡中,选择“数据库”,单击“新建”。第4页,本讲稿共93页2、通过、通过“新建新建”对话框建立数据库对话框建立数据库方法:在“文件”菜单中选择“新建”。(或者在工具栏上单击“新建”)。3、使用命令交互建立数据库、使用命令交互建立数据库 格式:CREATE DATABASE 库文件名第5页,本讲稿共93页二、使用数据库二、使用数据库在对一个数据库中的表进行操作时,需要先打开这个数据库。在项目管理器中打开数据库。(选

3、中库后,库自动打开)通过“打开”对话框打开数据库。命令法:OPEN DATABASE 库文件名 EXCLUSIVE|SHAREDNOUPDATEVALIDATE(在工具栏中间显示打开的库名)第6页,本讲稿共93页EXCLUSIVE:以独占方式打开,同一时刻只能由一个用户打开操作。SHARED:以共享方式打开,同一时刻可由多个用户打开操作。NOUPDATE:以只读方式打开,不允许对库进行修改。第7页,本讲稿共93页三、修改数据库三、修改数据库在VISUAL FOXPRO中修改数据库实际上是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。在项目管理器中,选中库

4、,再单击修改。在“文件”菜单中选择“打开”。MODIFY DATABASE 库文件名NOWAITNOEDITNOWAIT只在程序中使用,不在交互命令窗口中使用,即打开库设计器后,程序继续运行,不等待。NOEDIT 打开数据库设计器禁止对数据库进行修改第8页,本讲稿共93页四、删除数据库四、删除数据库项目管理器中选择库,单击“移去”。DELETE DATABASE 库名数据库文件的删除,并不删除所包含的表文件。库文件仅仅建立表之间的联系。第9页,本讲稿共93页第二节第二节 建立数据库表建立数据库表一、在数据库中建立表一、在数据库中建立表建立表时,首先要对所处理的对象进行调查分析,再根据需要设计一

5、张二维表。当表的行、列个数及每列中数据的属性确定后,再把数据集合在其中即可。1.定义表中的数据类型定义表中的数据类型(1)定义二维表名 设计一张二维表,给表起个名字。(2)二维表栏目设计第10页,本讲稿共93页编号编号姓名姓名家庭地址家庭地址年龄年龄工资工资1001张三青海西宁18595.36100210031004100510061007职工基本情况表第11页,本讲稿共93页(3)填写二维表的内容、表的名字(标题)、表中每一列的栏目标题序列为表头,它标明了每一列对应数据的属性。、表中每一行的数据是表的内容。(4)定义数据表的结构在Visual FoxPro 系统中,一张二维表对应一个数据表,

6、称为表文件(Table)。第12页,本讲稿共93页一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。、数据表的文件名相当于二维表中的表名,它是数据表的主要标识,用户可以依靠数据表名在磁盘上存取、使用指定的数据表。、数据表的结构相当于二维表的表头,二维表的每一列对应数据表中的一个字段,其属性决定了字段名、字段类型和字段长度。第13页,本讲稿共93页、数据表中的记录是数据表中不可分割的基本项,即二维表中的表的内容。2利用表设计器创建表利用表设计器创建表方方法1:在“文件”菜单中选择“新建”;方法2:CREATE 表文件名方法3、使用数据库设计

7、器建立数据表(1)输入字段名输入字段名一般允许由110字符(自由表)组成,要求以字母开头,不含空格;数据库中的表其字段名最长可达到128个字符。第14页,本讲稿共93页(2)输入字段的类型每一个字段都反映对象的一个方面属性,根据其表达含义,可有不同的数据类型。根据计算机处理数据的特点,必须定义数据类型。(3)输入字段宽度 指该字段所能容纳数据的最大字节数。有些类型的数据其宽度是固定的。第15页,本讲稿共93页(4)输入小数位数 数值型、浮点型、双精度型的字段可指定小数据位。数值型字段:字段宽度数值型字段:字段宽度=整数部分宽度+小数点1位+小数位宽度小数位至少比整个字段宽度小2。第16页,本讲

8、稿共93页空值空值 NULL项项 允许该字段值为空或使用缺省数据,被设为关键字的字段值不允许为空。字段有效性组框字段有效性组框:定义字段的有效性规则、提示信息及设置缺省值。显示组框显示组框 设置字段的输入格式、显示格式、显示标题字段注释字段注释当前行前有一个双向箭头。第17页,本讲稿共93页二、表文件的打开与关闭二、表文件的打开与关闭 1、打开表文件、打开表文件命令法命令法:USE 表文件名功能功能:在当前工作区中,打开一指定的表文件。说明:扩展名可省略,如果原来已在该工作区中打开了一个表文件,则关闭它,再打开新的文件;打开后,记录指针指向第一个记录。窗口菜单法窗口菜单法:在“窗口”菜单中选择

9、“数据工作期”,单击“打开”。第18页,本讲稿共93页2、关闭表文件、关闭表文件格式格式:USE关闭在当前工作区中打开的表文件CLOSEDATABASE关闭所有工作区被打开的表文件CLOSE ALL 关闭所有工作区中的所有文件;QUIT关闭所有文件,且退出系统窗口菜单法窗口菜单法:在“窗口”菜单中选择“数据工作期”,选择欲关闭的表,单击“关闭”。第19页,本讲稿共93页3、表的独占与共享、表的独占与共享在网络环境下使用时,还要确定是独占还是共享。涉及表数据的安全性问题。独占打开独占打开:一张表只能被一个用户打开。共享打开共享打开:一张表可被多个用户同时打开。USE 表名 SHARED:以共享方

10、式打表。USE 表名 EXCLUSIVED:以独占方式打开表。第20页,本讲稿共93页三、修改表结构三、修改表结构1、菜单操作法、菜单操作法方法:打开欲修改的表,执行“显示”菜单中的“表设计器”。在“表设计器”窗口,修改表中所有字段的名字、类型、宽度和是否建立索引,完成对数据表结构的修改。2、命令法、命令法格式:MODIFY STRUCTURE 表文件名第21页,本讲稿共93页四、记录指针四、记录指针在向表输入数据时,系统按照其输入的前后顺序,给每一个记录赋予一个记录号。记录指针记录指针是VFP系统内部的一个指示器,用于确定当前正在操作的记录。(表中的数据以记录为单位操作)每当打开一个表文件时

11、,指针总是指向第一条记录。记录指针指向的记录叫当前记录当前记录,记录指针指向哪一个记录,这一个记录就是当前操作的记录,即当前记录。第22页,本讲稿共93页测试当前记录用函数RECNO()。最小值为1,最大值为RECCOUNT()+1。打开表时记录指针情况:表中无记录:BOF()=.T.EOF()=.T.RECNO()=1表中有记录:BOF()=.F.EOF()=.F.RECNO()=1 第23页,本讲稿共93页五、表中输入数据五、表中输入数据1.创建表时立即输入数据创建表时立即输入数据在创建表时,如果表中所有字段的属性已定义完成,可按“确定”按钮保存表结构,同时打开“系统”窗口,显示“现在输入

12、数据吗?”的对话。第24页,本讲稿共93页选择“是”按钮,可以立即进入表“浏览”窗口,进行表中数据的输入。2以追加方式输入数据以追加方式输入数据方法:方法:打开欲输入数据的表,执行“显示”菜单中的“浏览”,再执行“显示”菜单下的“追加方式”。第25页,本讲稿共93页3、命令法追加、命令法追加1)append命令在表的尾部增加记录,有两种格式:append 表尾增加一条记录,并输入数据。append blank 表尾增加一条空记录。2)insert 可在表的任何位置插入新的记录命令:INSERTBEFOREBLANK 功能:在当前库文件中当前记录的前或后边插入一条记录,并输入数据。第26页,本讲

13、稿共93页BEFORE:表示在当前记录前插入新记录,否则在当前记录后插入;BLANK:表示插入一条空记录,不进入全屏幕输入状态,反之则进入全屏幕输入状态输入数据。如:在第5条记录后插入一条记录:GO 5INSERT在第10条记录前插入一条空记录:GO 5INSERT BEFORE BLANK第27页,本讲稿共93页4、数据的输入要点、数据的输入要点备注型数据输入备注型数据输入方法:把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。(输入完memo变成Memo)通用型数据的输入通用型数据的输入方法:把光标移到通用型字段下双击,进入通用型字段的数据编辑窗口。在“编辑”菜单中选择“插入对象”。

14、确定对象后,该字段中的gen变成Gen。第28页,本讲稿共93页六、使用浏览窗口操作表六、使用浏览窗口操作表1、打开浏览器窗口、打开浏览器窗口项目管理器项目管理器:列表中选择表,单击“浏览”。数据库设计器数据库设计器:选中表,单击“浏览”,或者右击表,选择“浏览”。使用命令使用命令:打开表以后,Browse。第29页,本讲稿共93页浏览器窗口有两种显示方式浏览器窗口有两种显示方式:编辑方式和浏览方式切换切换:在“显示”菜单中,选择“浏览”或者“编辑”。浏览窗口的分割浏览窗口的分割:拖动“分割”按钮。(在浏览器窗口左下角)2、浏览操作、浏览操作 调整字段显示宽度,调整字段的显示顺序(拖动),但表

15、结构不变。注意:执行浏览或者编辑命令后,菜单中出现“表”菜单项。第30页,本讲稿共93页在同一记录中选择字段在同一记录中选择字段:鼠标或enter 左箭头 右箭头 tab shift+table在上下记录间的切换在上下记录间的切换:鼠标或上下箭头翻页翻页:pageup pagedown3、增加记录、增加记录ctrl+y,以表尾增加一条新记录。4、修改记录、修改记录移动插入点到欲修改的记录上,直接修改。5、删除记录、删除记录ctrl+t,删除当前记录。第31页,本讲稿共93页七、删除记录命令(逻辑删除和物理删除)七、删除记录命令(逻辑删除和物理删除)删除记录分两步删除记录分两步:做删除标记(逻辑

16、删除)、彻底删除带标记的记录(物理删除)。1、置删除标记的命令、置删除标记的命令 方法1:在表“浏览”窗口,单击欲删除记录的删除标记。方法2:在“浏览”窗口,执行“表”菜单中的“删除记录”命令。方法3:delete for 条件表达式第32页,本讲稿共93页删除标记在存贮时,占一个字节。相关函数相关函数:DELETE()如:判断当前记录是否被设置删除标志:GO 6?DELETE()又如:显示当前库中所有设置了删除标志的记录:DISP ALL FOR DELETE()第33页,本讲稿共93页2、恢复记录的命令、恢复记录的命令对加上逻辑删除标记的记录,取消其删除标记,可对其进行恢复操作。方法方法1

17、:在表“浏览”窗口,单击欲恢复记录的删除标记。(开关性质)方法方法2:在“浏览”窗口中,执行“表”菜单中“恢复记录”命令;第34页,本讲稿共93页方法3:recall for 条件表达式 操作:将当前表中已经逻辑删除的男生记录恢复。Recall for 性别=”男”3、物理删除有删除标记的记录、物理删除有删除标记的记录物理删除物理删除就是把无效的记录彻底从磁盘中删除掉。方法1:在“浏览”窗口中,执行“表”菜单中“彻底删除记录”命令;第35页,本讲稿共93页方法2:pack。4、物理删除表中的全部记录、物理删除表中的全部记录zap一次删除所有记录。注:不管是否有删除标记,但表本身未被删除,表结构

18、依然存在。八、修改记录命令八、修改记录命令1、EDIT或或CHANGE命令交互式修改命令交互式修改。格式:EDIT/change第36页,本讲稿共93页2、REPLACE成批替换数据(重点)成批替换数据(重点)格式:REPLACE范围字段1WITH表达式1,字段2WITH表达式2FORWHILE条件 功能:对当前表文件中指定范围内满足条件的所有记录,用表达式的值替换字段中原有的值。如:REPLACE ALL 总分 WITH 数学+语文REPLACE ALL 基本工资 WITH 基本工资+100 FOR 职称=“教授”第37页,本讲稿共93页九、显示记录命令(九、显示记录命令(foxbasefo

19、xbase中更实用)中更实用)格式1:LIST范围字段名表达式FORWHILE条件OFFTO PRINT|TO FILE 文件名 格式2:DISPLAY范围字段名表达式FORWHILE条件OFFTO PRINT|TO FILE 文件名 功能:把满足条件的记录的指定字段的内容显示出来。后者可以分屏显示输出;如果不指定范围和条件,前者默认地输出全部记录,而后者只输出当前记录。第38页,本讲稿共93页十、查询定位命令十、查询定位命令1、窗口操作方式、窗口操作方式方法:打开要使用的表,在“显示”菜单下,选择“浏览”;在“表”菜单中,选择“转到记录”,子菜单中不同的选项,可以将记录指针移动到相应的记录上

20、。第39页,本讲稿共93页(1)选择“第一个”,确定第一个记录为当前记录;(2)选择“最后一个”,确定最后一个记录为当前记录;(3)选择“下一个”,确定当前记录的下一个记录为当前记录;(4)选择“前一个”,确定当前记录的前一个记录为当前记录;第40页,本讲稿共93页(5)选择“记录号”,便进入“转到记录”对话窗口,在“转到记录”对话框内,可以选择记录号,确定该记录号指定的记录为当前记录;(6)选择“定位”,进入“定位记录”窗口,在“定位记录”对话框内,输入定位条件表达式,确定满足定位条件表达式的第一个记录为当前记录。第41页,本讲稿共93页2、绝对定位命令、绝对定位命令格式:GO数值表达式 G

21、O TOP GO BOTTOM功能:将记录指针定位于首记录、尾记录或数值表达式的值所指定的记录。当前记录是谁,可以从状态行看出来;第42页,本讲稿共93页3、相对定位命令、相对定位命令格式:SKIP数值表达式 功能:将记录指针相对当前记录向下(正方向)或向上(负方向)移动数值表达式的值所指定的记录数。第43页,本讲稿共93页4、按条件定位、按条件定位、条件定位命令、条件定位命令LOCATE 格式:LOCATE范围FORWHILE条件 功能:在指定范围内将指针定位于满足条件的第一条记录,如果没找到满足条件的记录,则记录指针定位于表尾,EOF()函数为逻辑真。缺省范围选择时,取all,即在所有记录

22、中查找。如:LOCATE ALL FOR 姓名=“王”DISPLAY第44页,本讲稿共93页、继续查找命令、继续查找命令CONTINUE格式:CONTINUE功能:继续查找满足条件的下一条记录;重复多次使用CONTINUE命令,可找到满足条件的所有记录;第45页,本讲稿共93页、查询测试函数、查询测试函数FOUND格式:FOUND()功能:如果找到了满足条件的记录,则返回逻辑真,反之则返回逻辑假;第46页,本讲稿共93页通常的操作模式如下:Locate for 条件DO WHILE FOUND()处理CONTINUEENDDO用循环对满足条件的所有记录进行操作。第47页,本讲稿共93页第四节第

23、四节 索引索引 一、基本概念一、基本概念什么是索引呢?如一本书,有很多内容,为了快速找到我们需要的章节,借助于目录。那么在数据库中,也有类似于目录的信息,称之为索引。书中的目录是一份页码的列表,指向书中的书页,但数据库中的索引是一个记录号的列表,指向表中待处理的记录,并表示记录的处理顺序。第48页,本讲稿共93页索引是按着索引表达式的值使数据表中的记录有序排列的一种技术,在Visual FoxPro系统中是借助于索引文件实现的。一般情况下,表中记录的顺序是由数据输入的前后顺序决定的,并用记录号予以标识。除非有记录插入或者有记录删除,否则表中的记录顺序总是不变的。索引实际上是一种排序,但是它不改

24、变数据表中数据的物理顺序,而是另外建立一个记录号列表。第49页,本讲稿共93页一个表可以建立多个索引,每一个索引代表一种处理记录的顺序。即不同的索引,决定了读取记录的不同顺序。二、索引类型二、索引类型在数据库容器中的数据表可以建立主索引(Primary Index)。索引表达式的值是唯一能够标识每个记录处理顺序的值。即作为主索引的关键字是不允许重复出现的,也不允许取空值。第50页,本讲稿共93页2候选索引候选索引候选索引(Candidate Index)像主索引一样,它的索引表达式的值是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立多个候选索引,它在特定环境下可以视为主索引。第51

25、页,本讲稿共93页3普通索引普通索引普通索引(Regular Index)表示把由索引表达式为每个记录产生的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以重复存储,并用独立的指针指向各个记录。第52页,本讲稿共93页 4唯一索引唯一索引唯一索引(Unique Index)表示把由索引表达式为每个记录产生的唯一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则只存储第一个索引表达式值。它允许数据表中各记录的索引字段或字段组合表达式的值相同,但在索引文件中只保留数据表中与索引字段值相同的第一条记录。第53页,本讲稿共93页三、在表设计器中建立索引三、在表设计器中建立索引1、单项

26、索引的建立、单项索引的建立基于一个字段的索引叫单项索引。基于一个字段的索引叫单项索引。单项索引的建立有两种方式:单项索引的建立有两种方式:普通索引的建立:使用表设计器的字段标签普通索引的建立:使用表设计器的字段标签 或或 索引标签。索引标签。在表设计器中,字段标签中,索引的下拉列表框中,选择索引方向,在表设计器中,字段标签中,索引的下拉列表框中,选择索引方向,升序(升序()或降序()或降序();建立的索引就是一个普通索引。);建立的索引就是一个普通索引。其他索引的建立:必须使用表设计器的索引标签。其他索引的建立:必须使用表设计器的索引标签。在表设计器中,索引标签中,选择字段和索引类型。在表设计

27、器中,索引标签中,选择字段和索引类型。第54页,本讲稿共93页2、复合字段索引的建立、复合字段索引的建立基于多个字段的索引叫复合字段索引使用表设计器的索引标签,选择确定索引名和类型后,单击“表达式”右侧的按钮,在表达式生成器中确定索引表达式。第55页,本讲稿共93页四、用命令建立索引四、用命令建立索引Index on 索引表达式 to 简单索引文件名|tag 结构复合索引文件名 of cdxfilename ascending|descending unique|candidateadditive(关闭以前索引,使建立的索引成为当前索引)to 简单索引文件名:则表示建立一个简单索引文件。tag

28、 结构复合索引名:则表示建立一个与表同名的结构复合索引。of 非结构复合索引文件名:建立一个非结构复合索引文件名。第56页,本讲稿共93页即可以建立在三种类型的索引。ascending|descending:升降序。unique|candidate:是唯一索引还是候选索引。Additive:是否关闭以前索引,使建立的索引成为当前索引。默认为关闭以前的索引。例:index on 年龄 tag 年龄第57页,本讲稿共93页五、使用索引五、使用索引1.打开索引文件打开索引文件与表名相同的结构索引在打开表时都能够自动打开,但是对于非结构索引必须在使用之前打开索引文件。命令格式:SET INDEX TO

29、 索引文件1,索引文件2,可以打开多个索引文件,但第一个索引文件成为主控索引文件。第58页,本讲稿共93页2.设置当前索引设置当前索引若数据表中建立了许多索引,其中总有一个为主,数据表记录总是以该索引的要求排序,这个索引就叫主控索引或者当前索引。结构复合索引文件随着数据表打开后,其中的索引标识(tag)并不起作用,数据表记录顺序仍然保持原始的数据排列,必须指定某个索引标识为主控索引后,数据表记录的排列顺序才会跟着这个标识的索引顺序变化。第59页,本讲稿共93页设置主控索引的两种方法:、命令法:SER ORDER TO 索引号|TAG 索引名ASCENDING、DESCENDING功能:将指定索

30、引号或者索引名的索引作为主控索引。例:将结构索引文件中的“订购单号”设置为当前索引。SET ORDER TO TAG 订购单号或SET ORDER TO 订购单号 第60页,本讲稿共93页例:将结构索引文件中的“学号”设置为前索引。Set order to tag 学号操作:将学生表中的所在系设为主控索引,并浏览该表。、交互方式:浏览表表菜单属性如:将学生表中的学生号设为主控索引,并浏览该表。第61页,本讲稿共93页3使用索引快速定位使用索引快速定位 用SEEK命令定位。格式:SEEK 索引关键字值 ORDER 索引号|TAG 索引名 ASCENDING、DESCENDING功能:以主控索引为

31、序,找索引关键字的值为指定指的记录。例。假设当前正在使用的学生表,将记录指针定位到学号为9921105的记录上。SEEK 9921105 ORDER 学号第62页,本讲稿共93页4删除索引删除索引(1)在表设计器中使用“索引”选项卡选择并删除(2)使用命令 DELETE TAG TagName1 DELETE TAG ALL 第63页,本讲稿共93页第五节第五节 数据完整性数据完整性 数据完整性数据完整性是保证数据正确的特性,数据完整性一般包括实体完整性、域完整性和参照完整性。一、实体完整性与主关键字一、实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复的记录。利

32、用主关键字或侯选关键字来保证表中的记录唯一,即保证实体唯一性。第64页,本讲稿共93页二、域完整性与约束规则二、域完整性与约束规则数据类型的定义属于域完整性的范畴。因为数据类型的定义本身已经包含了数据的取值范围。域约束规则也称做字段的有效性规则,在插入或修改字段值时被激活,主要用于检验数据的正确性。在表设计器中建立字段有效性规则。第65页,本讲稿共93页例:以“教师”数据库中的“教师”表为例,设置年龄的有效性规则在20至60之间,当输入的教师年龄不在此范围时给出出错信息,教师的默认年龄为32。在“规则”框中(或表达式生成器)输入表达式:年龄=20.and.年龄=60在“信息”框中输入表达式:“

33、年龄输入错误,应该在20-60之间”在“默认值”框中,输入表达式:32注意:规则是逻辑表达式,信息是字符表达式,默认值类型根据字段类型决定。第66页,本讲稿共93页三、参照完整性与表之间的关联三、参照完整性与表之间的关联参照完整性与表之间的关联有关,其含义是其含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表操作是否正确。在Visual Foxpro中为了建立参照完整性,必须首先建立表之间的联系。第67页,本讲稿共93页1、建立表之间的联系、建立表之间的联系在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表的普通索引建立两个表之间的

34、联系。将“学生”数据库中的“学生”的“学号”字段设为主索引,“选课”表中的“学号”字段设为普通索引,建立两表之间的关联。方法:在数据库设计器中,将父表中的主索引拖动到子表的普通索引上。第68页,本讲稿共93页2、设置参照完整性约束、设置参照完整性约束建立参照完整性之前必须首先清理数据库。清理数据库是物理删除数据库中所有带删除标记的记录。清理方法清理方法:打开数据库管理器,执行“数据库”中的“清理数据库”。设置参照完整性设置参照完整性:右键单击连线编辑参照完整性,分别设置:更新规则、删除规则、插入规则。第69页,本讲稿共93页在“参照完整性生成器”窗口,有三个选项卡供用户选择。其中:当选择“更新

35、规则”选项卡,可以利用三个选择按钮,设置关联表间的更新规则,即如何更新对父表。级联级联:用新的关键字值更新子表中的所有相关记录;限制限制:若子表中有相关记录则禁止更新;忽略忽略:允许更新,不管子表中的相关记录。第70页,本讲稿共93页当选择“删除规则”选项卡,可以利用三个选择按钮,设置关联表间的删除规则。如何删除父表中的内容。级联级联:删除子表中的所有相关记录;限制限制:若子表中有相关记录,则禁止删除;忽略忽略:允许删除,不管子表中的相关记录。第71页,本讲稿共93页选择“插入规则”选项卡,可以利用二个选择按钮,设置关联表间的插入规则。即如何在子表中插入记录:限制限制:若父表中没有匹配的关键字

36、值,则禁止插入;忽略忽略:允许插入。第72页,本讲稿共93页例如:学生情况表(一个学生一个记录,以学号建立主索引)和学生考试成绩表(一门课的成绩是一个记录,以学号建立普通索引)。设置“学生”数据库中三个表的参照完整性:更新和删除规则为“级联”,插入规则为“限制”。并验证其结果。第73页,本讲稿共93页第六节第六节 自由表自由表一、数据库表与自由表一、数据库表与自由表自由表自由表:不属于任何数据库的表,其扩展名为dbf。以一个独立的文件形式存在,不具备数据库中的表所拥有的部分特性:如长文件名,有效性规则等。可以将自由表添加到数据库中,成为数据库表;也可以将数据库表从数据库中移出,成为自由表。当没

37、有打开数据库时建立的表就是自由表。第74页,本讲稿共93页建立自由表的方法:从“项目管理器”中选择“自由表”,然后建立。在无数据库打开时,从文件菜单选择“新建”。在无数据库打开时,使用CREAT命令建立。第75页,本讲稿共93页二、将自由表添加到数据库二、将自由表添加到数据库 在项目管理器中,单击添加,或数据库设计器中,右击选“添加”,可将自由表添加到数据库中。命令法:ADD TABLE 表名 表的长文件名例如:把自由表TTT添加到当前数据库,并给出具有说明意义的长表名。ADD TABLE ttt NAME 2001级学生军训表第76页,本讲稿共93页三、从数据库中移出表三、从数据库中移出表

38、当数据库不再使用某个表,而其他数据库要使用该表时,必须将该表从当前数据库中移出,使之成为自由表。在项目管理器和数据库设计器中都可以方便地将数据库表移出数据库。命令法:REMOVE TABLE 表名 DELETERECYCLE如果命令中带一个问号,则显示对话框。第77页,本讲稿共93页“移去”是从数据库中移出表,使被移出的表成为自由表。“删除”是不仅从数据库中将表移出,而且还从磁盘上删除该表。一旦某个表从数据库中移出,那么与之关联的所有主索引、默认值及有关的规则都随之消失,因此,将某个表移出的操作会影响到当前数据库中与该表有联系的其它表。第78页,本讲稿共93页第七节第七节 多个表的同时使用多个

39、表的同时使用一、工作区的概念一、工作区的概念 数据库系统中,有时要求几个表同时处于打开状态,以便于表间内容的相互补充,数据表之间进行互访,进行信息资源的共享;为此VF系统设置了分工作区操作的功能。VFP允许用户最多同时打开32767个数据表,但是每次只能对其中的一个表进行操作。这个被选中的数据表叫当前数据表。工作区工作区:内存中开辟的专门用于存贮数据表及相关文件的区域。每个工作区只能打开一个工作表,最多可以建立32767个工作区。第79页,本讲稿共93页每个工作区都有自己的编号和名称每个工作区都有自己的编号和名称:132767 或者 AJ,W11W32767每次启动VFP后,系统默认系统默认1

40、号工作区为当前工作区。每个表打开后都有两个默认的别名,一个是表名,另一个是工作区所对应的别名。在前10个工作区中指定的默认别名是工作区字母A到J,工作区11到32767中指定的别名是W11到W32767。第80页,本讲稿共93页说明:同一个数据表文件不允许在两个工作区上同时打开,一个工作区中只能打开一个表。二、当前工作区的选择二、当前工作区的选择 格式:SELECT 工作区名数据表别名0功能:指定工作区号(1、2、3A、B、C)或别名的工作区为当前工作区。如用:SELECT 0 则:让系统自动选择区号最小的空闲工作区为当前工作区。第81页,本讲稿共93页一个表除了前述的两个名称外,还可一个表除

41、了前述的两个名称外,还可在use命令中用alias指定的别名:use 学生 in 1 alias student第82页,本讲稿共93页例:分别在第例:分别在第1、2、3工作区打开学生,课程和成绩工作区打开学生,课程和成绩三个表,并选择当前的工作区。三个表,并选择当前的工作区。OPEN DATABASE 学生管理SELECT 1USE 学生SELECT 2USE 课程SELECT 3USE 成绩第83页,本讲稿共93页如果到第一个工作区操作学生表,则命令:SELECT 学生 和 SELECT 1 是等价的三、表之间的关联三、表之间的关联 参照数据数据完整性介绍了表之间的关联或联系,它们是基于索

42、引建立的一种“永久联系”,这种联系存在于数据库中,可以在“查询设计器”或“视图设计器”中自动作为默认联系条件保持数据库表之间的联系。第84页,本讲稿共93页永久连接不能控制不同工作区中记录指针的联动。永久连接不能控制不同工作区中记录指针的联动。需要能够控制表间记录指针关系的临时联系,称之为“关联”关联关联:建立多个表文件的记录之间按某个关键字表达式建立对应联系,当主表文件的当前记录改变后,有联系的辅表文件的当前记录也按关联关系发生变化。又称为表文件之间的逻辑关联。第85页,本讲稿共93页1、设置关联、设置关联格式:SET RELATION TO 关键字表达式/RECNO()INTO 工作区名

43、ADDITIVE 功能:使当前工作区上当前数据表的记录指针重新定位时,别名表文件记录指针也做相关联的移动。当前工作区上的当前表文件称关联表文件,其它工作区上打开的表文件称被关联表文件;第86页,本讲稿共93页关关联联表表被被关关联联表表关关联联依据依据第87页,本讲稿共93页关联的两种形式:关键字表达式关键字表达式:当前表文件记录指针移到某一记录上,被关联的表文件的记录指针也自动指向关键字段值与当前表文件相同的第一个记录。若被关联表文件无关键字段值相同的记录,则指针指向文件尾。要求:被关联表文件使用关键字表达式建立索引并打开此索引文件。RECNO()():数据表文件间按记录号进行关联,关联与被

44、关联表文件之间当前记录号保持相等。第88页,本讲稿共93页又如:基本情况表和成绩表之间的关联。2、取消关联、取消关联、用新的关联替代旧关联、取消关联,但表保持打开状态命令:SET RELATION TO、关闭数据表第89页,本讲稿共93页例:学生基本情况表与成绩表之间按学号建立关联。OPEN DATABASE 学生管理USE 学生 IN 1 ORDER 学号USE 成绩 IN 2 ORDER 学号Sele 1SET RELATION TO 学号 INTO 成绩一般为了减少数据库的存贮容量,类似政治面貌、民族等信息可以借助于关联实现代码化。第90页,本讲稿共93页第八节第八节 排序排序索引可以使用户按照某中顺序浏览或查找表中的记录,这时的顺序是逻辑的,是通过索引关键字实现的。另外还有一个物理排序的命令。排序也称分类,即按照数据表文件中某个指定字段(称为关键字段)的值,将所有指定的记录重新排列,并生成新的表文件。第91页,本讲稿共93页格式:SORT TO 文件名 ON关键字段名1ACD,关键字段名2ACD范围FORWHILE表达式FIELDS字段名表 功能:对已打开的数据库文件按指定的关键字段名排序。A表示按递增顺序排序;D表示按递减顺序排序;C表示不区分大小写字母,可与A或D连用。第92页,本讲稿共93页第93页,本讲稿共93页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁