全国计算机二级VFP个人整理资料.docx
- 文档编号:9562495
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:81
- 大小:65.52KB
全国计算机二级VFP个人整理资料.docx
《全国计算机二级VFP个人整理资料.docx》由会员分享,可在线阅读,更多相关《全国计算机二级VFP个人整理资料.docx(81页珍藏版)》请在冰豆网上搜索。
全国计算机二级VFP个人整理资料
第一章、VFP数据库基础
操作题做一步保存一步,以防机器死机!
!
!
!
!
1.1数据库基础知识
1.数据是指存储在某一种媒体上能够识别的物理符号,数据是凡是能被计算机处理的。
2.数据处理是指将数据转换成信息的过程,VFP就是数据处理软件。
3.信息是一种被加工成特定形式的数据,注意这种数据形式对于数据接收者来说是有意义的。
4.数据管理经历的阶段:
(1)人工管理阶段:
背景是计算机主要用于科学计算;这一时期数据管理的特点是数据与程序不具有独立性,数据和程序相互依赖,一组数据只对应一组程序,数据不长期保存,程序运行结束后就退出计算机系统,一个程序中的数据无法被其他程序利用,因此程序与程序之间存在大量的重复数据,称为数据冗余且没有软件系统对数据进行管理。
(2)文件系统阶段:
命名存取;程序与数据有了一定的独立性,程序和数据分开存储,有了程序文件和数据文件的区别,数据文件可以长期保存在外存储器上被多次存取。
(3)数据库系统阶段:
提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余度(不是消除)以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。
(4)分布式数据库系统:
网络的兴起。
(5)面向对象数据库系统(面向对象、面向过程)。
5.数据库系统(DBS)组成:
(1)数据库(DB)
(2)数据库管理系统(DBMS)(3)数据库应用系统(DBAS)(4)数据库管理员(DBA)(5)计算机硬件(数据库系统包括数据库与数据库管理系统)。
6.数据库管理系统是数据库系统的核心。
一个数据库系统的主要特点是:
(1)实现数据共享,减少数据冗余
(2)采用特定的数据模型(3)具有较高的数据独立性(4)有统一的数据控制功能。
7.数据模型:
把现实事物描述成计算机可以接受的事物。
数据模型的分类:
(1)层次数据模型
(2)网状模型(3)关系数据模型:
用二维表结构来表示实体以及实体之间联系的模型。
实体:
客观存在并且可以相互区别的事物。
实体的属性:
描述实体的特性。
8.实体间的对应关系称为联系。
两个实体间的联系主要归结为以下三种类型:
(1)一对一的联系
(2)一对多的联系(3)多对多的联系。
1.2关系数据库
1.一个关系的逻辑结构就是一张二维表。
关系的扩展名是.dbf。
一个关系就是一张二维表,每个关系有一个关系名。
对关系的描述称为关系模式,一个关系模式对应一个关系的结构。
2.元组:
在一个二维表中,水平方向的行称为元组(不包括第一行),元组又称记录。
属性:
二维表中垂直方向的列称为属性,每一列有一个属性名,属性又称字段。
域:
属性的取值范围。
主关键字(不重复):
属性或属性的组合,关键字的值能够惟一地标识一个元组。
外部关键字:
表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,这个字段就是外部关键字。
3.关系的特点:
(1)关系必须规范化
(2)在同一个关系中不能出现相同的属性名(3)关系中不允许有完全相同的元组,即不允许有冗余(4)在一个关系中元组的次序无关紧要(5)在一个关系中列的次序无关紧要。
4.关系运算(关系与关系的运算结果仍是关系)有两种:
传统的集合运算和专门的关系运算。
传统运算包括并、差、交的集合运算(进行传统集合运算的两个关系必须具有相同的关系模式)。
并:
把两个关系的元组组成的集合。
差:
从一关系中去掉另一关系中也有的元组。
交:
由既属于R又属于S的元组组成的集合。
5.专门的关系运算有三种运算:
(1)选择(针对行):
从关系中找出满足给定条件的元组的操作
(2)投影(针对列):
从关系模式中指定若干个属性组成新的关系(3)连接(关系的横向结合):
将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组并去掉重复属性(连接运算需要两个表作为操作对象)。
6.”-screen.fontsize=”在VFP中表示把字体变成多大。
ALT+F4可关闭word等。
项目扩展名:
“.pjx”。
1.3数据库设计基础
数据库的设计原则:
(1)关系数据库的设计应遵从概念单一化“一事一地”的原则
(2)避免在表之间出现重复字段(3)表中的字段必须是原始数据和基本数据元素(4)用外部关键字保证有关联的表之间的联系。
1.4VFP系统概述
1.VFP退出系统:
(1)用鼠标左按扭单机VFP标题栏最右面的关闭窗口按钮
(2)从“文件”下拉菜单中选择“退出”选项(3)单击主窗口左上方的狐狸图标,从窗口下拉菜单中选择“关闭”或者按ALT+F4键(4)在命令窗口中键入QUIT命令,然后回车。
2.命令操作:
在命令窗口输入命令DIR之后按回车键,将在主屏幕上显示显示当前目录下表的信息;输入CLEAR命令之后按回车键,则清除主屏幕;输入QUIT命令则可以直接退出VFP系统。
3.有三种操作方法可以显示与隐藏命令窗口:
按CTRL+F4组合键隐藏命令窗口;按CTRL+F2组合键显示命令窗口。
4.项目文件以扩展名.pjx或者.pjt保存。
项目管理器窗口是系统的“控制中心”。
第28页到45页看一下,做完笔记后,打到电脑上。
第二章.Vfp程序设计基础(VFP所有东西都在英文半角状态下打)
2.1常量与变量(引入VFP命令:
命令在命令窗口输入,输入结束以回车结束)
1.常量:
以文字串形式出现在代码中的数据,代表一个具体的、不变的值(在程序中不变的量)
2.常量主要分为六种
(1)数值型常量(N),只有数值型常量没有定界符;它由数字0~9、小数点、正负号构成,也可用科学技术法形式书写。
例如5.878E12表示5.878乘以(10的12次方),2**8表示2的8次方。
(2)货币型常量(Y):
用来表示货币值,书写形式和数值型常量类似,但要加上定界符—一个前置的美元符号。
货币数据在存储和计算时,采用4位小数。
如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。
货币型常量没有科学计数法形式,在内存中占用八个字节,取值范围是—922337203685477.5807~922337203685477.5807。
(3)字符型常量(C),也称字符串,其组成有字母、符号、汉字。
它的定界符有单引号、双引号或方括号。
字符型常量的定界符必须成对匹配。
注意:
不包含任何字符的字符串叫空串。
空串与包含空格的字符串不同。
单问号命令的功能:
另起一行,在新的一行的开始处显示若干个表达式的值。
双问号命令的功能:
不换行,在当前行光标所在处继续显示表达式的值。
(4)日期型常量(D),其组成是0~9的数字,其定界符都是一对花括号,花括号内包括年月日三部分内容,各部分内容之间用分隔符分隔。
常用的分隔符有斜杠、连字符、句点或空格。
日期型数据用8个字节表示①严格的日期格式:
{^yyyy-mm-dd},注意这种格式花括号最前面要是一个脱字符,年份是4位;年月日的次序不能颠倒、不能缺省。
②传统的日期格式:
传统日期格式中的日月各为位数字,而年份可以是2位数字,也可以是4位数字,例如{10082001}等;传统的日期格式只能在setstrictdateto0状态下使用。
若在setstricydateto1、2状态下使用只能使用正确的严格的日期格式。
命令格式:
①setmarkto【<日期分隔符>】,命令功能用于指定显示日期值时所用的分隔符。
如果执行setmarkto没有指定任何分隔符,表示恢复系统默认的斜杠分隔符(/)
②setdate[to]American|ansi|british|French|german|Italian|japan|usa|mdy|dmy|ymd,命令功能用于日期显示的格式,该格式也决定系统如何解释一个传统格式的日期常量,其默认值为American。
短语
格式
短语
格式
American
mm/dd/yy
Italian
dd-mm-yy
ansi
yy.mm.dd
Japan
yy/mm/dd
British/French
dd/mm/yy
USA
mm-dd-yy
dmy
dd/mm/yy
mdy
mm/dd/yy
german
dd.mm.yy
ymd
yy/mm/dd
③setcenturyon|off|to[<世纪值>[ROLLOVER]<年份参照值>]],命令功能用于决定如何显示或解释一个日期数据的年份。
on显示世纪,即用4位数字表示年份
off不显示世纪,即用2位数字表示年份。
它是系统默认的设置
to决定如何解释一个用2位数字年份表示的日期所处的世纪,具体来说,如果该日期的2位数字年份大于等于<年份参照值>,则它所处的世纪即为<世纪值>;否则为<世纪值>+1
④setstrictdateto[0|1|2],命令功能:
用于设置是否对日期格式进行检查
0表示不进行严格的日期格式检查,目的是与早期VFP兼容
1表示进行严格的日期格式检查,它是系统默认的设置
2表示进行严格的日期格式检查,并且对ctod()和ctot()函数的格式也有效
注意:
<>为必选,[]可选可不选,|必选其一
(5)日期时间型常量(T):
日期时间型常量包括日期和时间两部分内容:
{<日期>,<时间>}。
<日期>部分与日期型常量相似,也有传统的和严格的两种格式。
<时间>部分的格式为:
[hh[:
mm[:
ss]][AM|PM]。
其中hh、mm和ss分别代表时、分和秒,默认值分别为12、0和0。
AM(或A)和PM(或P)分别代表上午、下午,默认值为AM。
如果指定的时间大于等于12,则系统自然为下午的时间。
日期时间型数据用8个字节存储。
12制/24制(AMPM)。
(6)逻辑型常量(L),定界符:
..。
逻辑型数据只有逻辑真和逻辑假两个值。
逻辑真的常量表示形式有:
.T.、.t..、.Y.和.y.。
逻辑假的常量表示形式有:
.F.、.f.、.N.和.n.。
前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。
逻辑型数据只占用一个字节。
3.变量:
程序中变化的量(存储常量的量)
VFP的变量分为字段变量、内存变量和数组。
①字段变量是打开表之后表中的字段名。
②内存变量:
临时存放在内存中的东西,并且东西的内容是可变的。
由字母、数字、下划线组成,且以字母或下划线开头。
变量的赋值命令:
<内存变量名>=<表达式>
Store<表达式>to<内存变量名表>
③数组:
一连串的内存变量。
与简单内存变量不同,数组在使用之前一般要用dimension或declear命令显式创建,指定数组是一维数组还是二维数组、数组名和数组大小。
数组大小由下标值的上、下限决定,下限规定为1。
dimension或declear两种格式的功能完全相同。
数组创建后,系统自动给每个数组元素赋以逻辑假.F.。
4.内存变量常用命令
①内存变量的赋值:
格式一:
store<表达式>to<表达式>格式二:
<内存变量名>=<表达式>
格式一将表达式值赋给一个或多个内存变量,格式二只能是一个变量赋值。
②表达式值的显示:
格式一:
?
[<表达式表>]格式二:
?
?
<表达式表>(计算表达式表中的各表达式并输出各表达式值)格式一都会输出一个回车换行符,如果指定了表达式表,各表达式值将在下一行的起始处输入;格式二不会输出回车换行符,各表达式值在当前行的光标所在处直接输出。
③内存变量的显示:
格式一:
listmemory[like<通配符>][toprinter|tofile<文件名>]格式二:
displaymemory[like<通配符>][toprinter|tofile<文件名>](显示内存变量的当前信息,包括变量名、作用域、类型和取值)通配符包括*和?
。
*表示任意多个字符,?
表示任意一个字符。
listmemory表示一次性显示与通配符匹配的所有内存变量,如果内存变量过多,一屏显示不下,则自动向上滚动。
displaymemeory表示分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再继续显示下一屏。
④内存变量的清除:
格式一:
clearmemory格式二:
release<内存变量名表>格式三:
releaseall[extended]格式四:
releaseall[like<通配符>|expect<通配符>]。
格式一表示清除所有内存变量;格式二表示清除指定的内存变量;格式三表示清除所有的内存变量,在人机会话状态时其作用与格式一相同,如果出现在程序中,则应该加上短语extended,否则不能删除全局内存变量;格式四表示选用like短语清除与通配符相匹配的内存变量,选用except短语清除与通配符不相匹配的内存变量。
⑤表与数组之间的数据传递
⑴将表的当前记录复制到数组:
格式一:
scatter[fields<字段名表>][memo]to<数组名>[blank]
格式二:
scatter[fieldslike<通配符>|fieldsexpect<通配符>][memo]to<数组名>[blank]
⑵将数组数据复制到表的当前记录
格式一:
gatherfrom<数组名>[fields<字段名表>][memo]
格式二:
gatherfrom<数组名>[fieldslike<通配符>|fieldexpect<通配符>][memo]
2.2表达式
1.表达式是由常量、变量和函数通过特定的运算符连接起来的式子。
总结各个表达式之间的优先级:
算术>字符和日期>关系>逻辑
2.数值表达式:
优先级
运算符
说明
1
()
形成表达式内的子表达式
2
**或^
乘方运算
3
*、/、%
乘、除运算、求除运算
4
+、-
加、减运算
a%b:
a是被除数,b是除数。
余数符号与除数符号相同。
被除数=除数×商+余数
3.求余运算%和取余函数mod()的作用相同,结果的正负号与除数一致。
如果被除数与除数异号,则运算结果为两数相除的余数再加上除数的值。
4.字符表达式:
由字符串运算符将字符型数据连接起来形成,其运算结果仍然是字符型数据。
字符串运算符有两个,优先级相同:
+:
前后两个字符串首尾连接形成一个新的字符串;
-:
连接前后字符串,并将前字符串的尾部空格移动到合并后的新字符串尾部。
5.日期时间表达式:
2个日期不能相加。
详见P57,可以使用的运算符也有+和-两个
6.setdefaultto设置默认目录,每次做操作都要首先做这个
7.由关系运算符将两个运算对象连接起来形成。
关系运算符表格:
运算符
说明
运算符
说明
<
小于
<=
小于等于
>
大于
>=
大于等于
=
等于
==
字符串精确比较
<>、#或!
=(两个是一起的)
不等于
$
子串包含测试
注:
运算符==和$仅适用于字符型数据,其他运算符适用于任何类型的,但除了日期型和日期时间型数据、数值型数据和货币型数据可以比较之外,其他情况下前后两个运算对象的数据类型要一致,$:
若左边字符串是右边字符字串就返回.T.,否则返回.F.。
==:
若左右两边字符串都相等则返回.T.,否则返回.F.。
①数值型、货币型数据比较:
按数值的大小比较,包括负号
②日期、日期时间型数据比较:
越早的日期或时间越小,反之越大
③逻辑性数据比较:
.T.大于.F.
④子串包含测试:
关系表达式:
“<字符型表达式1>$<字符型表达式2>”为子串包含测试,如果左字符串是右字符串的一个子字符串,则结果为逻辑真(.T.),否则为逻辑假(.F.)
8.“=”与设置setexacton/off命令有关
on:
先在较短字符串后补充若干个空格,使两个字符串长度相等,再….比较,若相等,则返回T,否则返回F。
off:
若右边字符串是左边字符子串就返回T,否则返回F。
9.设置字符排序次序的命令是:
setcollateto“<排序次序名>”排序次序名要放在引号中。
次序名可以是”Machine”、”PinYin”、”Stroke”,默认的是PinYin。
①Machine次序:
空格在最前面,大写字母字母序列在小写字母序列的前面,因此大写字母小于小写字母。
a~z越向后,越大,即z最大。
②PinYin次序:
按照拼音次序排列,对于西文字符而言,空格在最前面,小写字母序列在前,大写字母在后。
③Stroke次序:
无论中文、西文,按照书写笔画的多少排列。
10.赋值和相等比较的区别:
在赋值命令中:
<内存变量>=<表达式>;在相等比较命令中:
<表达式1>=<表达式2>
11.逻辑表达式的结果仍然是逻辑型数据,逻辑运算符有三个,即.NOT.(逻辑非)、.AND.(逻辑与)、.OR.(逻辑或),也可以省去两端的点,其优先级顺序依次为NOT、AND、OR。
NOT是单目运算符,其运算结果与操作数的值正好相反;
AND有并且的含义,只有当两个操作数的值均为逻辑真时,运算结果才为逻辑真;否则为逻辑假;
OR有或者的含义,两个操作书中,只要有一个为逻辑真,则运算结果为逻辑真;否则为逻辑假。
12.不同类型的运算符可能出现在同一表达式中,这时它们的运算优先级顺序是:
先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。
圆括号作为运算符,可以改变其他运算符的运算次序,圆括号里的应当先被运算出来。
但是有时候在表达式适当的地方插入圆括号,不是为了改变运算次序,而是为了提高代码的可读性。
2.3常用函数
⑴数值函数——数值型函数
1.求绝对值
ABS():
返回指定的数值表达式的绝对值
SIGN()符号函数:
返回指定数值表达式的符号。
当表达式的运算结果为正、负和零时,函数值分别为1、-1、0。
2.求平方根
sqrt()(非负数):
返回指定表达式的平方根。
自变量表达式的值不能为负。
3.取数值的整数部分(取整)
INT()(注意:
不考虑小数的大小):
返回指定数值表达式的整数部分
Ceiling():
返回大于或等于指定数值表达式的最小整数
Floor():
返回小于或等于指定数值表达式的最大整数
4.四舍五入函数
ROUND(数值1,数值2):
返回指定表达是在指定位置四舍五入后的结果。
数值1:
操作对象;数值2:
四舍五入的位置(正数表示小数位,负数表示整数位)
5.求余数函数
MOD(数值1(被除数),数值2(除数)):
返回两个数值相除后的余数
余数的正负号与除数相同。
若被除数与除数同号,那么函数值即为两数相除的余数;若异号,则函数值为两数相除的余数再加上除数的值。
6.圆周率函数
PI():
返回∏的值(数值型),该函数没有自变量
7.求最大值和最小值函数
MAX与MIN
MAX(数值表达式1,数值表达式2,。
。
。
)
Max(11,15,-99,105,250,5)
自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须一致(例见P62)
⑵字符函数
1.求字符串的长度
Len():
返回指定字符表达式值的长度,即所包含的字符个数,函数值为数值型。
注意:
一个字母、数字、符号占一个字节,一个汉字占二个字节
2.大小写转换函数
LOWER(<字符表达式>):
大写转小写,其他字符不变
UPPER(<字符表达式>):
小写转大写,其他字符不变
3.空格字符串生成函数
SPACE(<数值表达式>):
返回由指定数目的空格组成的字符串
Space(50)—在前面生成50个空格
4.删除前后空格函数
Trim():
返回指定字符表达式值去掉尾部空格后形成的字符串
ltrim():
返回指定字符表达式值去掉前导空格后形成的字符串
alltrim():
返回指定字符表达式值去掉前导和尾部空格后形成的字符串
5.取子串函数
格式1left(字符串,数字):
从指定字符串的左边取指定长度的字符串作为函数值
格式2right(字符串,数字):
从指定字符串的右边取指定长度的字符串作为函数值
格式3substr(字符串,起始位置,数字):
从指定字符串的指定位置取指定长度的字符串作为函数值
注意:
如果省略了数字项,则取到最后一个字符
6.计算子串出现次数函数
Occurs(<字符表达式1>,<字符表达式2>):
返回第一个字符串在第二个字符串出现的次数,函数值为数值型
7.求子串位置函数
At(<字符表达式1>,<字符表达式2>[,<数值表达式>]):
函数值为数值型,如果<字符表达式1>是<字符表达式2>的子串,则返回<字符表达式1>值的首字符在<字符表达式2>值中的位置;若不是子串,则返回0。
Atc(<字符表达式1>,<字符表达式2>[,<数值表达式>]):
功能与上述类似,但在子串比较时不区分字母大小写。
注:
第三个自变量[,<数值表达式>]用于表明要在<字符表达式2>值中搜索<字符表达式1>值的第几次出现,默认值是1。
8.子串替换函数
Stuff(<字符表达式1>,<起始位置>,<长度>,<字符表达式2>):
用<字符表达式2>值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。
替换和被替换的字符个数不一定相等。
若<长度>为0,则相当于在<字符表达式1>中由<起始位置>指定的字符前面插入<字符表达式2>。
若<字符表达式2>值为空串,则相当于在<字符表达式1>中删去由<起始位置>,<长度>指明的子串。
9.字符替换函数
Chrtran()详见P64
10.字符串匹配函数
Like(字符串1,字符串2):
比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)。
注意:
字符串1位置出现通配符
⑶日期时间函数
1.系统日期date()返回值:
日期型,返回当前系统日期
2.系统时间time():
以24小时制的hh:
mm:
ss格式返回当前系统时间,函数值为字符型。
3.系统日期时间datetime():
返回当前系统日期时间,函数值为日期时间型
4.提取日期的年份月份和日期
Year():
从指定的日期表达式或日期时间表达式中返回年份。
Mouth():
从指定的日期表达式或日期时间表达式中返回月份。
day():
从指定的日期表达式或日期时间表达式中返回天数。
注:
这三个的返回值都是数值型
Hour()minute()sec()分别从指定的日期时间表达式返回小时、分钟、秒数部分。
返回值都是数值型。
⑷数据类型转换函数
1.数值型转换字符型
Str(<数值表达式>[,<长度>[,<小数位数>]]):
将<数值表达式>的值转换成字符串,转换时根据需要自动进行四舍五入。
注意:
如果没有最后第三个数字,就会取整数。
<小数位数>的默认值为0,<长度>的默认值为10。
2.字符串转换成数值型
val(<字符表达式>):
将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。
注意:
若字符串内出现非数字字符,那么只转换前面部分;若字符串的首字符不是数字符号,则返回数值零,但忽略前导空格。
转换后小数点后的会自动保留二位小数
3.字符串转换成日期或日期时间
CTOD():
将括号内的值转换成日期型数据
Ctot():
将括号内的值转换成日期时间型数据
“2011-04-03”
4.日期或日期时间转换成字符串
DTOC():
将日期时间型或日期型数据的日期部分转换成字符串
TTOC():
将日期时间型数据的日期部分转换成字符串
5.宏替换函数
&<字符型变量>[.]:
替换出字符型变量的内容,即函数值是变量中的字符串。
如果该函数与其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 VFP 个人 整理 资料