收藏 分享(赏)

02 VFP课件09版 数据库、表和索引 6学时4.ppt

上传人:kpmy5893 文档编号:6896733 上传时间:2019-04-26 格式:PPT 页数:134 大小:4.35MB
下载 相关 举报
02 VFP课件09版 数据库、表和索引 6学时4.ppt_第1页
第1页 / 共134页
02 VFP课件09版 数据库、表和索引 6学时4.ppt_第2页
第2页 / 共134页
02 VFP课件09版 数据库、表和索引 6学时4.ppt_第3页
第3页 / 共134页
02 VFP课件09版 数据库、表和索引 6学时4.ppt_第4页
第4页 / 共134页
02 VFP课件09版 数据库、表和索引 6学时4.ppt_第5页
第5页 / 共134页
点击查看更多>>
资源描述

1、,【格式】COPY TO FIELDSFOR WHILE ,1复制任何类型的文件,【格式】COPY FILE TO TO ,2复制表文件,【格式】COPY STRU TO FIELDS,3复制表的结构,5、 表的复制,COPY FILE 命令,COPY FILE FileName1 TO FileName2 COPY FILE 创建文件 FileName1 的一个备份。可使用 COPY FILE 复制任何类型的文件。要复制的文件不能打开。源文件名 FileName1 和目标文件名 FileName2 都要包含扩展名。 若使用 COPY FILE 复制含有备注字段、结构索引或两者兼有的表,则必须

2、同时复制 .FPT 和 .CDX 文件。,copy to 命令,COPY TO FileName 用当前选定表的内容创建新文件。FileName指定 COPY TO 要创建的新文件名。若文件名中不包含扩展名,则指定扩展名为文件类型的默认扩展名。若不指定文件类型,则 COPY TO 创建一个新的 Visual FoxPro 表,并且用默认扩展名 .DBF 指定表文件名。,6、复制表结构、追加记录形成新表,作业69 向新表中追加数据将rygl-2.dbf和gzb.dbf的数据追加到新建的空表gzb-new.dbf中。,追加来源对话框,这里可以 筛选字段,追加数据后的新表,第三节 记录的添加与修改,

3、作业71 记录的添加和删除,1、将自由表rygl.dbf复制为rygl-del,添加一条有关你的信息的新记录2、然后删除王堰的记录,并将除你自己以外的全部男同志记录用条件删除的方法一次删除。,记录的添加,浏览方式和编辑方式,记录指针,记录的删除与恢复,可在“浏览”或“编辑”窗口中删除记录 点击作删除标记 选“表/彻底删除”对打了删除标记的记录作真正删除,删除标记当再次单击时,为取消标记,删除记录分两步进行:第一步将要删除的记录做删除标记,第二步才将记录真正从表中删除。,1记录的逻辑删除,逻辑删除操作,物理删除,作业71的逻辑删除,作业71的物理删除,若要有选择的删除一组记录,可单击“表/删除记

4、录”,填写对话框。例如:,可将学生表中“入学成绩600分”的所有记录作删除标记; 要作物理删除,再单击“表/彻底删除”。,恢复被逻辑删除的记录,永久删除所有数据,ZAP命令可清空数据库,但清空后不可恢复!,第四节 记录的查找与筛选,作业74 定位和数据过滤筛选,1、用定位命令查找数据库表rygl-2.dbf中编号为24009的记录; 2、用筛选方法查找文化程度为大学的所有人员全部信息。 3、用表向导建立一个数据库表rygl-4.dbf,将rygl-2.dbf表结构和全部数据复制过去,用筛选方法查看所有文化程度为大学的人员的姓名、性别和工资情况。,记录的定位命令,浏览窗口中: 选择“表/转到记录

5、”,指向当前记录的下一条记录,指向当前记录的上一条记录,转向第N条记录,指针指向第一条记录,指针指向最后一条记录,指针指向满足条件的第一条记录,用定位命令查找表rygl-2.dbf中编号为24009的记录,用筛选方法查找文化程度为大学的所有人员全部信息,在上表所示步骤中选择“字段筛选制定的字段”,便可完成本题第三问提出的作业要求!,用筛选方法查找文化程度为大学的所有人员全部信息,查看所有文化程度为大学的人员姓名、性别和工资,第五节 记录的索引与排序,作业73 建立和使用索引,将数据库表rygl-2.dbf以编号字段为普通索引,建立和使用索引,使该表按编号升序排列。,表的索引,表的索引是一种逻辑

