340 likes | 507 Views
表的关联与数据库. 知识回顾. 维护表数据: 保存、添加、修改、删除记录 处理表数据: 查询记录、合并拆分表、统计汇总表数据. 知识回顾. VF 命令中的子句 记录指针的定位: GO 、 SKIP 、 LOCATE 显示表内容: LIST DISPLAY 修改表记录: BROWSE REPLACE 查看修改表结构: LIST/MODIFY STRUCTURE 插入新记录: INSERT 、 APPEND 删除表记录: DELETE 、 RECALL 、 PACK 、 ZAP.
E N D
知识回顾 • 维护表数据: 保存、添加、修改、删除记录 • 处理表数据: 查询记录、合并拆分表、统计汇总表数据
知识回顾 VF命令中的子句 记录指针的定位:GO、SKIP、LOCATE 显示表内容: LIST DISPLAY 修改表记录: BROWSE REPLACE 查看修改表结构: LIST/MODIFY STRUCTURE 插入新记录:INSERT、APPEND 删除表记录:DELETE、RECALL、 PACK、ZAP
内容提要 多工作区 建立数据库 设置数据库表 建立参照完整性
工作区 设置工作区来实现多个表的操作 VF提供多个工作区,1-10区别名A-J 每个工作区能且只能打开一个表文件 一个表文件不能同时在多个工作区打开 只有一个工作区是当前工作区
工作区的选择与设置 SELE 1 USE STUDENT USE XSCJ in 2 USE XSCJ ALIAS CJ in 2
非当前工作区字段的引用 格式: <工作区别名>.<字段名> <工作区别名> -><字段名> 例如 A.学号学生.学号 学生->学号
多个表的打开 数据工作区A-J,1-10
表的关联 • 关联的概念: 一个表(子表)的记录指针自动随另一个表(父表)的记录指针移动而移动。 • 关联条件:不同表的两个字段值相等。 • 一对一关联:父1条记录对应子表中1条记录。 • 一对多关联:父1条记录对应子表中多条记录。 • 关联类型: • 永久联系-在数据库设计器中建立。 • 临时联系-用set relation 命令建立。
创建数据库 命令格式: CREATE DATABASE <数据库名> 创建数据库时,VF生成三个同名文件,扩展名分别是: DBC 数据库文件 DCT 数据库备注文件 DCX 数据库索引文件
向数据库中添加、移去表 命令格式: ADD TABLE <表文件名> REMOVE TABLE <表文件名>
使用数据库 打开数据库命令: OPEN DATABASE <数据库名> 关闭数据库命令: CLOSE DATABASE 修改数据库命令: MODIFY DATABASE <数据库名> 删除数据库命令: DELETE DATABASE <数据库名>
二者可以相互转换 数据库表优越性: 长表名与长字段名(自由表10,数据库表128) 表中字段可以设标题、注释、默认值、字段有效性规则等 数据库表与自由表
二 定义表间关系 永久关系是数据库表之间的关系,在数据库设计器中表现为两个表索引之间的连线,该关系建立后存储在数据库文件中,只要不改变数据库表之间的关系就一直保留。 基于索引的永久关系
父表:主索引 子表:主索引 一对一关系
父表:主索引 子表:普通索引 一对多关系
用鼠标建立索引 索引的类型 索引表达式
在“数据库设计器”中建立永久关系 方法: 从建立关系的主索引或候选索引处开始,按住鼠标左键拖拉到另一个数据库表的索引字段上,此时两个表之间出现一条线,该线被称为关系线。
表间关系的编辑 数据库表之间建立的永久关系也可以进行编辑,双击表之间的连线(或右击表间连线,选择“编辑关系”),则出现如下对话框,可进行关系编辑。 若要删除表之间的关系,选中此连线后按Delete键(或右击表间连线,选择“删除关系”)。
处理表中的数据时,最大的问题就是如何保证存储在不同表中的数据的一致性。处理表中的数据时,最大的问题就是如何保证存储在不同表中的数据的一致性。 参照完整性用于控制数据库中各相关表间数据的一致性或完整性。 设置参照完整性
参照完整性 不允许引用数据库中不存在的外键数据 更新规则 删除规则 插入规则
设置参照完整性 ①清理数据库。以删除有删除标记的记录。 选择【数据库】菜单中的【清理数据库】命令; ②打开参照完整性生成器。 选择【数据库】菜单中的【编辑参照完整性】命令打开参照完整性生成器。
小结 工作区选择命令 select <工作区号> 数据库的基本操作 创建create database、打开open database、关闭close database、修改modify database、删除delete database 数据库表的基本操作 添加add table、移去remove table 建立表间的永久关系
在Visual FoxPro中,下列关于表的叙述正确的是______。 A)在数据库表和自由表中,都能给字段定义有效性规则和默认值 B)在自由表中,能给表中的字段定义有效性规则和默认值 C)在数据库表中,能给表中的字段定义有效性规则和默认值 D)在数据库表和自由表中,都不能给字段定义有效性规则和默认值 等级考试题
设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表 A) 在父表连接字段上建立普通索引,在子表连续字段上建立主索引 B) 在父表连接字段上建立主索引,在子表连续字段上建立普通索引 C) 在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引 D) 在父表和子表的连接字段上都要建立主索引 等级考试题
Visual FoxPro的“参照完整性”中“插入规则“包括的选择是______。 A) 级联和忽略 B) 级联和删除 C) 级联和限制 D) 限制和忽略 在Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,则当删除父表中的记录时,系统反应是___。 A) 不做参照完整性检查 B) 不准删除父表中的记录 C) 自动删除子表中所有相关的记录 D) 若子表中有相关记录,则禁止删除父表中记录 等级考试题
实验作业 创建一个“学生管理”数据库文件,名字为xsgl.dbc,并向数据库中添加“student.dbf”、“choose.dbf”、“course.dbf”三张表 在数据库xsgl.dbc中,为表student.dbf和choose.dbf,表course.dbf和choose.dbf建立一对多的关联关系 为数据库xsgl.dbc中表student.dbf的“性别”字段设置字段有效性规则、信息提示和默认值 “性别”字段的有效性规则:性别=“男”.or.性别=“女” 信息:只能输入“男”或“女” 默认值:“男” 对数据库xsgl.dbc中的表设置参照完整性