第十一章数据库及其操作
11.1 数据库的创建与维护
11.1.1 数据库的创建
.DBC 文件 ----- 数据库文件
.DBT 文件 ----- 数据库备注文件
.DCX 文件 ----- 数据库索引文件数据库创建方式:
1.菜单方式创建数据库文件?新建?数据库?新建文件?输入数据库名打开数据库设计器
2.命令方式创建数据库格式,CREATE DATABASE <数据库名 >
11.1.2 数据库的打开与维护
1,打开数据库命令格式,OPEN DATABASE 〈 数据库名 〉
2,关闭数据库命令格式 1,CLOSE DATABASES
格式 2,CLOSE ALL
3,修改数据库命令格式,MODIFY DATABASE < 数据库名 〉
4,删除数据库命令格式,DELETE DATABASE〈 数据库名〉 [DELETE TABLES]
11.1.3 数据库中表的组织自由表数据库表
1,在数据库中建立新表
( 1)菜单方式
( 2)命令方式,CREATE <表文件名 >
2,向数据库中添加表
( 1)命令方式格式,ADD TABLE <表名 >
( 2)菜单方式
3,从数据库中移去表
( 1)命令方式格式,REMOVE TABLE <表名 >
( 2)菜单方式
11.1.4 数据库中表的关联相对于用 SET RELATION TO 命令建立的临时关系而言,数据库中各数据表之间的关系被称为永久关系
1,关联前的准备建立关系的两个表需要有一些公共的字段以及以这些字段为依据建立的相应索引。这样的字段被称为主关键字段和外部关键字段。主关键字段存在于发出关联的表中,通常需要为该字段建立一个主索引; 外部关键字段存在于被关联的表中,通常可为该字段建立一个普通索引。以主关键字段和外部关键字段创建的索引必须具有相同的索引表达式。
数据库中的任何一个数据库表只能建立一个主索引,通常情况下可通过,表设计器”的“索引”选项卡建立主索引。
命令方式建立主索引,其命令格式如下。
格式,ALTER TABEL <表名 > ADD PRIMARY KEY〈 索引关键字 >TAG〈 索引标识名 〉
【 例 11-1】 在“表设计器”对话框中,为“教学管理”数据库中的“学生表”,以“学号”为主关键字建立主索引。
【 例 11-2 】 用命令方式在“教学管理”数据库的“学生表”
中,以“学号”为主关键字建立主索引。
OPEN DATABASE 教学管理
USE 学生表
ALTER TABLE xs ADD PRIMARY KEY 学号 TAG xh
在打开的“数据库设计器”窗口中建立永久关系,只要在数据库的数据表之间用鼠标进行连线即可
2.创建永久关系
【 例 11-3 】 在“数据库设计器”窗口中,为“教学管理”数据库的“学生表”和“成绩表”,通过“学号”建立永久关系。操作步骤如下。
11.2 数据字典保存数据库中各种数据的定义和设置信息。
例如:数据库表的属性各字段的属性记录规则表间关系及其参照完整性
11.2.1 长表名与长字段名数据库表名:不超过 128个字符数据库表中的字段:不超过 128个字符
11.2.2 设置字段属性
1,格式
2,输入掩码
3,标题
“显示”区内的“标题”文本框用来设置该字段的标题。
4,字段有效性在“字段有效性”区中有“规则”、“信息”、“默认值” 3个文本框。如 RIGHT(学号,1)#0,若不相符合,必须进行修改。
11.2.3 设置记录规则
1,记录有效性记录有效性:是用来指定同一记录不同字段间的逻辑关系。
例如,对于 xs.dbf,可在“规则”框中输入规则,年龄
=2002-YEAR( 出生日期 );而在“信息”框中输入
“年龄与出生日期不符 !”。这样,每输入完一条记录时 Visual FoxPro就会按此规定进行记录有效性的检验,一旦出错就会显示指定的出错信息。
2,触发器触发器是指对数据库表中的记录进行插入、删除、
更新操作时将触发的检验规则。在“表设计器”的
“表” 选项卡中的“触发器”区内有“插入触发器
”、“更新触发器”和“删除触发器” 3个文本框

“插入触发器”文本框用于指定记录的插入规则,该规则可以是逻辑表达式也可以是自定义函数。每当向表中插入或追加记录时就将触发此规则并进行相应的检查。当表达式或自定义函数的结果为“假”时,插入的记录将不被接受。
11.2.4 参照完整性 ( Referential Integrity)
1.参照完整性的概念就是建立一组数据表之间的规则,当用户插入、更新或删除表中记录时,可保证各相关数据表之间数据的完整性。
设置参照完整性后,Visual FoxPro 可以确保以下几种情况 。
( 1)当主表中没有相应记录时,关联表中不得添加相关记录。
( 2)若主表中的数据被改变时将导致关联表中出现孤立记录,
则主表中的这个数据不能被改变。
( 3)若主表中的记录在关联表中有匹配记录,则主表中的这个数据不能被删除。
通常可用 Visual Foxpro的,参照完整性生成器,来设置参照完整性 。
方法一,首先打开,数据库设计器,窗口,然后执行,数据库
” 菜单中的,编辑参照完整性,命令 。
方法二:在,数据库设计器,窗口中双击两个数据表之间的关系线,再在弹出的,编辑关系,对话框中单击,参照完整性
” 按钮 。
方法三,用鼠标右键单击,数据库设计器,窗口,在弹出的快捷菜单中执行,编辑参照完整性,命令 。
2,参照完整性的设置
( 1),更新规则,选项卡用于指定修改父表中关键字值时所应遵循的规则 。 包括,级联,,,限制,和,忽略,3个单选钮 。 若选择,级联,,则修改父表中关键字值时,系统将自动更改所有子表相关记录的值;若选择,限制,,则修改父表中关键字值时如果子表有相关记录,将出现,触发器失败,
提示信息 。
( 2),删除规则,选项卡用于指定删除父表中的记录时所应遵循的规则 。 也包括,级联,,,限制,和,忽略,3个单选钮 。 若选择,级联,,则在删除父表中记录时,系统将自动删除子表中的相关记录;若选择,限制,,则删除父表中记录时如果子表有相关记录,将出现,触发器失败,提示信息 。
( 3)“插入规则” 选项卡用于指定在子表中插入新记录或更新已经存在的记录时所应遵循的规则。只包含“限制” 和
“忽略” 2 个单选钮。若选择“限制”,则主表中若没有相关记录,就不允许在子表中添加对应的记录。