6、排序方法,它不改变当前表文件记录的物理排序顺序,而是建立一个与该表文件相对应的索引文件。,建立索引有两种方式:菜单方式和命令方式 通过用菜单方式建立的索引文件是结构复合索引文件 菜单方式: 建立:打开表设计器,选中“字段”选项卡,索引的建立,单击,如果要编辑索引,可选中“索引”选项卡,若要改变索引类型,在“类型”列点击“类型”列表框的下三角,弹出一列表,根据需要选中索引类型。,若要改变索引名称,在“索引名”编辑框中键入索引名称。,若要改变索引表达式,在“表达式”编辑框中键入索引表达式,或点击其右按钮,弹出“表达式生成器”对话框。,索引排序后的数据表,第六节 字段替换,作业72 两个表合并与字段

7、替换,1、将自由表rygl-1.dbf复制为rygl-33.dbf,添加到数据库gzb.dbc中,然后将gzb.dbf全部记录追加到rygl-3.dbf。2、在rygl-3.dbf中将所有工资不满1000元者增加工资1000元。,将自由表rygl.dbf复制为rygl-3.dbf,添加到数据库gzb.dbc中,然后打开此表,打开表菜单,点击替换字段命令:,替换后的字段值,第七节 表单数据库管理,作业76 可视化查询修改数据库,本例是用表单设计器的快速表单向导结合数据库自动生成的实例,具有很强的检索和修改功能。你可以试验用此表单完成本章作业中的各项操作。,完成后的表单,4-1-4 设置格式,1设

8、置字体 在进行命令输入的过程中,可以通过改变命令窗口中的字体大小、行间距等清晰地显示每一条命令。用户可以使用“格式”菜单中的“字体”选项改变字体的大小。 2设置行缩进 行缩进可以极大地改善被分成多行的命令的可读性。在命令窗口中为产生缩进效果,在输入命令前先按Tab键,当然也有可能需要多按几次TAB键,以产生更多的行缩进,这样接下来的行就自动产生相同的缩进。一旦在命令窗口中加入一个行缩进,那么接下来的行就可自动产生相同的缩进,不过此时需要按Ctrl+Enter将光标移到下一行,而不能用Enter键。 3出错处理在命令窗口输入命令时,会出现一些输入错误,在没发现之前按下回车键之后,系统会给出一个简

9、单的提示。,4-3-1 数据表的概念 1数据库与表的关系 数据表是存储记录数据的文件,是关系型数据库管理系统中处理数据的基本单元 数据表是由一组相关的数据按行和列排列的二维表格。 表文件扩展名为.DBF 类型 自由表:不包含于任何数据库 数据库表:包含于某个数据库(两者关系) 相关概念:字段,字段名,记录,数据库(.DBC) 2字段的命名(P50) 3字段的数据类型(P50),4-3 数据表,数据库表包含许多自由表没有的属性 数据库表和自由表可以相互转换 自由表添加到数据库中成为数据库表 数据库表移出数据库成为自由表 一个表只能属于一个数据库 如果要将表从一个数据库转到另一个数据库中,必须先将

10、它移出前一个数据库,才能加入后一个数据库。,自由表和数据库表的关系,学生表示例,6个字段,字段名分别为:学号,姓名等,2条记录,12个字段值,4-3-2 创建表结构,1. 创建表结构 “项目管理器/数据” “文件/新建/表/表向导” “文件/新建/表/新建文件” 命令:CREATE ,可任意定义为数据库表或自由表,若当前某数据库为打开状态,则创建的为数据库表,否则为自由表,创建表结构的几点说明,字段名以字母或汉字开头,由字母,数字,下划线和汉字组成 字段类型根据具体情况而定,字段值与字段类型要匹配 若为字段添加索引,在索引列中选择一种排序方式 字段的NULL列有一个钩,表示该字段可以接受NUL

