vfp6.0 教程第4章数据库与表
第4章数据库的建立与维护(实验指导)
第4章数据库的建立与维护(实验指导)
实验一
实验题目:建立数据库。
实验要求:按学号建立文件夹,在该文件夹中建立数据库MAINDATA,随后在该数据库中建立学生表和学生成绩表,并输入本班学生的记录信息。
注意事项:为数据库及相关对象起有意义的名称,不要用系统的默认名。
实验步骤
1.建立文件夹:双击我的电脑→本地磁盘(E:\)→右击空白处→新建→文件夹→右击该新建文件夹→重命名→以自己学号命名(如:230760410)。
2.启动VFP:单击开始菜单→程序→Microsoft Visual FoxPro 6.0 →Microsoft Visual FoxPro 6.0
3.设置默认目录:单击工具菜单→选项→文件位置选项卡→双击默认目录→输入路径(如:E:\230760410) →确定→设置为默认值→确定按钮。
4.建立数据库MAINDATA:单击文件菜单→新建,选定文件类型为数据库,单击新建文件按钮。在创建对话框的数据库名框内输入:MAINDATA,单击保存按钮,系统建立空数据库,并进入数据库设计器—MAINDATA。
5.创建数据库表XSB:单击文件菜单→新建,选定文件类型为表,单击新建文件按钮,在创建对话框的输入表名框内输入:XSB,单击保存按钮。
输入字段信息:在表设计器—XSB中输入各个字段的字段名、类型、宽度、小数位数,字段有效性的规则、信息和默认值→确定。
输入记录信息:遵循已经定义的表结构输入相应的表记录。
6.创建数据库表CJB:单击文件菜单→新建,选定文件类型为表,单击新建文件按钮,在创建对话框的输入表名框内输入:CJB,单击保存按钮。
visualfoxpro6.0数据库上机教程
供应链管理
VFP6.0数据库系统可以用于记录和管理企业的生产计划、生产流程、生产进度和生产结果,实现生产过程的全面数字化管理。
生产管理
VFP6.0数据库系统可以用于记录和管理企业员工的基本信息、绩效评估、培训计划等,提高人力资源管理的效率和准确性。
过程
类似于过程,但函数有一个返回值,可以在程序中直接使用。
函数
过程和函数在调用时需要传递参数,了解参数传递的方式(按值传递、按地址传递)和特点,有助于更好地使用过程和函数。
参数传递
VFP6.0数据库系统的过程与函数
05
CHAPTER
VFP6.0数据库系统的实际应用
VFP6.0数据库系统在企业管理中的应用
VFP6.0数据库系统在财务管理中的应用
物流计划管理
物流跟踪管理
物流数据分析
VFP6.0数据库系统在物流管理中的应用
VFP6.0数据库系统可以用于记录和管理企业的物流计划,包括运输计划、仓储计划等,实现物流计划的优化和自动化。
VFP6.0数据库系统可以用于实时跟踪和管理企业的物流状态,包括货物运输情况、货物到达时间等,提高物流管理的透明度和效率。
visualfoxpro6.0数据库上机教程
目录
VFP6.0数据库系统概述 VFP6.0数据库系统的安装与配置 VFP6.0数据库系统的基本操作 VFP6.0数据库系统的程序设计 VFP6.0数据库系统的实际应用
visual foxpro6.0全套教案
第1章Visual FoxPro 6.0概述
•Visual FoxPro数据库是一个关系型数据库。
–Windows环境。
–FoxBASE+汉字操作系统(UCDOS)
•Visual FoxPro不需要用户编程就可以建立一个面向对象的数据库应用程序,所以在众多的数据库软件中,Visual FoxPro脱颍而出,成为一种通用的数据库软件。
1.1 Visual FoxPro 6.0的发展过程
•主要经历了3个阶段
1.dBASE阶段
2.FoxBASE和FoxPro阶段
3.Visual FoxPro阶段
•1995 VFP 3.0版运行于Win3.x、Win9X和WindeosNT环境
•1997 VFP 5.0中文版。
•1998 VFP 6.0中文版。
VFP6.0的功能
1)为某种信息创建一个表,利用表存储相应的信息。
(2)定义表间的关系,将各表中的数据地联系在一起。
(3)创建查询搜索记录,对记录排序和分组并根据查询结果创建报表、表及图形。
(4)可以通过视图更新表中的数据及从网上取得数据,从而收集或修改远程数据。
(5)创建表单来直接查看和管理表中的数据。
(6)可以创建一个报表来分析数据或将数据以特定的方式打印出来。
1.2.2 VFP的特点
1.利用向导来操作,方便易用
2.可视化开发
3.事件驱动
4.面向对象编程
5.生成器
6.组件库
7.VFP基础类
8.活动文档
9.对动态图形文件的支持
9.程序语言的增强
10.支持OLE拖放
11.新增和改进的生成器和编译器
1.3 VFP6.0系统的软硬件环境
•软件环境
–Windows 98
第4章 VisualFoxPro数据库操作
2.关闭表
为了保证更新后的内容能够完整地写入所操作的 表中,在对表操作完成后,应当及时关闭该表, 可以通过使用USE命令关闭该表。
阶段4 修改表结构
在需要对表结构进行调整时,可以对表结构进
行修改,修改表结构可以在打开表之后,执行菜 单命令 【显示】【表设计器】,系统将弹出【 表设计器】对话框。此时,用户就可以在该对话 框内进行表结构的修改。 修改表结构的命令格式为:
阶段7 删除记录
在Visual
FoxPro中,可以对不用的记录进行删 除,删除记录分为逻辑删除和物理删除两种。 1.逻辑删除 逻辑删除记录,顾名思义,不真正地将记录删 除而是在记录前添加删除标记。但是如果将记录 彻底删除,必须要在该记录前添加删除标记。
2.物理删除
物理删除就是将逻辑删除的记录彻底从磁盘上
2. SKIP命令 作用:相对定位记录。当记录指针相对当前位置 移动时,利用 SKIP命令向前或向后移动若干条 记录位置。
命令的格式为: SKIP [<记录数>]
3. LOCATE命令 作用:记录的查询定位。按查询条件定位记录的 指针。
命令的格式为:
LOCATE [范围] FOR <条件表达式>
删除。彻底删除记录必须先逻辑删除,然后再做 物理删除且被删除的记录将不能恢复。物理删除 的命令是 PACK,或者执行【表】【彻底删除】 菜单命令来完成。 若要将表中的所有记录全部删除,可执行ZAP 命令一次性物理删除表中全部记录。
VisualFoxPro6.0数据库及其操作
2. 关闭数据库 ⑴ 项目管理器:选定要关闭的数据库,按“关闭” 按钮 ⑵ 命令:CLOSE DATABASES
3. 删除数据库 ⑴ 项目管理器:选定数据库后,按“移去”按钮, 将从项目中移去选定的库文件;按“删除”按钮, 则将选定的库文件从磁盘上删除 ⑵ 命令:DELETE DATABABE <数据库文件名>
货币型:货币单位,如货物的价格。货 币型数据的表示方法是在数据前添加符 号$。
数值型:可以是正数或负数,也可以是整数或 小数,数据长度最多为20位。如表XSDA中的 “入学分”字段的数据类型可以设置成数值 型。
铜陵学院数学与计算机系
数据 类型
浮点型: 功能上类似于“数值型”,其长度 在表中最长可达20位。
铜陵学院数学与计ቤተ መጻሕፍቲ ባይዱ机系
3.1.3 数据库的基本操作
1. 打开数据库 ⑴ 项目管理器:选定要打开的数据库,按
“打开”按钮 ⑵ 菜单:选择“文件/打开”菜单命令 ⑶ 命令 ① 打开数据库文件: OPEN DATABASE [<数据库文件名>] ② 打开数据库设计器: MODIFY DATABASE [<数据库文件名>]
铜陵学院数学与计算机系
3.2 数据表的设计与建立
1. 数据表和数据库
表(Table)是处理数据和建立关系型 数据库及应用程序的基本元素。数据库 (DATABASE)是表的集合
vfp6.0课件
返回目录
Visual FoxPro 6.0 第一章
第一节 数据库简介
返回目录
信息: 数据: 数据处理: 数据库: 数据库管理系统: 数据库系统:
信息是事物状态、运动方式
和相互关系的表形式。
Visual FoxPro 6.0 第一章
第一节 数据库简介
返回目录
信息: 数据: 数据处理: 数据库: 数据库管理系统: 数据库系统:
数据处理 是指对数据进
行收集、存储、分类、计算、 统计、检索和传输的过程。 数据处理的目的是要得到信 息。
数据处理经历了三个阶段的 发展:人工管理、文件系统 管理、数据库系统管理。
Visual FoxPro 6.0 第一章
第一节 数据库简介
返回目录
信息:
数据库是有组织的、可共享的相
数据: 数据处理:
项目管理器的界面: 1. 选项卡: 全部、数据、文档、类、代码、其他 2. 按钮: 新建、添加、修改、移去、连编、 打开/关闭/运行/预览/浏览
演示操作
Visual FoxPro 6.0 第一章
第五节 项目管理器
返回目录
项目管理器的打开: 方法一:Modify project [<文件路径>]<文件名> 方法二:“文件”|“打开”
返回目录
第四节 Visual FoxPro系统概述
VF6.0数据库表-单元测试
VF6.0数据库表-单元测试
一、单项选择题
1、下列不能作为字段名的是()
A、价格
B、价格
C、价格_a
D、价格_5
2、某数值型字段的宽度为9位,小数点数为3位,则该字段的最大值是()
A、999999999
B、999
C、999999.999
D、99999.999
3、不能作为索引关键字的数据类型的是()
A、数值型
B、日期型
C、字符型
D、备注型
3、复制C:\JSGL\JSDA.DBF表中所有女教师的数据创建新表JSDA2.DBF,应该使用的命令是
()
A、 USE C:\JSGL\JSDA.DBF
COPY TO C:\JSGL\JSDA2
B、 USE C:\JSGL\JSDA.DBF
COPY TO C:\JSGL\JSDA2 FOR 女教师
C、 USE C:\JSGL\JSDA2.DBF
COPY TO C:\JSGL\JSDA FOR 性别=“女”
D、 USE C:\JSGL\JSDA.DBF
COPY TO C:\JSGL\JSDA2 FOR 性别=“女”
4、下列关于数据库表的叙述中,错误的是()
A、一个数据库表只能属于一个数据库
B、一个数据库表可能属于多个数据库
C、数据库表可以移出数据库成为自由表
D、自由表可以添加到数据库成为数据库表
5、每个字段有4个属性,下面哪个不属于字段的属性()
A、字段名
B、字段类型
C、字段宽度
D、字段属性
6、下列可以作为字段名的是()
A、NAME+1
B、NAME-9
C、NAME_9
D、9NAME
7、下面关于数据库表和自由表的叙述,错误的是()
A、数据库表是属于某个数据库的表
VFP60数据库及其操作
17
2011年秋
VFP程序设计
2)打开数据库 : 格式:OPEN DATABASE [数据库文件名 |?][EXCLUSIVE][SHARED] 说明: ①如果这个数据库不在当前目录下,那么“数据库文 件名”应带有路径,如果不带参数或者使用“?”号, 则弹出“打开”对话框,提示用户选择要打开的数据 库。 ② 如果带参数EXCLUSIVE,则以独占方式打开数据 库,其他用户无法访问。
11
2011年秋
VFP程序设计
– 存储过程
• 存储过程类似于编程时的函数,将常用的或很复杂的 工作,预先用SQL语句写好并用一个指定的名称存储 起来,那么以后要求数据库提供与已定义好的存储过 程的功能相同的服务时,只需调用执行,即可自动完 成命令。
– 查询 • 查询是一种相对独立且功能强大、结果多样的 数据库资源,利用查询可以实现对数据库中数 据的浏览、筛选、排序、检索、统计和加工等 操作;利用查询可以为其他数据库提供新的数 据表,可以从单个表中提取有用的数据,也可 以从多个表中提取综合信息。
• 日期型数据必须与日期格式相符,默认为 MM/DD/YY, 也可自行设置:工具——选项——区域 • 备注型数据的输入:memo——Memo • 通用型数据的输入:gen——Gen
8
2011年秋
VFP程序设计
二、修改表结构——表设计器
表设计器的打开: • 打开表后,显示——表设计器
vf教程
出生日期 婚否 基本工资 电话号码
.T. .T. .T. .F. .T.
760.50 860.50 660.50 470.00 650.50 450.00
88654230 87635210 88236711 88248243 89546733 88344411
04011 林临 男 助教
19770722 .F.
VFP6.0 教程
目 录
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 基础知识 表的创建与维护 数据库的创建与操作 查询与视图 结构化程序设计 面向对象程序设计基础 表单设计 报表和标签设计 菜单设计 应用实例
2015/8/4
2
第一章 基础知识
本章知识主要包括课本的第1、2章内容,通过 本章的学习要求了解数据库的发展历程、数据库的 基本概念,掌握数据模型的分类、关系型数据库的 特点及关系运算、VFP6.0数据的分类、常用函数及 表达式的书写与计算等。
2015/8/4
实发
12
关系运算综合举例:基本工资介于400——500元
之间的职工的职工号、姓名和津贴
职工简况表
职工号 姓名 性别 职称
01001 03021 02103 02061 01045
张虹 吴言 朱呈 田添 刘柳
女 男 男 女 女
副教授 19580223 教授 19540412 讲师 19680524 助教 19761212 讲师 19680621
VFP6.0数据库(表)的概念及操作(全-恒风收藏)
第二章 VFP数据库(表)的概念及操作
1. 表的概念
表(数据表):
是指存放在磁盘文件中的一张二维表。
自由表:不属于任何数据库的表。
数据库表:包含在一个数据库中的表。
表文件名:
表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。
备注文件名:
当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文件名。
表结构:存储表记录的公共结构。(就是指一张表的表头结构,即字段的属性)。
记录:表中的一行。它是多个字段的集合,同一张表的每个记录都有相同的字段。
字段:表中的一列。它规定了数据的特征。
关系型数据表的特点:
(1)每一个字段不可再分解,也不能有名字相同的字段;
(2)每一列中的数据都有相同的数据类型;
(3)表中没有内容完全相同的行(记录)。
2. 字段的基本属性
字段的属性:
包括:字段名、数据类型、字段宽度、小数位数、空值支持
字段名:
即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。
VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。
数据类型:指该字段的数据特征。
字段宽度:指该字段所能容纳数据的的最大字节数。
小数位数:指数值型数据将保留几位小数。此时的字段宽度 = 整数位数+1+小数位数。
NULL 值(空值):
第4章+VFP的基本操作
l <>:其中的内容是用户的选择项,通常有多种可能供用户选择一种。 若<>不在[]内,则为必选项,即用户必须选择多种可能中的一种;若< >在[ ]内时,当不选“[ ]”中的内容时,其“<>”中的内容也不能选,而 当选择“[ ]”中的内容时,其“[ ]”中的“<>”内的内容就为必选项。但在程 序输入时或在命令窗口中输入时均不书写这对“[<>]”,而只写其中的参 数的内容。
第 12 页
共 109 页
目 录
上一步
下一步
关 闭
(5) 虽然命令窗口可以上下左右滚动,也可以在一行把命令 输完,但屏幕的左右滚动会很不方便,这时不妨尝试一下 续行操作。输入命令时可以在命令的关键字或子句之间加 分号(;),然后按回车键,再在下一行输入命令的剩余部 分,这样就可以把一条长命令分成好多行来写。进行续行 操作,应注意以下几点: l 命令的最后一行不能以分号结尾。如: l REPLACE ALL 实发工资 WITH (基本工资+职务津贴+奖金 -养老保险)*1.03 FOR 工龄>20 l 当一条命令被分成多行输入时,如果想同时使用&&命 令加入一些注释,此时注释不能出现在分号之后,而只能 将注释放在命令的最后一行的后面。 l 当准备执行一个被分成多行的命令时,可将光标放在该 命令的任意一行上,然后按下Enter键。
第 14 页 共 109 页
目 录
数据库原理与应用(VFP)习题参考答案
数据库原理与应用(VFP)习题参考答案
第1章概述
一、填空题
1.1数据与信息既相互联系,又有区别。数据是信息的表现形式,是外在的表示;而信息是数据所隐含的联系,是内在
的表示。信息通过数据符号进行表示、传播,对数据进行处理获得的数据才是信息,可以说信息是数据的浓缩和精华,是有用的数据。
1.2 数据处理包括数据的采集、整理、存储、分类、索引、排序、检索、统计、维护、传输、输出和数据安全等一系
列的操作过程。
1.3人工管理、文件系统管理和数据库系统管理。
1.4 数据结构、数据操作和数据的约束条件。
1.5层次模型、网状模型和关系模型。
1.6 根据实体集之间的联系方式不同,可以分为:一对一、一对多与多对一和多对多。
1.7传统的集合运算有并、交、差和笛卡尔积运算。
1.8专门的关系运算有选择、投影和连接运算。
二、单项选择题
1.9数据库系统与文件系统的主要区别( )
A数据库系统复杂,而文件系统简单
B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可解决
C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件
D.文件系统管理的数据量较少,而数据库系统可以管理庞大数据
1.10 DBMS是( )。A.操作系统的一部分B.在操作系统支持下的系统
c.一种编译程序D.应用程序系统
1.11数据库三级模式体系结构的划分,有利于保持数据库的( )
A。数据独立性B.数据安全性c.结构规范化D.操作可行性
1.12数据库系统的独立性是指( )。
A.不会因为数据的数值变化而影响应用程序
B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
VFP 6.0第4章Visual FoxPro数据库及其操作
3.工作区中数据的访问 对非当前工作区的表的字段进行操作时,可以 不转换工作区,在当前工作区中利用工作区的别名 或表的别名引用另一个表的数据。表示为: 别名.字段名 别名 字段名 别名->字段名 别名 字段名 注意:只有已打开的表方可在SELECT命令中使用其 别名。 例4.10 工作区别名应用实例 close all open database jxgl use xsqk alias da in a 24 use xscj alias cj in b
12
4.3 数据的查询
查询就是在表中查找用户指定条件的记录和字段。 4.3.1 顺序查询 顺序查询就是在表文件中依次查找满足条件的 记录。也称直接查询,包括LOCATE和CONTINUE 两条命令。 格式: LOCATE [<范围>][ FOR <条件>] [WHILE <条件>] CONTINUE 格式:在指定范围内搜索符合条件的记录。
22
(2)打开表的同时指定工作区命令 格式:USE<表名>IN<工作区>[ALIAS<别名>] 功能:在指定的工作区打开表,但不改变当前所在 的工作区,若改变工作区还需使用SELECT命令。 例4.9 利用USE命令在不同的工作区打开表实例。 close all open database jxgl use xsqk use xscj in 2 ?select() select 2 ?select() list
全国计算机等级考试二级教程(VFP6.0)
④自然联接
在联接运算中,按 照字段值相等为条件进 行的联接操作称为等值 联接。自然联接是去掉 重复属性的等值联接。
等值联接
不投影 重复字段
13/17
1.3数据库设计基础
1.3.1数据库设计步骤
③表中字段必须是原始数据 或基本数据元素
表中不应包括通过计算 1.设计原则 可以得到的“二次数据”或 ①遵从概念单一化“一 多项数据的组合。 事一地”原则 例如在职工表中,如果 一个表描述一个实体或实体间的 一种联系。避免大而杂的表,首先分 有了身份证号字段,就不应 离需要作为单个主题而独立保存的信 再有年龄和出生年月字段。 息,将不同信息分散在不同表中。 ④用外部关键字保证
学生 名
成 绩
学生 名
成 绩
专业系 课程 任课
学生 选课
③关系数据模型 用二维表结构来表示实体及实体间的联系的模型称为关系模型。 操作的对象和结果都是二维表。它描述一致、模型单一、理论完 备、易学易用,因此应用广泛。新推出的数据库系统几乎都是关系型的。
7/17
1.2关系数据库
1.2.1 关系模型
(1).关系术语 一个关系就是一张二维表,每个关 系有一个关系名,在VFP中,一个关系 存储为一个文件,文件的扩展名为 “.DBF”,称为“表”。
14/17
2.设计步骤
①需求分析;②确定表;③定字段;④定联系;⑤求精。 (3)确定所需字段 ①每字段直接和实体相关。 (1)需求分析 ①信息需求。数据、类型、域 ②以最小逻辑单位存储信息。 ②处理需求。功能、方式、场合 ③表中字段必须是原始数据。 ④确定主关键字字段。 ③安全性和完整性要求。 (4)确定联系 多交流、多收集、耐心、细致, ①一对多联系 。 “一方”的 弄清业务流程、瓶颈问题,收集报 表、合同、档案、单据、计划等等 主关键字段应在“多方”的表中。
VFP4
子表则使用普通索引。
• 一对一关系中,则两表都必须是主或侯选索引
⑶永久性关系的建立: • 在数据库设计器中建立 • 通过命令建立 在创建表子表时建立 CREA TABL cj(xh c(6),kcdh c(6),cj n(3,0),; FORE KEY xh TAG xh REFE xs) 两张表都已经存在 ALTE TABL cj ADD; FORE KEY xh TAG xh REFE xs (4)永久关系的删除
4.4
数据字典
数据字典:是包含数据库中所有表信息的一张表。
记录了数据库中数据的数据。 例如:长表名、长字段名、有效性规则、输入掩码、 显示格式、永久关系、关键字等
4.5 数据库表字段的扩展属性
字段扩展属性保存在库表所在的数据库文件中
1. 字段的显示属性(格式、输入掩码、标题)
• 字段的格式(Format)——P84 • 输入掩码(Input Mask) • 字段的标题(Caption)和注释(Comment) 注意:字段名和字段标题的区别
4、确定表之间的关系
• 定义关系,利用关系来查找数据库中有联系的信息 *关系的种类: 关系的种类: 关系的种类 一对多关系(主表XS,子表CJ) 一对多 多对多关系(甲表XS,乙表KC;纽带表CJ) 多对多 一对一关系(不常用) 一对一 • 分析并确定表之间关系 确定每张表数据和其它表中数据的关系,必要时, 可在表中加入字段或创建新表来明确关系
VFP 6.0数据库基本操作
c)数据库中,常量分为字符型常量、数值型常量、逻辑型常量、日期型常量,注意它们的格式,变量有字段变量和内存变量
i.给内存变量赋值的简单命令:
格式1:store <表达式> to <内存变量表>
格式2:<内存变量>=<表达式>
练习:? store 32 to x ,y ,z
练习:
gl=20
store 65 to gz
store“讲师”to zc
? gl>=20 .or. zc<>“讲师”
? gl>=20 .and. zc<>“讲师”
? gl>=25 .or. .not.gz<=100 .and. zc=“讲师”
? gl>=25 .or.gz<=100 .and..not. zc=“讲师”
字段名类型宽度小数位
CX N 3 0
YFS N 6 2
字段数据的替换:在命令窗口中输入命令:
LIST
GO 3
REPLACE YFS WITH JBGZ+BT+JJ
LIST
REPL ALL YFS WITH JBGZ+BZ+JJ
REPL ALL SFS WITH YFS-KK
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 主索引图标
4.5.6 数据库表的添加和移去
• “项目管理器”窗口 • “数据库设计器”窗口
–如何打开数据库设计器?
• 项目中:库名——“更改”按扭 • 菜 单:“显示”菜单——数据库设计器 (要求数据库打开) • 命 令:modify database
数据库表的添加和移去
• 命令
– 添加 – 移去 (数据库处于打开状态,且为当前) Add table 表名 Remove table 表名 [delete]
4.2.1 数据库的创建
• 界面方式
– “项目管理器”窗口
• 创建的数据库自动添加项目
– “新建‖对话框
• 菜单 :“文件”——“新建” • 工具栏:“新建”按钮 • 创建的数据库不会自动添加到项目
创建数据库后,将打开“数据库设计器”窗
口,显示对应的 “数据库设计器”工具栏
数据库的创建
• 命令方式
表的触发器
• 触发器概念
– 插入、删除、更改记录后运行的一段代码, 为了检验某个规则或者对关联的表进行相应 的操作 – 真——继续,假——“触发器失败”提示框
• 内容
– 表达式 – 存储过程(可以手工编写,也可以用参照完整性
生成器生成)
表的触发器
例1:js表中插入记录的gh字段不为空 插入触发器 not empty(js.gh) 例2:每卖出一件商品,“商品”表中库存减少(更新), 当库存小于一定数量时,需要定货(即在“定货”表 中加一条记录) 解决办法:在“商品”表的更新触发器中加入存储过 程 if 库存<=定货库存 insert into 定货(商品名,定货) values(商品.商品名,.t.) endif 例3: xs表删除记录时,要求cj表删除相关记录 (参照完整性生成器)
数据库的使用
• 关闭数据库
– 项目管理器 – Close database 关闭当前数据库 close database all 关闭所有的数据库
• 删除数据库
– 项目管理器 – Delete file
• 修改数据库 (打开数据库设计器)
– “显示”菜单——数据库设计器 – Modify database
当在数据库中移去或删除表时,触发器被删除,
但相关的存储过程依然存在。
4.5.4 数据库表的约束机制及其激活时机综述
约束机制 Null有效性 字段有效性规则 记录有效性规则 候选/主控索引 级 字段 字段 记录 记录 激活时机 浏览中离开字段,或insert、replace命令 浏览中离开字段,或insert、replace命令 发生记录更新 发生记录更新
• 实现机制:
– 建立在永久关系基础上,根据设置的参照完 整性规则系统自动生成规则的程序代码。 – 规则代码保存在数据库的存储过程中 – 规则的实施由主表、子表的触发器完成 – 例:xs、cj间的更新级联
4.3 数据库的使用
• 打开数据库
– 界面方式 项目管理器/菜单/工具栏 – 命令方式 open database open database 数据库名 exclusive|shared open database db1 open database db2 open database db3 – 可以同时打开多个数据库,最后打开的为当前数据库 – 项目中包含的数据库随项目的关闭而关闭
可为函数 e.g. date() –字段未设默认值,且不允许null ,则字段 默认值为 “ ”,0,.f.,{//}
字段的默认控件类
• 匹配字段类型到类
– 作用: 指定在使用“表单向导”生成表单或从数据环 境拖动字段到表单上时,该字段相应的控件类 – 例: gh gh 文本框 组合框 textbox combobox
• 界面方式
– 项目管理器窗口 – 数据库设计器窗口 – 在数据库打开时,通过菜单和工具栏新建
• 命令方式
Create Table-SQL
open database jxsj create table xsb name 学生表2 (xh c(8),xb c(2))
– 在数据库打开时,不使用Free关键字, 如果使用Free关键字,则创建的为自由表 create table xsc free (xh c(8),xb c(2))
表的触发器
• 创建触发器
– 表设计器—“表”选项卡—加入触发规则(表达 式) – Create trigger on 表名 for delete|insert|update As 表 达式
• 删除触发器
– 表设计器—“表”选项卡—删除触发规则(表达 式) delete trigger on 表名 for delete|insert|update
• 输入掩码
– 字段中输入数据的格式 每一位 X 9 例如:9999-9999999(电话) 999,999,999(数字) X99999(工号)
• 字段的标题和注释
– 标题:浏览窗口的列标题 – 注释:在表结构中对于字段的详细说明
字段验证
• 字段有效性规则和有效性信息
–规则:字段值合法的条件 –信息:不满足规则时的提示信息
4.4 VFP数据字典概述
• 数据字典
– 是存储在数据库中用于描述所管理的表和对象 的数据,即关于数据的数据,称为元数据
• 数据字典的存储
– 每个数据库的数据字典都存储在数据库文件中 – Use 数据库名.dbc browse
数据字典
• 数据字典可以创建和制定的内容
– 数据库表的主索引、永久关系、长表名、表注释、 字段级和记录级有效规则、存储过程、插入更新删 除事件触发器 – 正因为这张特殊的表的存在,库表比自由表多出一 些扩展属性 (4.5节) – 同时库表之间也可以保持数据的一致(4.6节) – 也可以用函数查看、设置数据库的属性(4.7节)
数据库的使用
• 设置当前数据库
– “常用”工具栏的数据库下拉列表 – Set database to 已打开的数据库
• 检查数据库有效性
– 有些操作可能破坏数据库的双向链接
• 移动或删除了数据库文件或表文件
– 检查数据库的有效性和更新链接的命令 Validate database recover – 要求数据库为独占方式打开的当前数据库
Valid子句 触发器
表单 表
wk.baidu.com
移出记录对应的控件 Insert、update、delete事件中,表中值改变
4.5.5 数据库表的索引
• 数据库表的索引增加一种,即主索引 • 设置主索引的注意事项
– 主索引表达式的值每条记录必须唯一 – 每张数据库表只能设置一个主索引
• 主索引的主要用途
– 设置永久关系
• 表注释
–表的说明信息,进一步说明表的含义
记录验证
• 何时设置:
– 一条记录的两个或多个字段需要满足某种规则
• 何时激活:
– 该记录值的改变被确认时,(记录指针移动, 关闭浏览窗口,执行修改命令) • 设置有效性规则时(字段级和记录级),确定后
将对表中已有记录进行检查,如果有记录不符合 规则,则规则设置失败!
• 一张表只能属于一个数据库 (后链)
Free table 表名
删除后链
4.5.7 有关数据库和库表的几点说明
• 应尽可能使用数据库表 • 引用非当前数据库中的表 jxsj!xs • 移动数据库文件时,应考虑一同移动表 文件,以保证前后链的一致性 • 不要轻易将数据库表移出数据库 • 多次修改数据库结构、表结构后,应进 行数据库清理 (“数据库”菜单/清理数据库)
程序设计语言 VFP
信息管理学院计算机系
第4章 数据库的创建和使用
4.1 VFP数据库概述
• 引入
– 表和表之间的关系的永久存储 – 表和字段的扩展属性
• 概念:
– 数据库是一个容器,是许多相关数据库表及 其关系的集合
教学管理数据库中表和表之间关系示意图
系代码表
教师表
课程表
学生表
任课表
成绩表
专业表
4.6 永久关系与参照完整性
在数据库容器中,用户可以 • 为存在一对多关系的两张表创建永久关系, • 基于永久关系,创建两张表之间的参照完 整性规则
4.6.1 表之间的关系
• 关系的种类
– 一对一 – 一对多 – 多对多 js xs xs gz cj kc (主表—子表)
• 主关键字——主关键字 • 主关键字——外关键字 • 建立纽带表,将多对多关系分解为两个一对多关系 • 纽带表的主关键字由两个表的外关键字组成 cj xh+kcdh
表之间的关系
4.2 数据库的创建
• 数据库的工作环境
– 存储一系列的表 – 在表间建立关系 – 设置属性和数据有效性规则是相关的表协同工作
• 数据库文件
–文件类型:
(VFP)
• 数据库文件、数据库备注文件、数据库索引文件 • 扩展名:DBC DCT DCX
–数据库文件和表及字段的关系
• 数据库文件并不在物理上包含任何附属对象(表或字段等),在数 据库文件中仅存储了指向表文件的路径指针
4.5.3 数据库表的表属性
• 设置
– 表设计器的“表”选项卡 – 部分属性可用Create Table-SQL
• 保存
– 数据字典对应该表的Property中
长表名和表注释
• 长表名
–长表名最大长度>200 –在数据库打开时,可以用两种方法打开表 use 表名/use 长表名
• 使用长表名打开表时, 数据库必须打开且为当前数据库 • 打开库表时所在数据库若未打开,则自动打开数据库。
4.5 数据库表
• 自由表的属性
• 数据库表的扩展属性 – 主索引、永久关系、长表名、表注释、字段级和 此外,利用数据库所提供的数据字典功能,
记录级有效规则、存储过程、触发器
数据库表具有自由表的所有功能,
– 字段名、字段类型、字段宽度、索引、NULL
还可以扩展数据库表的管理和控制功能等。
4.5.1 数据库表的创建
• 方法(参照完整性生成器) 在数据库设计器中
– 右键单击永久关系连线—参照完整性 – 单击永久关系连线—“数据库”菜单— 编辑关系—参照完整性
• 级 别
– 级联(主表更新、删除子表) 数据一致 – 限制(子表限制主表更新、删除, 主表限制子表插入) 数据一致 – 忽略 (不考虑一致性)
参照完整性的实现机制
cj>=0 and cj<=100 ―成绩要在0~100之间”
–注意:规则是条件表达式,信息是“字符串 ”
如果表中已有记录不满足规则,如何设置规则?
必须选择对现有数据不做检查
默认值
• 默认值
–添加新记录时,为字段指定的最初的值 –默认值必须是一个与字段类型相同的表达式
– “字符”、.逻辑.、{月/日/年}
– 是用来控制数据的完整性,尤其是控制数据库中相 关表之间的主关键字和外部关键字之间的数据一致 性的规则
• 参照完整性的一般要求
– 子表中的每一个记录在对应的父表中有一个父记录 – 在子表中插入记录时,其外部关键字必须与主表的 主关键字值对应 – 在主表中删除记录时,删除子表中的对应记录
参照完整性的设置
4.5.2 数据库表的字段扩展属性
• 设置
– 表设计器的“字段”选项卡 – 部分属性可用Create Table或Alter Table-SQL
• 保存
– 数据字典对应该字段的Property中
字段的显示属性
• 字段的格式
– 字段显示时大小写和样式 整个字段 A D T ! (在浏览窗口、表单或报表中)。
–CREATE DATABASE –CREATE DATABASE ? –CREATE DATABASE 数据库名
• 第1、2句命令会自动打开“数据库设计器”窗口 • 第 3句命令不会自动打开“数据库设计器”窗口
4.2.2 VFP数据库的组成
1. 数据库表
(从属于某一个数据库的表) – 数据库表与数据库的相关性是通过数据库表文件 (.DBF)与数据库文件(.DBC)之间的双向链接实现的
VFP数据库的组成
2. 视图
– 由一张表或多张表的数据构成的一张“虚表”, – 可以更新其中的信息,并将更新结果永久保存到磁 盘上,例:xm kcm cj – 本地视图、远程视图
3. 连接
– 是保存在数据库中的一个定义,指定数据源名称
4. 存储过程
– 是保存在数据库中的过程代码,包括用户自定义函 数、系统为保障参照完整性创建的函数。 – 在打开数据库时,存储过程被自动加载到内存,从 而可提高数据库性能,
• 教学管理系统中表之间的关系
4.6.2 表之间的永久关系
• 数据库表之间的永久关系是根据索引建立的
– 原因:可以根据索引关键字联系表
• 永久关系类型
– 一对一
• 主索引/候选索引——主索引/候选索引
– 一对多
• 主索引/候选索引——普通索引
• 永久关系的建立、修改、删除
4.6.3 参照完整性
• 参照完整性