vfp笔记详解.docx
《vfp笔记详解.docx》由会员分享,可在线阅读,更多相关《vfp笔记详解.docx(67页珍藏版)》请在冰豆网上搜索。
vfp笔记详解
2013年3月全国二级考试改革,全部都是在计算机上进行
考试时间120分钟
一.单项选择题(40道题,40分)
二.上机
(1)基本操作18分
(2)简单应用24分
(3)综合应用18分
考试考记忆
要求:
1.按时上课,不要缺课
2.多做题—存储卡,U盘
第一章VFP基础
VisualFOXPRO可视化
一.数据库基础知识
(一)计算机数据管理的发展
1.数据与数据处理
(1)数据是指存储在某一种媒体上能够识别的物理符号。
“女”
数据不光指文字、数字、还包括声音,动画,图形等
2.数据处理是指数据转换成信息的过程。
3.数据与信息的关系
信息来自于数据,数据是信息的载体。
2.计算机数据管理
(1)概念:
是指对数据的组织、分类、编程、存储、检索和维护提供操作手段。
(2)发展:
第一阶段:
人工管理
第二阶段:
文件系统
第三阶段:
数据库系统:
实现数据共享,减少数据冗余
第四阶段:
分布式数据库系统
第五阶段:
面对对象数据库系统
(二)数据库系统
1.有关数据库的概念
(1)数据库DB(Database)是存储在计算机存储设备上,
结构化的相关数据集合。
数据库就是数据仓库。
(2)数据库应用系统:
指系统开发人员利用数据库系统资源开发出来的,解决某一类实际应用的应用软件系统。
如图书管理系统
(3)数据库管理系统DBMS:
对DB的建立、使用和维护进行管理。
VFP数据库管理系统,DBMS是数据库系统的核心软件
databasemanagementsystem
(4)数据库系统DBS:
---最大
组成:
硬件系统、DB集合,DBMS及相关软件、数据库管理员和用户
DBS包含DB和DBMS,DBMS是核心
2.数据库系统的特点:
(1)实现数据共享、减少数据冗余
(2)采用特定的数据模型----关系
(3)具有较高的数据独立性
(4)有统一的数据控制功能
(三)数据模型
1.实体的描述
实体:
实体即可以是抽象的也可以是具体。
客观存在并且可以
相互区别的事物称为实体。
实体可是具体(人、桌子)也
可能抽象(比赛、会议)。
2.实体间联系及联系的种类
(1)一对一联系:
1:
1
一个班级只能有一个班长,班级与班长是1:
1
(2)一对多联系:
1:
M
一个部门可以有多个职工,部门与职工是1:
M;班级与学生
(3)多对多联系:
M:
N
一个顾客可以购买多个商品,一个商品被多个顾客所购买,顾客与商品M:
N
学生与课程;股票与股民
3.数据模型简介
(1)数据模型是数据库管理系统用来表示实体间联系的方法。
(2)种类
层次数据模型:
倒置的树
网状数据模型:
关系数据模型:
VFP关系型数据库管理系统
数据库管理系统、操作系统WINDOWS,计算机语言都是系统软件
OFFICE2007,qq属于应用软件
二.关系数据库
(一)关系模型
关系模型的逻辑结构就是一张二维表
关系=表
姓名
性别
所在班级
学习科目
最终成绩
刘露露
女
04园林
二级VFP
郭江
女
二级VFP
1.关系术语:
(1)关系:
一个关系就是一张二维表,每个关系有一个关系名。
即表名,扩展名为DBF(file)
(2)表格中的行叫元组也叫记录RECORD
元组:
也叫记录RECORD,表的一行称为一条记录(除表头)。
描述同一对象的不同属性。
(3)表格中的列叫字段也叫属性,FIELDS
属性:
也叫字段。
表格中的列。
描述不同对象的同一属性。
(4)域:
属性的取值范围。
---字段有效性规则
(5)关键字(主码,主键):
属性或属性的组合,其值能够惟一标识
一行,不能出现重复值和空值。
如“学号”,“身份证号”
(6)外部关键字(外码):
若表中的一个字段不是本表的主关键字
或候选关键字,而是另一个表的主关键字或候选关键字,
这个字段就称为外部关键字。
2.关系的特点:
行列不能重复,行列次序不关紧要
(1)关系必须规范化。
满足一定的要求。
(2)在同一关系中不能出现相同的属性名(列名)
(3)关系中不允许有完全相同的元组
(4)在一个关系中元组的次序无关紧要
(5)在一个关系中列的次序无关紧要
3.实际关系模型
一个具体的关系模型由若干个关系模式组成。
一个数据库中包含相互之间存在联系的多个表。
例:
部门-----职工------工资关系模型
部门(主键(码)是部门编码)
部门编码
部门名称
负责人
职工(主键是职工号,部门编码是外码)
职工号
姓名
性别
部门编码
工资
年月
职工号
姓名
基本工资
例:
图书-------读者----------借阅关系模型
图书
总编号
分类号
书名
作者
读者:
借书证号
单位
姓名
性别
职称
地址
借阅
借书证号
总编号
借书日期
还书日期
VFP中,一个关系模型称为数据库,一个关系叫表,数据库中可以包含多张表。
(二)关系运算
1.传统的集合运算
(1)并男人并女人=人
(2)差人差女人=男人
(3)交人交女人=女人
(4)除
2.专门的关系运算:
选择、投影、联接
(1)选择---行:
从关系中找出满足给定条件的元组的操作
(针对行进行操作)
LOCATEFOR工资>1220
查找工资大于1220的职工
(2)投影—列:
从关系模式中指定若干个属性组成新的关系
(针对列进行操作)
FIELDS职工号,工资
(3)联接---针对两张表:
是关系的横向结合。
将两个关系模式拼接成一个更宽的
关系模式,生成的新关系中包含满足联接条件的元组。
部门表与职工表联接(职工号,姓名,性别,部门编码,部门名称)
,城市,面积,职工号,工资
(4)自然联接:
去掉重复属性的等值联接。
一般指都是自然联接。
注意:
选择和投影的操作对象是一个表而联接需要两个表。
三.数据库设计基础
1.设计原则----了解
(1)关系数据库的设计应遵从概念单一化“一事一地”的原则
(2)避免在表之间出现重复字段
(3)表中的字段必须是原始数据和基本数据元素
(4)用外部关键字保存有关联的表之间的联系
2.设计步骤(了解)
(1)需求分析
(2)确定需要的表
(3)确定所需字段
(4)确定联系
(5)设计求精
3.注意事项:
(1)VFP利用主关键字迅速关联多个表中的数据,
不允许在主关键字字段中有重复值和空值,主关键字是唯一标识一条记录,
(2)一对多联系,一个仓库可以有多个职工,多个职工属于一个仓库
一对多联系是关系型数据库中最普通的联系。
在一对多联系中,
表A的一个记录在表B中可以有多个记录与这对应,但表B中的一个记录
最多只能有一个表A的记录与之对应。
要建立这样的联系,
就是把“一方”的主关键字字段添加到“多方”的表中。
仓库(仓库号,城市,面积)一方
职工(仓库号,职工号,工资)多方
(3)多对多联系-----建立第三张表:
纽带表,包括其它两张表的主关键字
在多对多联系中,表A的一个记录在表B中对应多个记录,
而表B的一个记录在表A中也可对应多个记录。
为了避免数据的重复存储,又要保持多对多联系,方法是创建第三个表。
把多对多的联系分解成两个一对多联系。
所创建的第三个表包含两个表的
主关键字。
在两表之间起着纽带的作用,称这为“纽带表”
学生(学号,姓名,性别,出生日期,系部,班级,联系电话)
课程(课程号,课程名称,学分)
成绩(学号,课程号,成绩)------纽带表
VFP是MicrosofT公司的产品。
可视化编程工具。
VFP是一个32位的DBMS,是系统软件
三.VFP启动与窗口组成
1.开始/程序/Microsoftvisualfoxpro6.0/Microsoftvisualfoxpro6.0
2.桌面快捷方式,VFP的图形标志是一个狐狸头
(二)窗口组成
1.标题栏
2.菜单栏
3.工具栏
4.工作区:
系统主窗口的空白部分。
用于展开软件工作界面,显示系统信息、命令和程序运行结果等。
5.命令窗口:
键入VFP命令
注意:
一个汉字占两个字符宽度。
VFP中按字符宽度。
退出VFP的命令
Quit
在VFP中所有命令必须键入在命令窗口中
CLEAR清屏,即将工作区清干净
显示/隐藏命令窗口
(1)窗口/命令窗口
(2)常用工具栏上”命令窗口”按钮
(3)CTRL+F4隐藏ctrl+f2显示
注意:
CTRL、SHIFT、ALT三个键叫组合键也叫复合键,单独按没有意义,只有与其它键同按。
“+”即同按。
先按住复合键不放,在按其它键。
‘’“”’’””
Crtl+空格中/英文转换
Ctrl+shift输入法转换
Ctrl+句点中/英文标点符号的转换
注意:
在VFP中标点符号必须是英文的。
一.项目管理器
1.项目:
是指文件、数据、文档和VFP对象的集合
2.项目管理器:
是VFP中处理数据和对象的主要组织工具,是一个工作平台。
在VFP中所有可以做的操作在项目管理器中都可完成。
(一)创建项目
1.项目PROJECT文件的扩展名.pjx,项目管理器有六个选项卡
2.“文件/新建”弹出新建对话框,选择“项目”,单击“新建文件”按钮
第二章数据与数据运算
一.常量与变量
(一)常量:
值不变化的量----六种常量
1.数值型常量N:
如123.5671.23567e2(科学计数法)
2.货币型常量Y:
前置符号$,只保留四位小数如:
$789.5,3.
3、字符型常量(字符串)C:
必须用单引号,双引号,方括号(定界符)括起来
的字符串。
字符型常量是照原样输出,字符串中大小写不等价。
注意:
在VFP中所有的标点符号必须是英文标点符号。
输出命令:
?
<输出项>
换行输出,下一行输出
?
?
<输出项>
当前行输出结果
如果有多个输出项,用逗号隔开
4.日期型常量D(DATE):
它的定界符是花括号.
日期型常量的格式
(1)传统的日期格式
mm/dd/yy
(2)严格的日期格式-----使用日期常量时
{^yyyy-mm-dd}^脱字符
SETcenturyon/off/TO[世纪值]rollover[年份参照值]
功能:
用于设置显示日期型数据时是否显示世纪
ON:
即用4位数字表示年份
5.日期时间型常量T:
{<日期>,<时间>}
{^YYYY-MM-DD,HH:
MM;SSP/A}
6.逻辑型常量L:
只有真和假两个值.真用.t.或.y.假用.f.或.n.,
内存中占用1个字节
(二)变量:
值可以改变的量。
变量分为字段变量和内存变量。
1.字段变量:
就是表中的字段,表中每一个字段就是一个字段变量。
字段变量保存在表中。
2.内存变量:
是内存中的一个存储区域,变量值就是存放在这个存储区域里
的数据,变量的类型取决于变量值的类型。
X+Y=100
3.内存变量的数据类型有六种与常量同
1.简单内存变量
每一个变量都有一个名字,叫变量名,变量名必须以字母开头后面可以是数字或下划线。
当字段变量与内存变量同名时,字段变量伏先级高,
则在内存变量前加M.(m->)
变量一般先赋值后使用
(1)<内存变量名>=<表达式>
将<表达式>的值赋给左边的<内存变量>
x=10
y=2*30
(2)store<表达式>to<内存变量名表>
将表达式的值赋给<内存变量名表>中的多个内存变量,
即给多个内存变量赋以同一个值.
2.数组
数组是内存中连续的一片存储区域,它由一系列元素组成,
每个数据元素可通过数组名及相应的下标来访问.
数组必须先定义后使用
定义数组:
dimension/declare<数组名>(<下标上限1>,[<下标上限2>])
例:
dimensionxy(10)
定义一个XY数组,有多10个元素。
分别是xy
(1)……xy(10)
declarem(2,3)
定义一个M二维数组。
它有2行3列,共6个元素。
M(1,1)M(1,2)M(1,3)
M(2,1)M(2,2)M(2,3)
表到数组SCATTER
数组到表GATHER
(三)内存变量常用命令
1.内存变量的显示
displaymemory[like<通配符>]
list代表滚动显示,display代表分屏显示
通配符有两个*,?
。
*代表任意多个字符,?
代表任意一个字符
三.表达式
1.数值表达式
+-*/
^或**乘方,2的3次方------2^3
%求余,与MOD()功能相同
?
15%4,15%-4?
MOD(15,4),MOD(15,-4)
3-1
2.字符表达式
+完全连接符将两个字符串连接在一起
-不完全连接符将第一个字符串的尾部空格放到最后去
LEN()字符串长度函数,结果为数值型
3.关系表达式:
结果为逻辑型
<,>,<=,>=
<>或!
=不等于
$只用于字符型,“包含于”
4.逻辑表达式
.NOT.逻辑非.AND.逻辑与(并且).OR.逻辑或(或者)
X>2ANDX<9
X<2ORX>9
四.函数
函数名()
1.圆周率函数PI()
2.求整数函数
INT(数值表达式)取整
CEILING(数值表达式)向上取整
FLOOR(数值表达式)向下取整
3.大小写转换函数
LOWER大写转小写字母
UPPER小写转大写字母
4.取子串函数
LEFT左子串函数
RIGHT右子串函数
SUBSTR取子串函数
5.求子串位置函数
AT(字符串1,字符串2)
结果为数值型,给出字符串1在字符串2中的起始位置
如果串1在串2中找不到,结果为0
字符串比较
“0”-------“9”“A”-----------“Z”“a”--------------“z”
48------------57659097---------------122
一.子串包含测试
格式:
<字串1>$<字串2>
功能:
字串1若能在字串2找到,结果就为.T.,否则为.F.
二.设置字符的排序次序
字符串比较,从左向右比较,一旦发现不同,判断这两个字符的大小.
1.人机对话方式
“工具/选项”在”数据”选项卡下.
2.命令方式设置:
setcollateto“<排序次序名>”
machine机器:
机内码空格-<----数字<------大写字母-<------小写字母
Pinyin拼音:
按照拼音次序排序,对于西文字符来说,空格,<小字字母<,大写字母
Stroke笔划:
书写笔划多少进行排序
三.逻辑表达式
逻辑运算符:
.not.或!
(逻辑非).AND.(逻辑与)----并且.or.(逻辑或)-------或者
逻辑表达式的结果为逻辑型
四.运算符优先级
算术------字符串------日期时间--------关系------逻辑
五.函数
函数格式:
函数名([<表达式>])
第三章VFP数据库及其操作
一.基本概念
1.数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的
数据库表及其相关的数据库对象统一组织和管理。
数据库中可以有多张表或多个数据库对象,数据库是表的集合
2.数据库文件的扩展名DBC,与之相关的还会自动建立一个扩展名
DCT的数据库备注文件和一个扩展名为DCX的数据库索引文件。
3.包含在数据库中的数据表的扩展名DBF
CREATEDATABASE建立数据库
OPENDATABASE打开数据库
MODIFYDATABASE修改数据库(弹数据库设计器)
CLOSEDATABASE关闭数据库
DELETEDATABASE删除数据库
第二节建立数据库表
库是表的集合。
表的扩展名是DBF,如果表中有备注型和通用型大字段,
还会产生一个FPT备注文件。
在VFP中,表有两种,包含在数据库中的叫数据表,
不包含在数据库中叫自由表。
一.在数据库中建立表
在数据库设计器中,右击弹出快捷菜单,选择“新建表”或在数据库设计工具栏上单击“新建表”的按钮
二.一些基本内容和概念
1.字段名:
----------------字段变量
字段名即关系的属性名或表的列名。
字段名可以是汉字或合法的西文字符。
规定:
(1)自由表的字段名最长为10个字符
(2)数据库表的字段名最长为128个字符
(3)字段名必须必须以字母或汉字开头,由字母,汉字,数字和下划线组成
(4)字段名中不包含空格
2.字段类型和宽度
字段的数据类型决定存储在字段中的值的数据类型,数据类型通过宽度限制可以决定存储数据的数量或精度。
(1)字符型:
C
(2)货币型:
Y
(3)数值型:
N
(4)浮点型:
F:
类似于N,但其长度最长可达20位
(5)日期型:
D固定长度为8
(6)日期时间型:
T
(7)逻辑型:
L只有T和F两个值,固定长度为1
(8)备注型:
M,它在表中只有4个字节的长度,他的值存储在与表文件名同名,但扩展名为FPT的备注文件中。
(9)通用型:
G用来标记电子表格、文档、图片等OLE对象。
如照片是通用型,固定长度为4个字节的宽度
3.空值
用“NULL“选项,它表示是否允许字段为空值。
4.字段有效性组框
可定义字段的有效性
5.显示组框:
可定义字段显示的格式,输入的掩码和字段的标题
6.字段注释:
对字段添加注释,便于以后或其他人对数据库进行维护
三.用命令建立表
1.打开数据库
2.使用create命令建立表
注意:
新建的表当时处于打开状态,可以对其进行任何的操作,如果以后再对表进行操作,必须先要打开表:
USE<表文件名>-----------打开<表文件名>所指的表
USE--------------------------关闭当前表
四.修改表结构---------表头,在表设计器中进行修改.
1.项目管理器中,选中相应的表,点”修改”,打开表设计器
2.在数据库设计器中,右击要修改表,选择”修改”
3.用命令
(1)首先必须用USR打开要修改的表
(2)modifystructure
五.使用浏览器操作表
在交互工作方式下,最简单,方便的方法就是使用BROWSE浏览器
打开浏览器的方法
1.在项目管理器中,选择相应的表,点”浏览”按钮
2.在数据库设计器中,选择表,然后从”数据库/浏览”或右击,”浏览”
3.在命令方式:
(1)先要用USE命令打开表
(2)BROWSE
(一)浏览操作
1.下一记录:
下箭头键
2.前一记录:
上箭头键
3.下一页:
PAGEDOWN
4.前一页:
PAGEUP
5.下一字段:
TAB
6.前一字段:
SHIFT+TAB
7.添加记录:
(1)CTRY+Y
(2)“表/追加新记录”或”显示/追加方式”
(二)删除记录
在VFP中删除记录有逻辑删除和物理删除两种.逻辑删除只是给记录加删除标记,物理删除是将加删除标记的记录真正的删除掉.
都在表菜单下.
切换删除标记:
ctrl+t
作业:
建立图书管理数据库,其中有图书,读者,借阅三个表
1.图书表如下
总编号
分类号
书名
作者
445501
Tp3/2
数据库导论
DATE
445502
Tp3/2
数据库导论
DATE
445503
Tp3/2
数据库概论
王珊
332211
Tp5/10
计算机基础
李伟
112266
Tp3/2
数据库FOXPRO
张学军
665544
TP7/21
高等数学
刘明
114455
TP9/12
线性代数
孙业
113388
TP7/90
大学英语
胡明
(1)总编号字段的掩码为“999999”----------------9代表可以输入任意的数字44
(2)分类号字段的掩码“TP9/99”
(3)追加一条记录
115566TP8/9数据结构徐玉莲
(4)将最后一条删除掉,真正删除掉
(5)将第3和第5条加删除标记,再去掉
2.读者表如下
借书证号
单位
姓名
性别
职称
地址
111
物理系
王维利
女
教授
212
112
会计系
李立威
男
副教授
121
113
经济系
张大龙
男
讲师
101
114
金融系
周华
男
讲师
312
115
数学系
赵正义
女
工程师
456
116
信息系
李明
男
副教授
412
117
金融系
刘大成
男
讲师
302
118
化学系
张晓华
女
副教授
308
(1)借书证号字段的掩码设置为“119”
(2)性别字段的规则设置为“性别=”男”.or.性别=”女””,默认值“”男””
(3)职称字段的规则设置为“职称=”教授”.or.职称=”副教授”.or.职称=”讲师”.or.职称=”工程师””,默认值“”副教授””
(4)地址字段的掩码设置为”999”
3.借阅表如下
借书证号
总编号
借书日期
113
445501
11/01/99
112
114455
12/12/99
112
113388
10/12/99
115
332211
08/11/99
115
445503
09/11/99
111
445503
09/11/99
二.对表的命令操作
(一)追加记录命令
格式一append----------------在当前表的尾部追加新记录
格式二appendblank----------在当前表的尾部追加空记录(记录存在,但没有内容)
相当于”显示/追加方式”或”表/追加新记录”
(二)记录的插入命令
insert[before][blank]
不带任何参数时,为在当前记录之后插入一条新记录.
Before在当前记录之前blank代表空记录
Insert-------------在当前记录之后插入一条新记录
Insertblank---------在当前记录之后插入一条空记录
Insertbefore--------在当前记录之前插入一条新记录
Insertbeforeblank----在当前记录之前插入一和空记录
(三)记录的范围--------对哪些记录进行操作.有四种
1.all对表中的所有记录
2.nextn从当前记录开始往下N条记录
3.rest从当前记录开始直到表结束的所有记录
4.recordn只对记录号为N的记录进行操作
注意:
每个表都有一个记录指针,记录指针所指的记录为当前记录
当打开一张表时,记录指针指向的第一条记录
(四)记录删除的命令
删除一条记录时,先逻辑删除,再物理删除
1.逻辑删除命令
delete[<范围>][for<条件>]
对当前表中指定范围内的满足的条件的记录加上删除标记.默认范围为当前记录
相当于”表/切换删除标记”或ctrl+t
例:
1.打开图书管理数据库opendatabase?
2.打开”图书表”use图书表
3.用命令在当前表的尾部追加一条空记录append