11、L值,在项目管理器的“数据”选项卡中,打开数据库 选择数据库下的表,单击“添加”,添加为数据库表 选择自由表,单击“添加”,添加为自由表,要添加的表必须具备下列条件 该表是一个有效的.DBF文件 表不允许与打开的数据库中已有的表同名 表不能同时放在另一个数据库中 要加入表的数据库必须具备下列条件 必须以独占方式打开。要想独占地打开一个数据库,在使用OPEN DATABASE命令时加入EXCLUSIVE子句,2. 添加数据表到项目中,3.修改表结构,当建立了数据表结构之后,如果发现表结构有问题,可以利用表设计器来修改。(1)修改字段(P53)(2)添加/删除字段(P53)(3)调整字段顺序(P5

12、3),记录的输入界面 立即输入:创建完表结构后,在输入数据记录对话框中选择“是”,如下图示 之后输入:打开表,选择“显示/浏览”,选择“显示/追加方式”,选择“是”,立即输入记录,4-3-3 输入数据记录,2.输入记录时的注意事项,逻辑型字段宽度为1,只接受T,Y,F,N这4个字母之一(大小写均可) 日期型数据必须与系统日期格式相符SET DATE MDY可将系统日期格式转换为美国日期格式mm/dd/yy 备注型与通用型字段的输入与编辑 备注型与通用型字段中已填有memo和gen等内容,等待输入有关数据。操作如下:,(1)把光标定位于“memo”或“gen”。 (2)按Ctrl+PgDn,Ct

13、rl+PgUp或Ctrl+Home等组合键之一或双击鼠标,出现“memo”或“gen”编辑窗口。 (3)输入或编辑数据后,按Ctrl+W或单击关闭按钮,以储存数据和返回数据输入窗口;如果按Ctrl+Q或Esc键则放弃当前所输入的信息而返回。 (4)在备注型或通用型字段数据输入后,该记录的“memo”或“gen”中的第一个字母被改写成大写,变为“Memo”或“Gen”。 备注型与通用型字段值存储在与表文件同名,但扩展名为.FPT的备注文件中。,1打开表的菜单方式单击“文件”菜单中的“打开”选项,打开“打开”对话框。选择将要打开的文件类型、文件名及其路径,然后单击“确定”按钮。 也可以用以下几种方

14、式打开数据库即相关表 1)打开包含表的数据库,启动数据库设计器 2)双击要打开的表 3)选择显示模式 (1)单击 “显示”、“编辑”:编辑该表(edit )以分隔线将每一条记录分割开,字段按纵向排列。 (2)单击 “显示”、“浏览”:浏览该表(browse)以一行显示一条记录,每一列显示一个字段。,4-4 数据表的基本操作,4-4-1 打开和关闭表,2打开、关闭表的命令方式,(1) 打开表 【格式】USE | ? 【功能】在当前工作区打开一个表文件。 (2) 关闭表 【格式1】USE 【功 能】 关闭当前工作区中正打开的表文件及其索引文件。 【格式2】CLOSE ALL|DATABASES 【

15、功 能】关闭各种类型文件。,3退出VFP系统 (1)菜单方式退出VFP系统的方式第2章介绍过,可选用以下任何一种方法退出VFP:l 选择“文件”菜单中“退出”菜单项。l 鼠标单击Visual FoxPro6.0窗口右上角的关闭按钮。l 双击Visual FoxPro6.0主窗口左上角的“控制”菜单按钮。l 直接按Alt+F4组合键。 (2)命令方式 【格式】QUIT 【功能】关闭打开的所有文件,退出VFP系统返回到操作系统。,4-4-2 显示数据 1.表结构文件的修改,命令方式: USE MODIFY STRUCTURE 菜单方式: 1.选定要打开的表:文件/打开2.打开表设计器:显示/表设计

16、器,添加字段,删除字段,修改字段内容,按着拖动改变字段位置,2表文件结构的显示 命令方式 【格式】DISPLAY|LIST STRUCTURE TO PRINTER|TO FILE 【功能】显示表文件的字段结构。,3. 表文件记录数据的显示,()命令的工作方式, ,描述:在命令窗口中键入一条VFP命令回车后,该命令立即被执行,并将命令结果显示在VFP主窗口中。 范围:ALL:对表中全部记录进行操作; NEXT:对从当前记录在内的以下连续N条记录进行操作; RECORD:只对第N条记录进行操作; REST:对从当前记录到文件尾的所有记录进行操作。 FIELDS子句:指明当前操作涉及表的哪些字段,

