1、第8章 多表操作与数据库,8.1 数据表的索引 8.2 多表操作 8.3 Visual FoxPro的数据库,回 顾,数据库与表的基本概念 创建表、数据库 表的基本操作 打开、浏览、添加记录、删除记录、更新修改 数据库基本操作 打开、关闭;在数据库中新建表;添加、移去表,8.1 数据表的索引,何为索引VFP中的4种索引建立索引使用索引,8.1 数据表的索引何为索引,引例:图书馆图书摆放及查找的解决方案,8.1 数据表的索引,何为索引索引:数据表的索引是按指定索引表达式对数据表建立一个文件索引文件。索引文件是一个记录号的列表,它指向待处理的记录,并确定了记录的处理顺序,即按新顺序存储数据表所对应
2、的记录号,8.1 数据表的索引,VFP中的4种索引主索引候选索引惟一索引普通索引,8.1 数据表的索引,建立索引 1、使用表设计器注意:索引名、类型、索引表达式、筛选2、使用索引命令 INDEX ON 索引表达式 TO IDX文件名| TAG 索引名 OF CDX文件名;FOR 表达式;ASCENDING | DESCENDING;UNIQUE | CANDIDATE;ADDITIVE 例:创建一个名为zz的普通索引 INDEX ON b_writer TAG zz,8.1 数据表的索引,使用索引 1、使用索引排序(实例演示)(1)使用对话框(2)使用命令 2、使用索引查找记录(3个命令)(1
3、)FIND(2)SEEK(3)LOCATE、CONTINUE,1. 字符查找命令(FIND)查找关键字与所给字符串相匹配的第一个记录,若找到,指针指向该记录;否则指向文件尾,给出信息“没找到”。语法格式为: FIND 字符串|数值【例11-15】下述命令在学生表xs中查找第一个姓李的同学,并显示该同学的信息: USE xs INDEX ON 姓名 TAG xm SET ORDER TO TAG xm FIND 李 DISP,2. 表达式查找命令(SEEK)查找关键字与所给字符串相匹配的第一个记录,若找到,指针指向该记录;否则指向文件尾,给出信息“没找到”。语法格式为: SEEK 表达式【例11
4、-16】下述命令在学生表xs中查找第一个出生日期为1980年1月8日的同学,并显示该同学的信息: USE xs INDEX ON 出生日期 TAG csrq SET ORDER TO TAG csrq SEEK CTOD(“01/08/82“) DISP,3. 顺序查询命令(LOCATE) 查找当前数据表中满足条件的第一条记录。语法格式为 LOCATE 范围 FOR 条件 4. 继续查找命令(CONTINUE)使最后一次LOCATE命令继续往下搜索,指针指向满足条件的下一条记录。命令格式为: CONTINUE 【例11-17】下述命令在学生表中查找姓李的同学,并显示该同学的信息:CLEARUS
5、E xsLOCATE FOR 姓名 = “李“DISPCONTINUEDISP,8.2 多表操作,使用多个表 工作区若要使用多个表,就要使用多个工作区。一个工作区是一个编号区域,用它来标识一个已打开的表,每个工作区中只能打开一个表。VFP可以在32767个工作区中打开和操作表。工作区除了可以用它的编号表示外,还可以用在工作区中打开的表的名称、别名来标识。表别名是一个名称,它可以引用在工作区中打开的表。,1. 指定工作区如果没有指定工作区,系统默认总是在第1个工作区中工作,在第1个工作区中打开和关闭表。使用SELECT命令可以将指定的工作区设为当前工作区,其语法格式为:SELECT 工作区号|表
6、别名 2.在不同的工作区打开和关闭开(1)在当前工作区中找开和关闭表use cj &在当前工作区中打开表cjbrow &浏览打开的表cjuse &关闭当前工作区中的表cj,(2)在指定工作区中打开关闭表 例:多表操作 打开 浏览 关闭 SELECT 0 &指定第0个工作区为当前工作区 USE xs &打开表xs SELECT 1 &指定第1个工作区为当前工作区 USE cj &打开表cj SELECT A &用字母A来指定第0个工作区为当前工作区 Brow &浏览该工作区的表 SELECT B &用字母B来指定第1个工作区为当前工作区 brow SELECT xs &指定表xs所在的工作区为当
7、前工作区 Use &关闭该区中打开的表,即xs表 SELECT cj &指定表cj所在的工作区为当前工作区 Use &关闭该区中打开的表,即cj表,3.引用其它工作区中打开的表 4.使用“数据工作期”窗,8.2 多表操作,设置表间的临时关系明确表中一(主表)对多(从表)的关系 建立临时关系之前须创建索引,设置表间的临时关系 1、使用“数据工作期”窗口,设置表间的临时关系 1、使用SET RELATION命令 use 客户信息表 in 1 use 定单表 in 2 select 定单表 set order to tag d_khh select 客户信息表 set relation to 客户号
8、 into 定单表,8.3 Visual FoxPro的数据库,数据库与自由表 创建数据库 在数据库中加入表 打开关闭数据库关联表也称永久关系,被做为数据库的一部分而保存起来。,关联表,准备关联 明确:主关键字字段、外部关键字字段、一对多 主关键字字段:即一的一方,需要主索引 外部关键字字段:即多的一方,需要做普通索引,一: 主关键字 字段 创建主索引,多: 外部关键字 字段 创建普通索引索引,关联表,创建关联 在数据库设计器中创建编辑关联 双击表间的关系线例:多表关联在表单中的使用(演示),控制数据库输入,控制字段数据输入,控制数据库输入,控制记录的数据输入,控制数据库输入,管理数据库记录,在表单中使用表,表单、数据表、控件、数据环境、生成器,表单(SCX文件),数据表(DBF文件),