第 五 章数据库的创建与使用
Visual FoxPro 6.0
第 五 章 数据库的操作与使用
§ 4.1数据库一,数据库的基本概念为减少数据的冗余,保护数据的完整性,数据库集中了一系列相互具有数据联系的表,并且各表之间建立了若干固定的关系(关联)。
一个数据库包括:
–数据库表
–本地视图、远程视图
–连接、存储过程二、用数据库设计器设计数据库
P109 例 3-26
数据库设计器
CREATE DATABASE <数据库名 >
三、用项目管理器管理数据项目管理器用于组织和管理项目中的文件,即建立、修改、查看这些文件,可作为应用系统开发维护的控制中心。
P110 例 3-27
创建命令,CREATE PROJECT <项目名 >
打开命令,MODIFY PROJECT <项目名 >
§ 4.2 数据词典数据词典用于保存对数据库中各种数据的定义或设置信息,包括表的属性、字段属性、记录规则、表间关系,以及参照完整性( Referential Integrity,简称 RI)等。
注意,只有数据库表的数据才有数据词典。自由表没有。
一、长名(长表名 /长字段名)与注释
VFP允许在数据词典中为表 /字段设置不超过 128个字符的长名,以及对表 /字段增加适当的注释。
长表名 /长字段名一般能在浏览窗口或各种设计器的标题栏内显示;而注释则通常出现在项目管理器的底部。
二、设置字段级规则:
用于字段数据输入正确性的检验,在插入或修改字段值时被激活。
1,格式 格式文本框用于键入格式表达式,确定字段在浏览窗口、
表单或报表中显示时采用的大小写、字体大小和样式。
2,输入掩码 指定字段的输入格式,限制输入数据的范围,控制输入的正确性,与格式文本框不同,输入掩码必须按位指定格式。
P112
3,标题 标题文本框用于为浏览窗口、表单或报表中的字段标签键入表达式。
4.字段验证 包含 3个文本框规则文本框 用于输入对字段数据有效性检查的规则。
信息文本框 用于指定出错提示信息。
默认值文本框 用于指定字段的默认值。
三、设置记录规则
1,记录验证用来检查同一记录中不同字段之间的逻辑关系。
规则文本框,用于指定记录级有效性检查规则,光标离开当前记录时进行校验。
信息文本框,用于指定出错提示信息。
2,触发器在一个记录插入、更新或删除操作之后运行的记录级事件代码。
插入触发器,用于指定一个规则,每次向表中插入记录时该规则被触发,据此检查插入的记录是否满足规则。
更新触发器,用于指定一个规则,每次更新记录时触发该规则。
删除触发器,用于指定一个规则,每次向表中删除记录(打上删除标记)时触发该规则。
四、主索引与永久关系
1,主索引主索引的作用有两个:
一是主索引不允许出现重复值,发现重复值会禁止存盘,故可用作主关键字。
二是主索引可用于建立永久关系,从而建立参照完整性。
建立或删除主索引(表设计器,命令)
ALTER TABLE <表名 > ADD|DROP PRIMARY KEY <索引关键字 > [TAG <索引标识名 >]
命令中的 ADD用于添加主索引,缺省 TAG子句表示索引关键字同字段名。 DROP用于删除主索引。
例如
ALTER TABLE sb ADD PRIMARY KEY 编号 TAG bh
ALTER TABLE sb DROP PRIMARY KEY
2,永久关系与临时关系永久关系 是数据库表之间的一种关系,不仅运行时存在,而且一直保留。表之间的永久关系是通过索引建立的。
P115 例 3-28
连线规则:从一个表的主索引或候选索引拖到另一表的任一索引。
临时关系 是在打开的数据表之间用 set relation命令建立的临时关系,
或是在数据工作期窗口建立。建立了临时关系后,子表的指针会随主表记录指针的移动。表被关闭后,关系自动解除。
临时关系与永久关系的联系与区别,
临时关系与永久关系的联系与区别,
联系:
( 1)都明确建立关系的两张表之间在客观上存在着的一种关系
(一对多、一对一、多对一)。
( 2)永久关系在许多场合可以作为默认的临时关系。
区别:
( 1)临时关系是用来在打开的两张表之间控制相关表之间记录的访问;而永久关系主要是用来存储相关表之间的参照完整性,附带地可以作为默认的临时关系或查询中默认的联接条件。
( 2)临时关系在表打开之后使用 set relation命令建立,随表的关闭而解除;永久关系永久地保存在数据库中而不必在每次使用表时重新创建。
( 3)临时关系可以在自由表之间、库表之间或自由表与库表之间建立,而永久关系只能在库表之间建立。
五、参照完整性:
三类完整性实体完整性 (系统自动支持)
字段的数据完整性 ——字段的有效性规则记录的数据完整性 ——记录的有效性规则参照完整性 (系统自动支持)
相关表之间的数据一致性用户自定义完整性 (用户编程 )
由用户通过编程实现对数据完整性的约束通过字段级、记录级、表间三级完整性约束,有效地实现了数据的完整性和一致性,从而方便和简化了用户的数据维护工作,
参照完整性,控制不同表的之间关系的规则。
1,RI生成器窗口的打开
( 1)从数据库设计器快捷菜单选择编辑参照完整性命令。
( 2)选择数据库菜单中的编辑参照完整性命令。
( 3)在数据库设计器中双击两个表之间的连线,并在编辑关系对话框中选定参照完整性按钮。
2,RI生成器窗口的组件
RI生成器窗口具有更新规则、删除规则和插入规则 3个选项卡,
级联、限制和忽略等选项按钮和一个表格。
3,参照完整性设置步骤
( 1)选定某一规则选项卡。
( 2)在表格中选定某行并设置两表的联接。
( 3)选定某一选项按钮。
( 4)浏览有关表的内容,检验设置的正确性。
作业:
1,建立名为 JXGL的项目文件,并按下列要求建立一个名为 JSK的数据库,
2.建立二张数据表及相应索引,其要求如表所示:
3.建立教师表与任课表之间的关联,关键字是 GH
字段,并按如下要求设置参照完整性:
·当删除教师表中记录时,自动删除任课表中的所有相关记录;
·对教师表中没有登记在册的教师,任课表中不能插入其任课记录。
字段名 宽度 验证规则及出错信息 默认值标题 索引教师表 GH C(5) 工号 主索引
XM C(8) 姓名 普通索引
XB C(2) ―性别只能为男或女,性别
CSRQ D 出生日期
GZSJ D ―工龄不超过 40年,参加工作时间
JBGZ N(7,2) ―基本工资在 400至
2000元之间,
基本工资
JL M 简历任课表 GH C(5) 工号 普通索引
KCH C(4) 课程号 普通索引
KCM C(14) 课程名称
KCS N(3) 4 课时数
XF N(3,1) ―学分大于 0‖ 1 学分
BJ C(20) 授课班级
Johnson 192-83-
7465
Alma Palo Alto A-101
Smith 019-28-
3746
North Rye A-215
Hayes 677-89-
9011
Main Harrison A-102
Johnson 192-83-
7465
Alma Palo Alto A-201
Jones 321-12-
3123
Main Harrison A-217
Lindsay 336-66-
9999
Park Pittsfield A-222
Smith 019-28-
3746
North Rye A-210
A-101 500
A-215 700
A-102 400
A-217 750
A-222 700
A-201 900
A-210 900
姓名 身份证号码 街道 城市 银行帐号银行帐号 存款余额
1,执行 A1=―计算机,命令后,再执行? type(,A1‖) 命令,结果显示 ( ) 。
A) A1 B) 计算机 C) C D) 6
2,下面各数中,属于常量的是 ( ) 。
A) –203.75 B) 计算机 C) T D) 9/3/01
3,依次执行 Ab=12和 aB=―VFP‖命令后,再执行?Ab+aB命令的结果是 ( ) 。
A) 12 B) VFP C) 12VFP D) VFPVFP.
4,系统变量有 70多个,这些变量名都是以 ( ) 开始 。
A) 字母 B) 汉字 C) 下划线 D) 数字
5,执行 dimension a( 5) 命令后,再执行? a( 5) 命令,结果显示 ( ) 。
A) 0 B) 1 C) a( 5) D),F.
6,执行? len(,VFP课程,) 命令后的结果显示 ( ) 。
A),VFP课程,B) VFP课程 C) 5 D) 7
7,执行? left(,VFP课程,,3) 命令的结果显示是 ( ) 。
A) VFP B) VFP课程 C) 3 D) 5
8,执行? round( 135.246,1) + 2%3命令的结果显示 ( ) 。
A) 135.25 B) 135.9 C) 137.2,D) 显示出错信息
9,执行? mod( 100,3) 命令的结果显示 ( ) 。
A) 1 B) 100 C) 3 D) 33.333
10,执行? str( 1234.56,8,len(,abc‖)) 命令的结果显示 ( ) 。
A) 1234.56 B) abc C) 1234 D) 1234.560
11,执行? val(,12+34‖) 命令的结果显示 ( ) 。
A) 12+34 B) 12.00,C) 46 D) 0
12,找出团员男生 ( 团员 L型,性别 C型 ) 的逻辑表达式是 ( ) 。
A) 团员 =.T,or 性别 = 男 B) 团员 or 性别 =男
C) 团员 =.T,and 性别 =―男,D) 团员 and 性别 =―男,
习题一,选择题
1.不能打开当前表编辑窗口的命令是( )。
A) append B) change C) edit D) replace,
2,1个字段名最少需要 1个字符,最多不能超过( )个字符。
A) 2 B) 5 C) 10 D) 254
3,基本上是由数码组成的学号或电话号码,设计结构时,一般采用 ( ) 数据类型 。
A) 字符型 B) 数值型 C) 备注型 D) 序号型
4,在设计表结构时,允许用户定义字段宽度的数据类型是 ( ) 。
A) 数值型 B) 日期型 C) 逻辑型 D) 备注型
5.不能关闭当前表文件的命令是 ( ) 。
A) browse B) use C) colse table D) clear all
6.如果要以独占方式打开 db2.dbf表,应使用的命令是 ( ) 。
A) use db2 all B) use db2 lock C) use db2 shared D) use db2 exclusive
7,对于当前表来说,依次执行 List命令和? Eof( ) 命令后,最后显示的内容是 ( ) 。
A) 1 B) 10 C),T.,D),F.
8,物理删除当前表中所有记录的命令是 ( ) 。
A) delete all B) packC) recall all D) zap
9,如果在第 1,2,5工作区中分别打开一个表,则执行 use stu23 in 0命令后,
stu23.dbf表打开在 ( ) 工作区中 。
A) 0 B) 1 C) 3 D) 6
10,对 82年出生而且是团员的记录 ( 出生日期,birth,D;是否团员,member,
L),建立筛选条件的命令是 ( ) 。
A) set filter to birth=1982 and member=.T.
B) set filter to year( birth) =1982 and member
C) locate for birth=1982 and member=.T.
D) index on birth=1982 and member=.T,to stu9
11,项目文件的默认扩展名是 ( ) 。
A) item B) dbc C) dbf D) pjx
12,如果要在项目中创建程序文件,应该选用 ( ) 选项卡 。
A) 数据 B) 文档 C) 类 D) 代码,
13,如果要打开,数据库设计器,工具栏,可以选择 ( ) 菜单?选择,工具栏,
进行操作 。
A) 文件 B) 显示,C) 格式 D) 工具
16.在“打开”对话框中,如果要在文件列表框中显示数据库文件,则应在( )列表框中选择“数据库( *.dbc)”。
A)搜寻 B)文件名 C)文件类型 D)数据库名