17、字段名间用“,”隔开,注意:FOR子句与WHILE子句均指明进行操作的记录的条件。其区别在于: 1.范围缺省时,FOR子句默认为ALL;WHILE子句则只从当前记录开始按条件筛选 2.当发现一个记录不满足条件时,FOR子句跳过该记录继续检查下去;WHILE子句则只操作到这个不满足条件的记录为止。 若两者同时出现,则优先处理WHILE子句,举例:LIST NEXT 5 FIELDS 学号,入学成绩 FOR入学成绩 =600,说明: 1.命令以命令动词开头,且命令动词可缺省写为前4个字母 2.命令与子句,子句与子句,子句的各部分间须至少以一个空格隔开;且各子句的书写顺序任意,(2)查看表数据命令,

18、BROWSELAST FIELDS FOR FREEZELOCK,功能:浏览或编辑表中数据 参数描述: FREEZE :定义唯一允许修改的字段 LOCK :当水平方向翻动屏幕时,屏幕左边连续出现不参加滚动的字段数,举例:显示学生表中所有记录的学号,姓名和入学成绩USE 学生BROW FIELDS 学号,姓名,入学成绩,举例:显示学生表中入学成绩600分同学记录USE 学生LIST FOR 入学成绩600,LIST|DISPLAY FIELDS FOR/WHILE TO PRINT OFF,功能:选择输出表文件中记录数据也可用于显示表达式的值 说明:LIST与DISPLAY的区别 范围与条件缺省

19、时,LIST默认为ALL,DISPLAY为当前记录 LIST为滚动方式输出,DISPLAY为分屏输出,4-4-3 追加记录,菜单方式: 在浏览或编辑窗口环境中 选“显示/追加方式”,可自动在尾部追加N条记录 选“表/追加新记录”,只允许添加一条记录 选“表/追加记录”,从选定文件向当前表添加多条记录,格式一:APPEND BLANK 格式二:APPEND FROM |? FIELDS SDF 格式三:INSERT INTO (字段1,字段2,) VALUE (表达式1,表达式2,); 格式四:INSERT BLANKBEFORE,命令方式:,说明: APPEND相当于:菜单方式1; APPEN

20、D BLANK相当于:菜单方式2; 命令方式的格式二相当于:菜单方式3; 在APPEND FORM 命令中,是否使用SDF子句,要根据文本文件中的数据格式来确定。 命令方式的格式四:用于在当前记录之前/后插入一条新记录,4-4-4 记录的删除与恢复,可在“浏览”或“编辑”窗口中删除记录 点击作删除标记 选“表/彻底删除”对打了删除标记的记录作真正删除,删除标记当再次单击时,为取消标记,删除记录分两步进行:第一步将要删除的记录做删除标记,第二步才将记录真正从表中删除。,1记录的逻辑删除,若要有选择的删除一组记录,可单击“表/删除记录”,填写对话框。例如:,可将学生表中“入学成绩600分”的所有记

21、录作删除标记; 要作物理删除,再单击“表/彻底删除”。,3恢复被逻辑删除的记录(P62),2记录的物理删除 (P62),4.删除、恢复记录的命令方式,格式:DELETE FOR WHILE ,格式:PACK DBF MEMO,格式:RECALL FOR WHILE ,格式:ZAP,(1)逻辑删除命令,(2).取消删除标记命令,(3).物理删除命令,(4). 删除全部记录命令,ZAP命令 与 DELETE ALL 和PACK两条命令执行的结果相同,区别在于ZAP直接执行物理删除。,【例】 Use 学生 Delete next 6 &学生表上1到6条记录加删除标记List Recall for 性

22、别=男 &取消性别为男的记录的删除标记 GOTO 5 Recall &取消第5条记录的删除标记 Pack &将带有删除标记的记录从表中删除 Zap &将所有记录从表中删除,4-4-5 修改记录,【格式1】EDIT|CHANGE FIELDS FOR WHILE 【格式2】BROWSE FIELDS FOR ,REPLACE命令功能:不进入全屏幕编辑方式,根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。 参数描述: 指定要替换值的字段。 WITH :指定用来进行替换的表达式或值。 说明:WITH后面表达式的类型必须与WITH前面字段的类型一致 。,1全屏幕编辑命令方式,【格式】RE

23、PLACE WITH , WITH FOR/WHILE ,2自动替换命令方式,【例】 浏览“学生”表中“女”生的“姓名,入学成绩” USE 学生 Browse fields 姓名,入学成绩 for 性别=女 例4.5 修改“学生”表的结构,增加“年龄”字段;将所有学生2004年的年龄填入该字段。 USE 学生 MODIFY STRU & 添加年龄字段,确定 REPLACE ALL 年龄 WITH 2004-YEAR(出生日期),4-4-6 表的复制,【格式】COPY TO FIELDSFOR WHILE ,1复制任何类型的文件,【格式】COPY FILE TO TO ,2复制表文件,【格式】C

