vf排序索引统计多表操作.ppt
数据库原理和应用,(3-2),【教学主要内容】,数据记录的排序与索引 数据表的查询 数据表的计算 数据表的复制 数据表的关联、连接,【教学要求】,掌握数据记录的排序与索引 掌握数据表的查询 掌握数据表的计算 掌握数据表的复制 掌握数据表的关联、连接,第二节 数据表的操作,一、VF常识 二、数据记录的排序与索引 三、数据表的查询 四、数据表的计算 五、数据表的复制 六、多表操作,一、 VF常识,数据表格文件:*. DBF(Tab1e) 索引文件:*.IDX 复合式索引文件:*.CDX 屏幕格式文件 :*. SCX FoxPro的配置文件: Config.FPW FoxPro的数据文件:FoxUser.DBF,二、 数据记录的排序,排序是指定一关键字段,并按此字段的字符顺序、数据值的大小或时间顺序对数据表中的记录存放次序重新排列,并生成一个新的数据表文件。 程序命令 SORT TO ON/A|/D/C /A|/D/C ASCENDINGDECENDING 范围FOR条件1WHILE条件2FIELDSNOOPTIMIZE,二、数据记录的排序,例如: USE student.dbf SORT TO student01.dbf on s_number/D USE student01.dbf browse,二、数据记录的索引,索引的功能主要是为用户在使用过程中加快数据的检索,也就是说加快查询数据的速度。 根据索引目录的数量,可将索引分为两类:单索引(.IDX)和复合索引(.CDX)。 索引类型:主索引、候选索引、普通索 引、惟一索引,二、数据记录的索引,菜单操作:打开表- “显示”菜单- 表设计器-索引框-索引名-类型-表达式生成器 例如:s_class字段为普通索引, s_number字段为候选索引,二、数据记录的索引,二、数据记录的索引,程序命令 INDEX ON TO| TAG OF复合索引COMPACTASCENDINGDECENDING UNIQUE|CANDIDATEADDITIVE use student.dbf INDEX ON s_class TAG CLASS INDEX ON s_number TAG NUMBER CANDIDATE,三、数据表的查询,直接查询 命令1:LOCATE 范围FOR条件1WHILE条件2 NOOPTIMIZE 例如:USE E:excisestudent.dbf LOCATE for S_class=“计算机应用” DISPLAY 命令2:CONTINUE DISPLAY,三、数据表的查询,索引查询 命令1:FIND| FIND “000903” 命令2:SEEK seek '000'+'906',三、数据记录查询,USE student.dbf &&建立索引 index on s_number to student.idx seek '000'+'906' 注意:要有index on s_number to student.idx 已经建立索引文件student.idx USE student.dbf index student.idx FIND “000903”,四、数据表的计算,使用新表Book1.dbf,四、数据表的计算,记录计数 COUNT 范围FOR条件1WHILE条件2TONOOPTIMIZE COUNT ALL FOR Publish=“电子工业出版社”TO pub ? pub 数据求和 SUM 表达式表范围FOR条件1WHILE条件2 TOTO ARRAY NOOPTIMIZE SUM ALL Price FOR Publish=“电子工业出版社”TO pri,四、数据表的计算,求平均值 AVERAGE 表达式表范围FOR条件1WHILE条件2 TOTO ARRAYNOOPTIMIZE AVERAGE ALL Price FOR Publish=“电子工业出版社”TO pri 分类求和 TOTAL TO ON 字段名 FIELDS 范围FOR条件1WHILE条件2 NOOPTIMIZE USE E:excisebook1.dbf INDEX ON Type to E:excisetype.idx TOTAL TO E:excisetype.dbf ON type,四、数据表的计算,USE E:excisetype.dbf BROWSE,五、数据表的复制,数据表结构的复制 命令:COPY STRUCTURE TO FIELDS WITHCDX|WITHPRODUCTION 例如: USE E:excisebook1.dbf INDEX ON B_number TAG B_number candidate INDEX ON Type TAG Type LIST STRUCTURE &&(可观察book1的结构) COPY STRUCTURE TO E:excisebook2.dbf WITH CDX,五、数据表的复制,数据结构及数据表记录的复制 命令:COPY TO 范围FIELDS FOR条件1WHILE条件2 例如:USE E:excisebook1.dbf COPY TO E:excisebook2.dbf FOR Publish= “电子工业出版社”,六、多表操作,1.工作区 2.数据表的关联 3.数据表的连接,1.工作区,工作区与别名 工作区的选择 工作区的互访,工作区与别名,工作区: 用来保存数据表及其相关信息的一片内存空间 系统定义: 1-10号分别对应A-J USE ALIAS,工作区的选择,SELECT |0 例如:select 1 use book1 或 use book1 alias Y in A,工作区的互访,别名.字段名或别名-字段名 例如:sele 1 use book1 go 2 sele 2 use brower go 5,工作区的互访,? b_number, A.b_number ,A.b_name,list b_number, lend_date,back_date ,A.b_name,2.数据表的关联,所谓关联,就是当前数据表记录指针的移动,能引起别的数据表按某种条件相应地移动记录指针。 一对一的关联 一对多的关联,一对一的关联,命令 SET RELATION TO INTO|, INTOADDITIVE 例如:sele 1 use book1 index on b_number to ibook go 2 sele 2 use brower SET RELATION TO b_number INTO A,一对一的关联,go 5 ? B_number, A.b_number ,A.b_name,list B_number, lend_date,back_date ,A.b_name,一对多的关联,命令 SET SKIP TO , 例如: 建立新表tbook.dbf sele 1 use book1 index on publish to ibook sele 2 use tbook SET RELATION TO publish INTO A SET skip TO A list p_number, publish ,A.b_name,3.数据表的联接,命令 JION WITH | TO FOR条件 FIELDS 例如 sele 1 use book1 sele 2 use brower JOIN WITH book1 TO ts FOR B_number=A.b_number FIELDS b_number, A.b_name, lend_date, back_date use ts list,【小结】,本章主要介绍了对VFP中的数据表的操作,主要知识点如下: 数据记录的排序与索引 数据表的查询 数据表的计算 数据表的复制 数据表的关联、连接,谢谢!,