版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章数据库系统基础知识
1.1数据库系统概述
1.数据处理
数据:
是对事实、概念或指令的一种特殊表达形式,可
以用人工的方式或自动化的装置进行通信、翻译
转换或者进行加工处理。它包括两类:一类是
能参与数字运算的数值型数据;一类是不能参与
数字运算的非数值型数据,如文字、图画、声音、
活动图象等。
数据处理:
是对各种类型的数据进行收集、存储、分类、计
算、加工、检索与传输的过程。
包括:收集原始数据、编码转换、数据输入、数
据处理、数据输出。
2.数据库系统
(1)数据库(DataBase)
定义:是以一定的组织形式存放在计算机存储介
质上的相互关联的数据的集合。
特点:具有最小的冗余度、具有数据独立性、实
现数据共享、安全可靠、保密性能好
(2)数据库管理系统(DataBaseManagement
System)
定义:是操纵和管理数据库的系统软件。Visual
FoxPro属于一种关系型数据库管理系统。
数据语言:
数据定义语言(DDL):用来建立所需的数据
库。
数据操作语言(DML):用来对数据库进行查
询和维护操作。
关系型数据库使用的标准语言是结构化查询语
言(StructuredQueryLanguage,SQL)。
(3)数据库系统(DataBaseSystem)
定义:是以数据库应用为基础的计算机系统。
组成:
数据库
硬件(计算机硬件设备)
软件(数据库管理系统、操作系统)
用户(应用程序设计员、终端用户、数据库管理
员)
分类:层次型数据库、网状型数据库、关系型数
据库
分代:第一代非关系型数据库系统,60年代末
问世,包括层次型和网状型。
第二代关系型数据库系统(RDBS),70年代
中期问世。
第三代对象-关系数据库系统(ORDBS、
OOBDS),80年代中期至今。
上述三个概念之间的联系:在数据库系统中通过
数据库管理系统来建立和使用数据库。
3.关系模型
三个领域:
现实世界一事物(对象、性质)
观念世界—实体(对象、属性)
数据世界一数据(记录、字段)
实体模型:即反映事物联系的实体。
数据模型:即描述实体模型的数据。
数据模型的分类:
层次模型(采用树型结构)
网络模型(采用无向图型结构)
关系模型(采用二维表结构)
关系模型的性质:
二维表的记录数随数据的增加而改变,但其字段
数是相对固定的;二维表中的每一列均有唯一的
字段名;二维表中不允许出现完全相同的两行二
维表中行的顺序、列的顺序均可以任意交换。
二维表的主关键字:超关键字:能唯一确定记录
的一列或几列的组合
候选关键字:最简练的超关键字
主关键字:候选关键字中的一个
外部关键字:当A表的主关键字被包含到B表
中时,则称A表的主关键字为B表的外部关键
字。
4.微机关系型数据库系统的发展
关系型数据库:即根据表、记录和字段之间的关
系进行组织和访问的一种数据库。
发布时
名称运行环境公司名称
间
dBASE,
dBASEII,
dBASE
DOSAshton-Tate
III,dBASElII
PLUS,
dBASE
Fox软件公
FoxBASE1.0DOS1987.2
司
FoxBASE+DOSFox软件公87.7/88.7
⑵00/2.10)司
Fox软件公
FoxPro1.0DOS1989
司
Fox软件公
FoxPro2.0DOS1991
司
DOS、
FoxPro2.5微软公司1993.1
WINDOWS3.x
DOS、
FoxPro2.6微软公司1994
Windows3.x
Visual
Windows3.X微软公司1996.1
FoxPro3.0
Visual
Windows95微软公司1997.2
FoxPro5.0
Visual
Windows98微软公司1998.1
FoxPro6.0
1.2VisualFoxPro6.0概述
1.VFP6.0的特点
完善了关系型数据库的概念,采用了Rushmore
技术,引入了SQL命令;支持多种数据交换格
式;采用了可视化的面向对象的程序设计方式;
提供了功能完善的集成环境和丰富的开发工具。
2.VFP6.0的用户界面[图例]
界面基本组成:标题栏、主菜单栏、工具栏、主
窗口、命令窗口、状态栏
系统工具一览表
各种菜各种工各种窗各种设各种生各种向
单具栏口计器成器导
文件菜常用工命令窗数据库文本框
表向导
单具栏口设计器生成器
表单控
编辑菜浏览窗表设计组合框交叉表
制工具
单口器生成器向导
栏
显示菜布局工代码窗表单设命令组查询向
单具栏口v\你r生成器导
格式菜调色板调试窗菜单设编辑框本地视
单工具栏口生成器图向导
打印预
工具菜编辑窗报表设表达式表单向
览工具
单口生成器导
栏
报表控一对多
程序菜查看窗标签设表单生
制工具表单向
单口vr\福an"成器
栏导
查询设
窗口菜跟踪窗类设计表格生报表向
计器工
单口器成器导
具栏
表单设一对多
帮助菜属性窗连接设列表框
出工报表向
单□计器生成器
具栏导
报表设
菜单菜标签向
出工查询和参照完
单通用字导
具栏视图设整性生
段窗口
数据坏计器成器远程视
境菜单图向导
数据库
表单菜邮件合
设计器项目管数据环自动格
单并向导
工具栏理器窗境设计式生成
项目菜导入向
口器器
单导
查询菜选项组图形向
单生成器导
报表菜数据透
(1)菜单操作方式
根据所需的操作从菜单中选择相应的命令(与
NORD类似)。每执行一次菜单命令,命令窗口
中一般都会显示出与菜单对应的命令内容。
利用工具菜单中的向导可以很方便地完成常规
任务。
(2)命令交互方式
根据所要进行的各项操作,采用人机对话方式在
命令窗口中按格式要求逐条输入所需命令,按回
车后,机器逐条执行。
(3)程序执行方式
先在程序编辑窗口中编完程序,再从程序菜单中
选择执行,或从命令窗口中输入DO命令,让
机器执行。
4.VFP9.0常用文件类型
VFP9.0常用的文件扩展名及其关联的文件类型
扩展
文件类型扩展名文件类型
名
生成的应用程
.app.frx报表
序
.exe可执行程序.frt报表备注
.Pjx项目.Ibx标签
.PJt项目备注.Ibt标签备注
.dbc数据库•prg程序
.det数据库备注.fxp编译后的程序
.dex数据库索引.err编译错误
.dbf表.mnx菜单
.fpt表备注.mnt菜单备注
.cdx复合索引.mpr生成的菜单程序
编译后的菜单程
.idx单索引.mpx
序
生成的查询程
.qpr.vex可视类库
序
编译后的查询
•qpx.vet可视类库备注
程序
.sex表单.txt文本
.set表单备注.bak备份文件
5.创建文件
新建各种类型的文件时,可以利用系统提供的相
应工具,以提高工作效率。新建文件时可用的设
计器和向导。
1.3项目管理器
1.项目管理器简介
项目:
是一种文件,用于跟踪创建应用系统所需要的所
有程序、表单、菜单、库、报表、标签、查询和
一些其他类型的文件。
项目管理器:[图例]
是开发VFP应用系统的一个工具,它生成一个
项目文件,项目文件的扩展名为.PJX,项目备注
的扩展名为:.PJT。
项目管理器窗口的组成:
由6大类数据项(全部、数据、文档、类、代码、
其他)和10个命令按钮(新建、添加、修改、
浏览、关闭、打开、预览、运行、移去、连编)
组成。
注:粗斜体表示的命令按钮根据用户选择的不同
对象相应地出现。
项目菜单的组成:13个子菜单(其中一部分与
项目管理器中的命令按钮功能相同)。
项目管理器的功能:组织和管理所有与应用系统
有关的各种类型的文件。
2.创建项目文件
用菜单方式:
打开文件菜单一新建一项目一新文件->
给出合适的项目文件名及保存位置一进入项
目管理器一开发应用系统一完成后关闭窗
口退出。
用命令方式:
语法:CREATEPROJECT<项目文件名〉
功能:打开项目管理器窗口进行应用系统的开
发。
3.修改项目文件
用菜单方式:
打开文件菜单一打开一找到所需的项目文
件并确定之一进入项目管理器一修改应用系
统一完成后关闭窗口退出。
用命令方式:
语法:MODIFYPROJECTv项月文殍名〉
功能:打开项目管理器窗口进行应用系统的修
改。
4.项目管理器的使用
可以利用项目管理器来创建、打开、浏览、修改
所有VFP文件并运行其中的表单、报表、标签、
菜单、程序等。特别是可以利用它来连编项目(追
踪这些文件的变化情况,包括它们之间的相关
性、引用和连接等,确保引用的完整,并加入自
上次连编之后更新了的一些组件)、应用程序(扩
展名为APP,在VFP环境下执行)和可执行文件(扩
展名为.EXE,能脱离VFP环境执行)。
1.4VFP9.0的一些规则
1.VFP9.0的命名规则:
・只能使用字母、下划线和数字。
・使用字母或下划线作为名称的开头。
•名称可以是1至128个字符,但自由表的字
段名和索引标识最多只能有10个字符。
•避免使用VisualFoxPro的保留字。
•文件的命名遵循操作系统的约定。
2.命令和子句的书写规则
(1)以命令动词开始;
(2)各部分之间要用空格隔开;
(3)命令、子句、函数名都可简写为前4个字符,
大、小写等效;
(4)一行只能写一条命令,总长度不超过8192个
字符,超过屏幕宽度时用续行符七”;
(5)变量名、字段名和文件名应避免与命令动词、
关键字或函数名同名,以免运行时发生混乱。
(6)命令格式中的符号约定:
命令中的口、I、…、<>符号都不是命令本身
的语法成分,使用时不能照原样输入,
其中:口表示可选项,根据具体情况决定是否
选用
I表示两边的部分只能选用其中的一个
...表示可以有任意个类似参数,各参数间用逗
号隔开
<>表示其中内容要以实际名称或参数代入
3.命令工作方式中的常见错误
(1)命令动词写错
(2)格式不符合要求
・标点符号不对(一定要用英文标点符号)
•缺少必需的空格或添加了不该有的空格
・数据类型不一致,要注意字符型、数值型、日
期型、逻辑型数据的书写格式
(3)打不开所需文件:没有正确输入盘符和路径
或文件名输错
第二章表的创建和使用
2.1VFP9.0表
1.表的概念
表(数据表):
是指存放在磁盘文件中的一张二维表。.dbf(招
FoxPro2.x版本中的数据库}
自由表:不属于任何数据库的表。
数据库表:包含在一个数据库中的表。
表文件名:
表名可以由字母、数字或下划线组成,系统自动
给出的扩展名为.DBFo
备注文件名:
当表中有备注型或通用型字段时,系统自动生成
与所属数据表的表名相同、扩展名为:.FPT的
文件名。
表结构:存储表记录的公共结构。(就是指一张
表的表头结构,即字段的属性}。
记录:表中的一行。它是多个字段的集合,同一
张表的每个记录都有相同的字段。
字段:表中的一列。它规定了数据的特征。
关系型数据表的特点:
(1)每一个字段不可再分解,也不能有名字相
同的字段;
(2)每一列中的数据都有相同的数据类型;
(3)表中没有内容完全相同的行(记录)。
2.字段的基本属性
字段的属性:
包括:字段名、数据类型、字段宽度、小数位数、
空值支持
字段名:
即每个字段的名字,必须以字母开头,可由字母、
数字、下划线组合而成,字母大、小写无区别,
但其中不许有空格或其它字符。自由表的字段名
最多由10个字符组成,数据库表的字段名支持
长名,最多可达128个字符。如果从数据库中移
去一个表,那么此表的长字段名将被截短成10
个字符。
VFP允许长字段名和长表名,但使用长名称对于
跨平台的操作可能遇到难以预料的结果。
数据类型:指该字段的数据特征。
字段宽度:指该字段所能容纳数据的的最大字节
数。
小数位数:指数值型数据将保留几位小数。此时
的字段宽度=整数位数+1+小数位数。
NULL值(空值):
无明确的值。NULL值不等同于零或空格。一个
NULL值不能认为比某个值(包括另一个
NULL值)大或小,相等或不同。
VFP9.0表中字段的数据类型
字段类代字段宽
说明使用示例
型号度
每个字
符为1
字母、汉个字学生的学号或姓
字符型C字和数字节,最名,“8199101〃
型文本多可有或‘李立‘
254个
字符
8个字
货币型Y货币单位-Hj-工资,$1246.89
包含有8个字
日期型D-Hj-出生日期,
年、月和
日的数据
{02/25/2000}
包含有
年、月、上班时间,
日期时8个字
T日、时、
间型节{02/25/2000
分、秒的9:15:15AM}
数据
“真”或课程是否为必修
1个字课,
逻辑型L“假”的-PR
布尔值.T.或.F.
在内存
中占8
个字
整数或小
数值型N节;在考试成绩,83.5
数
表中占
1至20
个字节
双精度双精度浮8个字实验要求的高精
B
型点数T度数据
与数值型
浮点型F
一样
整型I不带小数4个字学生的数量
点的数值
在表中
通用型GOLE对象占4图片或声音
个字节
不定长度在表中
备注型M的一段文占4学生简历
字个字节
每个字
任意不经符用1
字符型过代码页个字
(二进C修改而维节,最
制)护的字符多可有
数据254个
字符
任意不经
备注型过代码页在表中
(二进M修改而维占4
制)护的备注个字节
数据
3.表的基本操作
表的创建:设计表名和表结构、输入记录、建立
索引
数据维护:增加记录、修改记录、删除记录
创建表的主要步骤:设计表结构T输入记录
一建立索引一数据维护
4.关于表操作的几个基本命令
命令格式功能
CREATE表文件创建一个新的自由表的结构
名
USE表文件名打开指定的表文件
USE关闭当前表文件
LISTALL显示当前表的全部记录内容(类
似于DOS命令中的dir)
DISPLAYALL分屏式地显示当前表的全部记
录内容(类似于DOS中的dir/p.
DISPLAY显示当前表的结构(分屏显示)
STRUCTURE
LIST显示当前表的结构(不分屏显
STRUCTURE示)
MODIFY调出表设计器,修改当刖表的结
STRUCTURE构。
CLEAR清除主窗口中的所有内容
注思:
(1)必须先打开所需的数据表才可进行以上操
作;
(2)当带有命令子句时,只对指定的记录进行
操作;
(3)LIST命令的默认范围是所有记录,
DISPLAY命令的默认范围是当前记录。
2.2表结构的创建和修改
1.表结构的创建
创建表结构其实就是设计字段的基本属性。可以
使用表设计器、表向导或SQL命令来创建表结
构。
(1)使用表设计器创建表[图例]
步骤:
从文件菜单中单击新建T在新建对话框中选
择表并单击新文件一在创建对话框中给出文
件名并确定所需的保存位置一在表设计器对
话框中逐个输入所需字段(用[或鼠标换行),
全部字段输入完成后单击确定。
(2)使用表向导创建表
步骤:
从文件菜单中单击新建一在新建对话框中选
择表并单击向导一在表向导中做第1步:选取字
段,完成后单击下一步一在表向导中做第la
步:选择数据库,完成后单击下一步一在表向
导中做第2步:修改字段设置,完成后单击下一
步一在表向导中做第3步:为表建索引,完成
后单击下一步T在表向导中做第4步:完成,
选择表的保存方法,完成后单击完成T在另存
为对话框中给出文件名并确定所需的保存位置o
注意:
先选择一个与待建数据表类似的样表,再从中挑
选出所需的部分字段,然后在下一步根据实际需
要修改或直接采用原字段的宽度。
(3)使用CREATETABLE-SQL命令
该命令的一般格式为:
CREATETABLEldbf<<^件名〉(字段名1字
段类型[(字段宽度[,小数位数])][,轮名2字
段类型[(字段宽度[,小数位数])]]……)
例:CREATETABLExscj(xhc(8),xmc(6),xb
c(2),;cjn(5,l),ksrqd)
2.表结构的修改
(1)用表设计器修改
用菜单调出表设计器:
打开所需的表文件一单击显示菜单中
的表设计器-在表设计器对话框中对字
段进行修改一修改完毕单击确定并在消
息框中选择是。
用命令调出表设计器:
USE〈表文件名〉
MODIFYSTRUCTURE
(2)使用ALTERTABLE-SQL命令
功
命令格式示例
能
添
加
ALTERTABLExscjADDCOLUMNkcmcC(14)
字
段
命
名ALTERTABLExscjRENAMECOLUMNkcmcTOkc
字
段
删
除
ALTERTABLExscjDROPCOLUMNkc
字
段
2.3表记录的处理
1.记录的输入
(1)立即输入方式:
设计好表的结构后,系统会提示是否直接进入数
据输入状态。若选是,则进入编辑窗口,输完后
单击“X”按钮退出,系统自动存盘。需输入备注
型或通用型字段的数据时,双击“memo”或
“gen”,在新打开的编辑窗口中输入所需内容,
输完后单击“X”按钮系统自动存盘,退回到原窗
口,此时字段中的“memo”或“gerT变成“Memo”
或“Gen”。
(2)追加方式:
若设计好表的结构后并没有及时输入数据,则可
以用追加方式:
从文件菜单中(或从命令窗口中输入:USE表
文件名)打开所需表文件-从显示菜单中选
择浏览一再从显示菜单中选择追加方式一
在浏览窗口中输入所需记录。
不同追加方式适用的场合
追加记录的方式适用的场合
显示菜单中的追在现有数据表的尾部添加一个
加方式或多个新记录
表菜单中的追加在现有数据表的尾部添加一个
新记录新记录
从其它数据表中将符合要求
表菜单中的追加
(字段名和字段类型相同)的
记录…
记录添加在当前数据表的尾部
在当前表的末尾自动添加一个
或多个新记录。相当于显示菜
APPEND[BLANK]单中的追加方式。有BLANK时
添加个空记录,相当于表菜
单中的追加新记录。
APPENDFROM表从其它数据表中将符合要求
文件名[FIELDS(字段名和字段类型相同)的
字段名1,辍名记录添加在当前数据表的尾
2•••][FOR条部。相当于表菜单中的追加记
件]录…。
将符合要求的文本文件全部追
APPENDFROM文加在当前数据表的尾部。
本文件名SDF注意:文本内容要与表中的字
段结构相适应。
文件菜单中的导将其它类型的文件转换成一个
入完整的VFP数据表。
(3)使用INSERTSQL命令
该命令的一般格式为:
INSERTINTO<表名乂(字段名1[,字段名
2...])]VALUES(表达式1],表达式2...])
:INSERTINTOxscj(xh,xm,cj)VALUES
(”81991001”,“张良”,85.5)
2.记录的浏览
(1)通过浏览窗口
⑵通过BROWSE命令
BROWSE命令用来打开表的浏览窗口,可通过
不同的子句来实现对特定记录的浏览。
VFP命令中的常用子句
1)范围子句
子句格式功能
ALL表示对表文件的全部记录进行操作
表示对从当刖记录开始的共n个记录
NEXTn
进行操作,n为正整数
RECORDn指明操作对象是表文件的第D号记录
对从当刖记录起到文件结尾的全部记
REST
录进行操作
2)FOR子句
用于指明进行操作的条件。
格式:FORv条件〉
指明只对指定范围中那些符合给定条件的进行
当前操作。
例如:listNEXT6FORcj<85
3)WHILE子句
也用于指明进行操作的条件。
格式:WHILEv条件〉
例如:listNEXT6WHILEcj<85
4)FIELDS子句
用于指明当前的操作涉及到表文件的哪些字段。
格式:BROWSE[FIELDS字段名1,字段名
2……]
例如:BROWSEFIELDSxh,xm,cj
3.记录的定位
(1)系统对记录的三个控制标志
记录开始标志:位于第一个记录之前。其值用函
数BOF()进行测试。
记录指针标志:指向当前记录。其值用函数
RECNO()进行测试。
记录结束标志:位于最后一个记录之后。其值用
函数EOF()进行测试。
记录指针可以理解为保存当前记录号的变量,它
的初始值总是1,不可能为。或负数,最大值是
表中记录总数+1。
刚打开表时记录指针的情况
表中记录BOF()的RECNO()EOF()的
情况值的值值
无记录.T.1.T.
有记录.F.1.F.
(2)记录的定位方式
绝对定位:是指把指针移到指定的位置。
相对定位:
是指把指针从当前位置开始,相对于当前记录向
前或向后移动若干个记录位置。
条件定位:
是指按一定的条件在整张表或表的某个指定范
围中查找符合该条件的记录。
通过菜单进行定位
从表菜单中选择转到记录:
记录号——实现绝对定位
定位…——实现条件定位
通过命令进行定位
记录的定位
命令格式功能备注
将记录指针
绝对定
GOTOP定位到表文或GOTOTOP
位
件之首
将记录指针
GOBOTTOM定位到表文或GOTOBOTTOM
件之尾
将记录指针
GO<n>定位到指定
的n号记录
n为正值则向
下移动
将记录指针
相对定从当前记录n为负值则向
SKIP<n>
位向上或向下上移动
移动n个
无n向下移动
1个
按顺序搜索
LOCATE
表,直到找
条件定FOR〈条默认范围是所
到满足指定
位件》[范有记录
条件的第一
围]
个记录
4.记录的修改和删除
一张表用非只读方式打开后,即可通过菜单在浏
览窗口(或编辑窗口)中或从命令窗口中用命令
直接对其记录进行编辑、修改和删除。
(1)菜单方式
修改记录:
从表菜单中选择替换字段…一在替换字段对
话框中选择待替换的字段并构造出替换表达式
及替换条件一替换。
删除记录:
从表菜单中选择删除记录一在删除对话框中
选择删除范围和删除条件一单击删除按钮一
从表菜单中选择彻底删除一在消息框中单击
是。
删除记录包括两步:标记要删除的记录和彻
底删除带删除标记的记录
恢复带删除标记的记录:
从表菜单中选择恢复记录T在恢复记录对话
框中选择作用范围和条件一单击恢复记录按
钮。
(2)SQL命令方式(表事先可以不打开,适用于
编程工作方式)
修改记录:用UPDATE-SQL命令。
命令格式:UPDATE〈表名,SET字段1=表
达式1[,字段2=表达式2…];
WHERE条件表达式
例:UPDATExscjSETcj=cj*1.05WHERE
cj>80
删除记录:用DELETE-SQL命令。
命令格式:DELETEFROM〈表名>[WHERE
条件表达式]
例:DELETEFROMxscjWHEREcj<60
(3)在命令窗口中用VFP命令:
命令格式功能备注
BLANK:楂前
在当前表记录后插入一
的指定位个空记录
插INSERT置上插入
BEFORE:在
入[BLANK][BEFORE]一个空记
录或若干当前记录之前
新记录插入若干新记
录
CHANGE[FIELDS字在编辑窗LEDIT:调出编
修段名1,…][FOR条口显示要辑窗口
改件][LEDIT]修改的字REDIT:调B浏
[REDIT]段览窗口
把字段值默认范围是当
REPLACE字段名1用指定的前记录
WITH表达式1表达式进
替[ADDITIVE][,字段行替换。ADDITIVE:把
换名2WITH表达式如:工资备注字段的替
2[ADDITIVE]…]单中给某换内容添加在
[范围][FOR条件]些人长工原备注内容的
资后面
删DELETE[范对当前表默认范围是当
除围][FOR条件]中指定范前记录
围内满足
条件的记
录加上删
除标记*
将所有带DBF:不影响备
删除标记注文件
的记录从
PACK[MEMO][DBF]
表中抹去MEMO:从备
(不能再注文件中删除
恢复)未使用空间
删除当前
表中所有相当于
ZAP记录,只DELETEALL
留下表的+PACK
结构
取消当前
恢RECALL[范围]表中指定默认范围是当
复[FOR条件]记录上的前记录
删除标记
第三章数据库的创建和使用
3.1VFP数据库
1.数据库的基本组成
数据库由一个以上相互关联的数据表组成,可以
包含一个或多个表、视图、到远程数据源的连接
和存储过程。
视图(view):
一个保存在数据库中的、由引用一个或多个表、
或其他视图的相关数据组成的虚拟表,可以是本
地的、远程的或带参数的。
存储过程(storedprocedure):
是保存在数据库中的一个过程。该过程能包含一
个用户自定义函数中的任何命令和函数。
创建数据库时系统自动生成3个文件:
数据库文件:扩展名为.DBC
数据库备注文件:扩展名为.DCT
数据库索引文件:扩展名为.DCX
2.数据库的设计过程
1)明确建立数据库的目的和使用方式
2)设计所需的数据表(包括表结构和表记录)
3)建立表之间的关系
4)改进设计
3.2数据库的创建[图例]
1.数据库的创建过程
数据库的创建过程中一般会涉及下面一些常用
操作:
1)创建新表一用表设计器(设置字段属性和
表属性)
2)添加表一用数据库设计器按钮或数据库菜
单
3)创建视图一用视图向导、视图设计器
4)建立关系—用鼠标将父表的索引拖到子表
的相关索引上
5)编辑关系T用数据库菜单或快捷菜单T
参照完整性生成器
6)移去关系T用快捷菜单或按delete键
7)修改表一用表设计器
8)删除表或视图一用数据库设计器按钮或数
据库菜单
2.数据库的新建、打开、关闭
(1)新建数据库:
从文件菜单中单击新建一在新建对话框中选
择数据库并单击新文件一在创建对话框中给
出库文件名和保存位置一在数据库设计器中
建立所需的数据库。
或从命令窗口中输入命令:createdatabase数
据库名
(2)打开数据库:
从文件菜单中单击打开一在打开对话框中给
出库文件名和保存位置并确定之。
或从命令窗口中输入命令:opendatabase数
据库名
(3)关闭数据库:
从命令窗口中输入命令:
closedatabase&&关闭当前数据库
或closeall&&关闭所有被打开的数据库
注意:1)关闭了数据库表不等于关闭了数据库,
但关闭了数据库则其中的数据表被同时关闭;
2)用鼠标关闭了数据库设计器窗口并不能代表
关闭数据库。
3.用数据库设计器设计数据库
(1)调出表设计器,建立一个新数据表[图例]
方法1:从数据库菜单中选择新表。
方法2:右击数据库设计器窗口,从快捷菜单中
选择新表。
方法3:单击数据库设计器工具栏的新表按钮。
方法4:从文件菜单中单击新建,在对话框中选
择表。
注意:
数据库表的表设计器中内容比自由表的多,增加
了字段属性和表属性的设置。设置验证规则目的
是为了使输入的数据符合要求,在有矛盾时发出
错误提示信息。
(2)数据库表的高级属性
属性名
属性类别作用
称
确定字段内容在被显示时
格式
的样式
指定字段中输入数据的格
字段显示输入掩
式(即所输入的任何内容
属性码
均显示成此符号)
字
在浏览表时用此名称代替
标题
段意义不够直观的字段名
使所输数据符合设定的条
属规则
件
性
字段验证当所输数据违反规则时,
信息
规则系统提示错在哪里
减少输入重复性数据时的
默认值
工作量
字段注释使字段具有更好的可读性
与表文件名不同,设置了
长表名
长表名可以一目了然
使所输记录符合设定的条
规则
记录验证件
规则当所输记录违反规则时,
表信息
系统提示错在哪里
属插入触当所插记录符合此规则
发器时,才可以插入到表中
性
更新触当修改后的记录符合此规
触发器
发器则时,才可以进行修改
删除触当待删记录符合此规则
发器时,才可以被删除掉
表注释使表具有更好的可读性
字段级规则:
一种与字段相关的有效性规则,在插入或修改字
段值时被激活,多用于数据输入正确性的检验。
为字段设置验证规则的方法:
.在表设计器中选定要建立规则的字段名。
.在“规则”方框旁边选择“…”按钮。
.在表达式生成器中设置有效性表达式,并选择
“确定”。
.在“信息”框中,键入用引号括起的错误信息。
.在“默认值”框中,键入合理的初值。
.注意不同类型数据的表示方法。
.选择“确定”
记录级规则:
一种与记录相关的有效性规则,当插入或修改记
录时激活,常用来检验数据输入和正确性。记录
被删除时不使用有效性规则。记录级规则在字段
级规则之后和触发器之前激活,在缓冲更新时工
作。
触发器:
在一个插入、更新或删除操作之后运行的记录级
事件代码。不同的事件可以对应不同的动作。它
们常用于交叉表的完整性。
(3)在数据库中添加表
方法1:从数据库菜单中选择添加表,从打开对
话框中选择所需的表并确定之。
方法2:右击数据库设计器窗口,从快捷菜单中
选择添加表。
方法3:单击数据库设计器工具栏的添加按钮。
注意:
一个数据表在同一时间内只能属于一个数据库,
已隶属于其它数据库的表不能直接被添加进来,
需先将其移出数据库还原成自由表。
(4)创建并添加视图
视图用于显示一个或多个表中的记录,并能够更
新源表中的数据,视图只有在数据库中才能存
在。
方法1:从数据库菜单中选择新远程视图或新本
地视图
方法2:右击数据库设计器窗口,从快捷菜单中
选择新远程视图或新本地视图
方法3:单击数据库设计器工具栏的新远程视图
或新本地视图按钮
(5)在数据库中操作表和视图
可以利用数据库设计器工具栏很方便地进行下
列操作:
浏览:在浏览窗口中显示表或视图的内容。
修改:调出表设计器或视图设计器对表或视图
进行修改。
移去:使表从数据库中还原成自由表。对视图移
去相当于删除。
删除:从磁盘上彻底删除数据表和视图,并且无
法回收。
(6)在表之间建立永久性关系
永久关系:
是数据库表之间的一种关系,不仅运行时存在,
而且一直保留。表之间的永久关系是通过索引建
立的。
一对多关系:
表之间的一种关系,在这种关系中,主表中的每
一个记录与相关表中的多个记录相关联(每一个
主关键字值在相关表中可出现多次)。
一对一关系:
表之间的一种关系,在这种关系中,主表中的每
一个记录只与相关表中的一个记录相关联。
创建表间的永久关系:
在数据库设计器中,选择想要关联的索引名,然
后把它拖到相关表的索引名上,所拖动的父表索
引必须是一个主索引或候选索引。建立好关系
后,这种关系在数据库设计器中会显示为一条连
接两个表的直线。
注意:需先建立索引然后才能建立关系。
删除表间的永久关系:
在数据库设计器中,单击两表间的关系线。关系
线变粗,表明已选择了该关系,按下delete键。
编辑关系:
单击所需关系线,右击鼠标,从快捷菜单中选择
编辑关系,在编辑关系对话框中改选其它相关表
索引名或修改参照完整性规则。
参照完整性(RI):
控制数据一致性,尤其是不同表的主关键字和外
部关键字之间关系的规则。VisualFoxPro使用
用户自定义的字段级和记录级规则完成参照完
成性规则。
(7)在表之间建立临时关系
临时关系:
是在打开的数据表之间用setrelation命令建立
的临时关系,或是在数据工作期窗口建立。建立
了临时关系后,子表的指针会随主表记录指针的
移动。表被关闭后,关系自动解除。
临时关系与永久关系的联系与区别:
联系:
(1)都必须明确建立关系的两张表之间确实在
客观上存在着一种关系(一对多或一对一关系)。
(2)永久关系在许多场合可以作为默认的临时关
系。
区别:
(1)临时关系是用来在打开的两张表之间控制
相关表之间记录的访问;而永久关系主要是用来
存储相关表之间的参照完整性,附带地可以作为
默认的临时关系或查询中默认的联接条件。
(2)临时关系在表打开之后使用setrelation命
令建立,随表的关闭而解除;永久关系永久地保
存在数据库中而不必在每次使用表时重新创建。
(3)临时关系可以在自由表之间、库表之间或
自由表与库表之间建立,而永久关系只能在库表
之间建立。
(4)临时关系中一张表不能有两张主表(除非这
两张主表是通过子表的同一个主控索引建立的
临时关系),永久关系则不然。
4.用命令方式操作数据库
常用命令一览表
命令格式功能
createdatabase
创建新的数据库文件
库文件名
opendatabase库打开指定的库文件
文件名
closedatabase关闭当前的数据库和数据表
关闭所有的数据库和数据
表,并把工作区1置为当前
closeall
工作区,同时还关闭一些窗
口
modifydatabase修改当前库文件结构
deletedatabase
删除指定的库文件
库文件名
opendatabase库
文件名在数据库中添加表
addtable表名
opendatabase库
文件名将表从数据库中移去
removetable表名
opendatabase库
文件名将表从数据库中移去并从盘
removetable表文上删除
件名delete
use库文件名!表“!”表示引用个不在当
名前数据库中的表
browse
Setrelationto关系表达式建立表之间的
into区号|别名临时关系
删除表之间的
Setrelationto
临时关系
altertable子表名add
foreignkey索引关键子tag
创建永久关系
索引标识references父表名
[tag索引标识]
altertable了•表名drop
删除永久关系
foreignkeytag索引标识
5.用CREATETABLE-SQL命令创建数据库
表
命令一般格式:
Createtable表名1[free](字段名1字段类型
代号[(字段宽度[,小数位数])][nullInotnull]
[check字段规则1[error"信息1"]][default
默认值][primarykeyIunique][references表名
2[tag索引标识1]][,字段名2字段类型代号
[(字段宽度[,小数位数])][nullInot
null]][check字段规则2[error"信息2"]]
[default默认值])Ifromarray数组名
使用示例:
creatdataxscjgl&&创建学生成绩管理数据
库
createtabIexs(;
xhc(4)defau11"1201"primarykey,;
xmc(6),;
xbc(2)checkxb二〃男〃orxb二〃女〃error”性
别只能是男或女〃default〃女〃,;
nIn(2)null;
)&&创建学生表
createtabIekc(;
kchc(3)unique,;
kcmc(10),;
xfn(3,1),;
bxkI;
)&&创建课程表
createtabIecj(;
xhc(4)default^1201^referencexstagxh,:
kchc(8),;
ksrqd,;
cjn(5,1);
)&&创建成绩表
modidata
aItertabIecjaddprimarykey
xh+kch+str(cj,4,1)tagdh&&为成绩表添加
一个主索引
6.查看和设置数据库的属性
(1)用dbgetprop()函数查看数据库属性:
命令格式:
dbgetprop(cName,cType,eProperty)
(2)用dbsetprop。函数设置数据库属性:
命令格式:
dbsetprop(cName,cType,eProperty,eProperty
VaIue)
(3)用dbsetpropO函数给表中字段添加标题
和说明
一般格式:dbsetprop。表名.字段名
'fieId','caption|comment','标题|说明')
例:dbsetprop('xs.xh','field','caption','学号')
dbsetprop('cj.xh','field','comment?本表学号应与
学生表中的学号对应)
7.数据库表的约束机制
约束机制级别激活时机
当从浏览中禺开字段,或执行
NULL值字段INSERT或REPLEASE更改字段值
时
当从浏览中离开字段,或执行
字段级规
字段INSERT或REPLEASE更改字段值
则
时
主索引/
记录发生记录更新时
候选索引
记录级规
记录发生记录更新时
则
在INSERT>UPDATE或DELETE事
触发器表
件中,表中值改变时
VALID子
表单移出记录时
句
第四章创建查询和视图
4.1创建查询
1.查询的概念
查询:就是向一个数据库发出检索信息的请求,
从中提取符合特定条件的记录。
查询文件:
即保存实现查询的SELECT-SQL命令的文件。
查询文件保存时,系统自动给出扩展名.qpr;
查询被运行后,系统还会生成一个编译后的查询
文件,扩展名为.qpxo
查询结果:
通过运行查询文件得到的一个基于表和视图的
动态的数据集合。查询结果可以用不同的形式来
保存。查询中的数据是只读的。
查询的数据源:可以是一张或多张相关的自由
表、数据库表、视图。
2.用查询设计器创建查询[图例]
基本步骤:
打开查询设计器一添加创建查询所基于的数
据表一定义输出内容一设置联接、筛选、排
序、分组条件一选择查询结果的输出形式一
保存查询文件一运行查询。
(1)打开查询设计器
方法1:
从文件菜单或工具栏上单击新建一查询一
新建文件一进入查询设计器
方法2:
当所用到的数据表已在项目中时,从项目管理器
窗口中单击数据一查询T新建T新建查
询一进入查询设计器
方法3:从命令窗口中输入命令:
createquery查询文件名&创建新查询
modifyquery查询文件名&修改已存在的查询
(2)定义查询的输出内容
单击字段选项卡-从可用字段列表框中单击
所需字段(当输出的列不是直接来源于表中的字
段时,单击函数和表达式框边的...按钮,打开
表达式生成器,构造出所需的表达式)一单击
添加按钮一所需字段自动出现在选定字段框
中。
(3)设置查询的筛选条件
筛选条件决定将哪些记录显示出来。
在筛选框中构造筛选条件表达式时,要注意在实
例框中输入不同数据类型时的格式:
1)字符串可以不带引号(当与源表中的字段名
相同时才用引号);
2)日期型数值要用{}括起来;
3)逻辑型数据两侧要带.号,如
(4)设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。
设置方法:
单击排序依据一从选定字段框选中字段一
选择升序或降序一单击添加。
(5)设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记
录,目的是为了完成基于该组记录的计算,比如:
求平均值、总和、统计个数、其中的最大值、最
小值等。
几个常用的统计函数
功求平均求最大求最小统计个
求总和
能值值值数
名COUNT
AVG()SUM()MAXOMIN()
称()
用于分组的字段不一定是选定输出的字段,但分
组字段不能是一个计算字段。
可以用满足条件…来对分组结果进行进一步
筛选。
(6)对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果
的记录范围。
(7)选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且
其中的数据是只读的。
设置其他输出类型的方法:
打开查询菜单T选择查询去向一在查询去
向对话框中选择一种。一般多选择表或报表。
(8)运行查询
在查询设计器打开的状态下,单击常用工具栏上
的!按钮或从查询菜单中选择运行查询。其他
情况下,可从项目管理器中选中查询文件并单击
运行按钮,或从程序菜单中选择执行命令,或从
命令窗口中输入:DO查询文件名。
(9)创建多表查询
打开查询设计器一将所需的多个相关表添加
进来f设置联接条件T按上面(2)至(8)
步进行。
3.用查询向导创建查询
(1)创建标准查询:
打开待查询的数据表7从文件菜单中单击新
建一在新建对话框中选择查询并单击向导一
选择查询向导一从单张或多张相关的表中进
行字段选取一设置筛选条件-设置排序次
序一选择查询结果的保存方式-给出查询
文件名并选择保存位置一查询结果显示在查
询窗口中。
注意:查询此时得到的数据是只读的,不可以更
新。
(2)交叉表查询
打开待查询的数据表-从文件菜单中单击新
建一在新建对话框中选择查询并单击向导一
选择交叉表向导一从单张表中选取字段一
设计布局一加入总和信息一选择查询结果
的保存方式一给出查询文件名并选择保存位
置一查询结果显示在查询窗口中。
注意:不是任何表都适宜采用交叉表的形式。
(3)用SELECT-SQL命令创建查询
常用的格式:
SELECT表名1.字段名1[AS标题名1],表名
1.字段名2[AS标题名2],…
FROM数据库名!表名1[,数据库名!表名2]
[,数据库名!表名3]
[TOFILE文本文件名IintotableIintocursor
表文件名]
[WHERE选定条件]
[GROUPBY分组字段名]
[HAVING分组中的满足条件]
[ORDERBY排序字段名1[ASCIDESC][,排
序字段名2[ASCIDESC]...]]
示例:
浏览学生中的查询学生student.qpr:
SELECT表xs.xhas学号,表xs.xmas姓名,表
xs.xbas性别,;
表xs.csrqas出生日期,表xs.bjas班级名称;
FROM数据test!表xs;
WHERE表xs.bj=csl;
ORDERBY表xs.xh;
INTOTABLExs
浏览成绩中的按课程查询sub_cj.qpr:
SELECT表xs.bjas班级名称,COUNT(表xs.xh)
as班级人数,AVG(表cj.cj)as平均分,;
MAX(表cj.cj)as最高分,MIN(表cj.cj)as最低
分;
FROM数据test!表xs,数据test!表cj,数据test!
表kc;
WHERE表cj.xh=表xs.xh;
AND表kc.kcm=表cj.kcm;
AND表cj.kcm二scl;
GROUPBY表xs.bj;
ORDERBY表xs.bj;
INTOTABLEsub_cj
4.2创建视图
1.视图的特点
1)视图是存在于数据库中的一个虚表,不以独
立的文件形式保存;
2)视图中的数据是可以更改的,它不仅具有查
询的功能,且可以把更新结果反映到源数据表
中;
3)视图打开时,其基表自动打开,但视图关闭
时,其基表并不随之自动关闭;
4)视图的数据源可以是自由表、数据库表或另
一个视图。
2.用视图设计器创建本地视图[图例]
从项目管理器中选择一个数据库一选择本地
视图T单击新建按钮一选择新视图T添
加所需的数据表一在视图设计器中按照与创
建查询相同的步骤(2)〜(6)建立视图T设
置更新条件一保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论