24、OPY STRU TO FIELDS,3复制表的结构,【例】 根据“学生”表,建立名为“学生_2”的表,只包括“学号,姓名,性别和入学成绩”字段,且仅包括入学成绩大于或等于580的学生记录。 Use 学生 Copy to 学生_2 fields 学号,姓名,性别,入学成绩 for 入学成绩=580 例4.8 建立名为“学生_3”的数据表,结构与学生数据表一样,不包括数据。use 学生 Copy to 学生_3 structure,4-4-7 记录的定位命令,浏览窗口中: 选择“表/转到记录”,指向当前记录的下一条记录,指向当前记录的上一条记录,转向第N条记录,指针指向第一条记录,指针指向最后一

25、条记录,指针指向满足条件的第一条记录,1菜单方式,格式1:GOTO RECORD /TOP/BOTTOM 格式2:GO RECORD /TOP/BOTTOM 格式3: ,命令功能:将记录指针直接定位到指定的记录上。,2.命令方式: 绝对移动(GO)、相对移动(SKIP)、查找定位(LOCATE),(1) 绝对移动命令,命令参数描述: :指定一个物理记录号,记录指针移至该记录上。 TOP:将记录指针定位在表的第一个记录上。 BOTTOM:将记录指针定位在表的最后一个记录上。 说明: RECORD可省略。的值必须大于0,且不大于当前表文件的记录个数。,格式:SKIP ,功能:将记录指针向前或向后作

26、相对若干条记录的移动。 参数描述: :指定记录指针作相对移动的记录数据。 说明: 1、移动的记录数等于的值,其值为正数时,记录指针向下移动,当是负数时,记录指针向上移动。 2、省略选择项,约定为向下移动一条记录,即SKIP 等价于SKIP 1。,(2) 相对移动命令,补充:记录指针的查找定位命令,格式:LOCATE 范围 FOR WHILE CONTINUE,功能:将记录指针定位到满足条件的第一条记录上。 说明:范围缺省时为all;继续查找满足条件的记录用continue命令。,举例:显示学生表中入学成绩600分的第二个同学记录LOCATE FOR 入学成绩600CONTINUEDISPLAY

27、,表当前记录与数组之间的数据传送(读、写),SCATTER FIELDS MEMO TO ,GATHER FROM FIELDS MEMO,【例】USE 学生GO 2SCAT TO A ?A(2),A(7)A(7)=A(7)+10GATH FROM ADISP,屏幕显示为“张辉 608”,4-4-8 数组与表之间的数据交换,4-5-1 排序与索引,功能:使数据记录按一定的顺序排列。 方式:物理排序(排序)、逻辑排序(索引)。 1 排序 2 索引,4-5 查询与统计操作,按“学号”排序图示按“学号”索引图示,概念 排序:将表中的数据按一定的顺序重新排列,并将重新排列后的结果保存成为一个新的有序表

28、 关键字段:决定排列顺序的字段,可以是多个 数据记录的排序命令 SORT TO ON /A/D/C, ON /A/D/CASCENDING|DESCINDINGFOR|WHILE FIELDS | FIELDS LIKE |FIELDS EXCEPT 功能:根据当前数据表,建立一个经过排序的新数据表,1、 表的排序,命令说明,排序文件名:新表的表名(文件名) ON子句中 :排序字段 /A:按升序排列,/D:按降序排列,默认为升序 /C:排序时忽略大小写,否则不忽略 若选择多个字段,表示多重排序 先按排列,若字段值相同,再按排列 ASCENDING将所有不带/D的字段指定为升序, DESCIND

29、ING将所有不带/A的字段指定为降序 缺省、表示全部记录 FIELDS子句:新表所包含的字段,例 对学生选课表,按成绩降序排序,并将排序结果输出到CJXH表中 USE 学生选课 SORT ON 成绩/D TO CJXH USE CJXH BROWSE 例 SORT TO 学生 ON 入学成绩 /D,出生日期 FOR 专业编号=“03“ FIELDS 学号,姓名,性别,出生日期,入学成绩,应用举例,2、表的索引,表的索引是一种逻辑排序方法,它不改变当前表文件记录的物理排序顺序,而是建立一个与该表文件相对应的索引文件。 (1)索引文件的类型 单索引文件:文件中只包含一个索引标识。扩展名为IDX 复

30、合索引文件:文件中包含多个索引标识。扩展名为CDX,复合索引文件又分为结构复合索引和非结构复合索引:结构复合索引:索引文件名与相应的表名相同。随表的打开自动打开 非结构复合索引:索引文件名与表文件名不相同。不能自动打开,(2) 索引的类型,主索引:指定的字段或表达式中索引关键字值绝对不允许有重复值。 只能在数据库表中而不能在自由表中建立的索引 主要用于在永久关系中的主表或被引用表里建立参照完整性 一个表只能创建一个主索引 候选索引:关键字值绝对不允许有重复值、有资格被选做主索引的索引。 一个表可以有多个候选索引 数据库表和自由表都可以建立候选索引。 唯一索引:允许索引关键字有重复的值,当有重复

31、值出现时,索引文件只保存重复值的第一次值 数据库表和自由表都可以建立唯一索引 为和早期版本兼容而设计,很少使用 普通索引:是除了上面几种索引之外的一种索引,它允许索引关键字有重复的值,(3) 索引的建立 建立索引有两种方式:菜单方式和命令方式 通过用菜单方式建立的索引文件是结构复合索引文件 菜单方式: 建立:打开表设计器,选中“字段”选项卡,单击,如果要编辑索引,可选中“索引”选项卡,若要改变索引类型,在“类型”列点击“类型”列表框的下三角,弹出一列表,根据需要选中索引类型。,若要改变索引名称,在“索引名”编辑框中键入索引名称。,若要改变索引表达式,在“表达式”编辑框中键入索引表达式,或点击其

32、右按钮,弹出“表达式生成器”对话框。,在该对话框中编辑索引表达式后,点击“确定”按钮返回表设计器中,若要对满足条件的记录进行索引,可在“筛选”编辑框中键入筛选表达式,或点击其右按钮,弹出“表达式生成器”对话框。,在该对话框中编辑筛选表达式后,点击“确定”按钮返回表设计器中,若要改变排序方式,选中“排序”列的箭头,点击该箭头即可改变排序方式,再次点击将恢复原排序方式,在该窗口中也可建立新索引,INDEX ON TO |TAG OF FOR ASCENDING|DESCINDING UNIQUE|CANDIDATEADDITIVE 对当前表中符合条件的记录进行索引 是由表中的字段、内存变量、数组等

33、构成的字符、数值、日期或逻辑表达式。 UNIQUE选项 建立惟一索引; CANDIDATE建立候选索引 TAG 建立复合索引文件和设置索引标识,若省略OF子句,为结构复合索引文件,否则为非结构复合索引文件,命令方式创建索引,结构复合索引文件随表文件的打开而打开 SET INDEX TO ORDER | |TAGOFASCENDING | DESCENDING ADDITIVE :要打开的索引文件,如果没有用ORDER 子句指定控制索引,则第一个索引文件为主控索引文件 ADDITIVE:打开索引文件的同时,不关闭已打开的索引文件 缺省所有选项将关闭当前工作区中除结构复合索引文件外的所有索引文件

34、use index 打开表文件的同时打开索引文件 CLOSE INDEX 关闭所有索引(结构复合索引文件除外),(4) 打开和关闭索引文件,(5) 删除索引 删除索引标识 Delete tag all | of , of 从复合索引文件中移掉一个或多个标识;若选all 删除所有的索引标识,相关的复合索引文件也被删除 删除索引文件 Erase Delete file ,排序,就是将表文件的记录按照某个或某几个字段值的大小顺序进行排序,即从物理顺序上对表文件重新加以整理,产生一个新的表文件。 索引是一种逻辑排序,它只提供当前工作区中数据表内任一项符合条件的记录指针值,只产生索引文件,不改变原表文件

35、的记录顺序,索引文件只是一种辅助文件,不可以脱离原表文件而独立使用。,有关排序与索引的小结,4-5-2 查询,查找是按照某些条件在表中查找所需记录并将记录指针指向符合条件的第一条记录。 1.条件查询 无索引查找(顺序查找,速度较慢) LOCATE FOR 命令 CONTINUE命令 有索引查找(速度较快,要求事先对表进行索引) SEEK命令 FIND命令,2.索引查询,索引查找的前提:打开表文件及相关的索引文件,确定控制索引文件或控制索引标识。(1) SEEK命令: 格式:SEEK ORDER | |TAGOFIN | ASCENDING | DESCENDING 功能:将记录指针定位到 “索

36、引关键字值=”的第一条记录。,命令说明,字符串表达式,用SET EXACT ON|OFF命令可设置字符串匹配规则。 系统默认OFF,即模糊匹配,表达式值与关键字值左子串相同就可找到。 ON表示完全匹配,表达式值与关键字值完全相同才认为找到。,应用举例,例按课程编号字段对学生选课表建立索引,然后进行查找。 USE 学生选课 INDEX ON 课程编号 TAG kcbh SEEK “02” ?FOUND() DISPLAY,(2) FIND命令,格式:FIND 功能:将记录指针定位到“索引关键字值=”的记录说明:可用SEEK命令代替。,1.计数命令,格式:COUNT FORWHILE TO 功能:

37、计算指定范围满足条件的记录数,并将结果存于指定的内存变量 说明 TO :指定结果存放的内存变量名,若该变量不存在,系统会自动创建。 若设置了命令set deleted on,则作了删除标记的记录不被计数。,4-5-3 统计,应用举例,例统计学生选课表中成绩超过85分的学生人数 USE 学生选课 COUNT FOR 成绩85 TO cjrs ?cjrs,2. 计算命令,格式:CALCULATE FORWHILETO | ARRAY 功能:在打开的数据表中,计算表达式的值 说明 有NULL的记录不包含在内 表达式中可以包含下列函数 AVG():平均值 CNT( ):表中的记录数 MAX():最大值

38、 MIN():最小值 SUM():求和,应用举例,例统计学生选课表中成绩超过85分的学生人数及平均成绩 USE 学生选课 CALCULATE CNT( ), AVG(成绩) FOR 成绩85 TO xsrs, pjcj ?xsrs,pjcj,求和命令,格式:SUM FOR WHILE TO | ARRAY 功能:在打开的数据表中,对数值型字段表达式求和 :对指定表达式求和,省略该选项,则对所有数值型字段求和。 TO | ARRAY :指定结果存放的内存变量名表或数组名,若变量或数组不存在,系统自动创建,数组存在且太小时,系统自动增加数组大小。,应用举例,例求学生选课表中成绩的总和。 USE 学

39、生选课 SUM 成绩 TO zcj ?zcj,求平均值命令,格式:AVERAGEFOR WHILE TO | ARRAY 功能:在打开的数据表中,对数值型字段表达式求平均值。,应用举例,例求学生选课表中成绩的平均值。 USE 学生选课 AVERAGE 成绩 TO pjcj ?pjcj 例求学生表中2000级同学的平均年龄 USE 学生 AVERAGE YEAR(DATE()-YEAR(出生日期) FOR LEFT(学号,4)=“2000“ TO pjnl ?pjnl,3. 分类求和命令,格式:TOTAL TO ON FIELDS FOR WHILE 功能:在打开的数据表中,按关键字分类,汇总计

40、算,将结果存入新文件中 说明 数据表必须按关键字排序或索引 :指定存放计算结果的新表文件名 :指定作为分组总计依据的字段 FIELDS :指定要总计的字段,4-6 多工作区操作 4-6-1 工作区选择,1、工作区概念VFP6.0提供了32767个工作区。每个工作区只能打开一个表文件,若在已有表文件的工作区打开新的表文件,以前打开的表文件就会自动关闭。各表在各自的工作区中被操作。 2、工作区标识 (1).系统别名 (110 分别用AJ单个字母来命名) (2).表名或用户定义的别名 USE ALIAS IN 别名可以包含多达254个字母、数字或下划线,且必须以字母或下划线开头。,3. 工作区的选择

41、命令,选择工作区命令 格式为: SELECT | VFP刚启动时默认1号工作区为当前工作区,SELECT( )函数可以返回当前工作区的区号。 SELECT 0表示选定当前未使用的最小号工作区。 多工作区中表字段的相互引用在当前工作区上使用其他工作区上的字段 (跨工作区字段)时,必须用别名标识. 格式为:别名.字段名 或 别名-字段名,4-6-2 表与表之间的联接与关联,表与表之间的三种关系 一对一关系:在表A中的一条记录在表B中最多只能有一条记录与之对应,反之,在表B中的一条记录在表A中也最多只能有一条记录与之对应。例如:学生表和学生成绩表之间。 一对多关系:在表A中的一条记录在表B中可以有多

42、条记录与之对应,而在表B中的一条记录在表A中最多只能有一条记录与之对应。例如:学生表和学生选课表之间。 多对多关系:在表A中的一条记录在表B中可以有多条记录与之对应,而在表B中的一条记录在表A中也可以有多条记录与之对应。例如:学生表和课程表之间。 注意:VFP不支持多对多关系,处理多对多关系时,可以用第三个表,分解为两个一对多关系。,表关系的概念,表与表建立关系的条件两个表的索引关键字表达式值必须相等。建立关系后两个表,一个是父文件,另一个是子文件。 父表为主索引或候选索引,子表的索引类型限制如下: 一对一关系,子表必须是主索引或候选索引. 一对多关系,子表可以是普通索引或唯一索引.,建立关系

43、的方法: 在数据工作期中:建立临时关系 当重新打开数据库时,这些关系不复存在,需重新建立。 父文件记录指针移动时,子文件的记录指针会自动移到对应的记录上。 在数据库设计器中:建立永久关系 当重新打开数据库时,这些关系依然存在。 在数据库设计器中显示为联系表索引之间的连线。 父文件记录指针移动时,子文件的记录指针不会自动移到满足条件的记录上。,用命令建立临时关系,建立关系:SET RELATION命令 删除关系:SET RELATION OFF命令 设置一对多关系:SET SKIP TO命令,SET RELATION命令,格式:SET RELATION TO INTO | IN | ADDITI

44、VE 功能:以当前表为父文件,建立与其他表的关系 说明: :包含父文件字段的表达式, 子文件中的索引关键字值=的记录与之对应 INTO子句:指定子文件或其所在的工作区 IN子句:指定父文件或其所在的工作区 ADDITIVE表示建立新关联时不删除以前建立的关系 不选所有的选项,则删除与当前表建立的所有关系,SET RELATION OFF命令,格式:SET RELATION OFF INTO 功能:删除当前表与指定子文件(表)的关系,SET SKIP TO命令,格式:SET SKIP TO 功能:说明当前表与指定表为一对多关系 说明:不带选项表示去掉一对多关系 举例:1、2号工作区分别打开“学生

45、“表和“学生选课“表SELECT 2SET ORDER TO 学号SET RELATION TO 学号 INTO 2 IN 1SELECT 1SET SKIP TO 2,例,SELECT 1 USE 教师 SELE 2 USE 教师任课 SELE 1 SET ORDER TO TAG 教师编号 OF “教师任课.cdx“ IN 教师任课 SET RELATION TO 教师编号 INTO 教师任课 ADDITIVE SET SKIP TO 教师任课,在1号工作区打开“教师”表,将2号工作区的教师编号设为主控索引标识,指定教师表和教师任课表为一对多关系,在教师表和教师任课表之间建立临时关系,利用

46、数据库设计器建立永久关系,打开数据库设计器 为各表需要建立关系的字段建立索引 将父表的索引拖到子表的相应索引,出现关系连线 一对一关系;连线两端都不分叉 一对多关系:连线一端分叉,一端不分叉 不分叉的一方称为“一”方 分叉的一方称为“多”方 编辑关系:在关系连线上单击鼠标右键,选择“编辑关系” 删除关系:在关系连线上单击鼠标右键,选择“删除关系”,4-6-3 建立参照完整性,概念 参照完整性是关系模型的一种完整性约束条件,用于在已建立关系的表间控制记录的一致性。 规则,编辑参照完整性如下:,4-7 小结,通过本章的学习,读者应掌握以下内容: 掌握如何在项目中建立数据库,并往数据库中添加表。 掌握如何利用 “表设计器”来创建表结构; 掌握怎样利用注释来详细地描述每个字段所代表的含义; 掌握设置有效性规则,当输入数据时判断该记录是否符合 要求,避免不符合要求的数据出现; 掌握记录的基本输入法。 掌握如何追加一条记录?如何追加符合条件的一组记录? 掌握如何在“浏览”或“编辑”窗口中浏览和编辑数据表。 掌握记录的逻辑删除、物理删除和记录被逻辑删除后的再恢复。 根据各表的索引建立表之间的关系。 设置表与表之间的参照完整性规则。,第4章 思考与练习,一、1、2、3、4、5 二、1、2、3、4、5、6、7、8、9、10 三、1、2、3、4、5、6、7,完!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报