VFP复习提纲.docx
- 文档编号:11746609
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:36
- 大小:179.66KB
VFP复习提纲.docx
《VFP复习提纲.docx》由会员分享,可在线阅读,更多相关《VFP复习提纲.docx(36页珍藏版)》请在冰点文库上搜索。
VFP复习提纲
2008级VFP复习提纲
VFP期末考试题型
一、单选题二、填空题
三、阅读程序写结果四、程序改错
第一章基础知识
⒈三个概念:
数据库、数据库管理系统、数据库系统与几者之间的关系
⒉三种常见的数据模型:
关系、网状、层次
3两个不同实体集的三种关系:
一对一、一对多和多对一
4.关系数据库管理系统的三种关系运算:
选择、投影、连接
5.在关系模型中规定关系必须具有以下特点:
表中每一列元素是类型相同的数据;列不能重名,列的顺序可任意放置;
表中任意两行不能完全相同;关系中的任何一个属性值都是不可再分的最小数据单位.
例:
有三个关系R、S和T
S
T
R
A
B
C
01
ab
k1
03
ac
m1
05
mm
T1
ABCABC
01abk105mmt1
03acm101abk1
由关系R和S通过运算得到关系T,则刚使用的运算为
A)并B)自然连接C)笛卡尔积D)交
第二章VFP的基础知识
1.常量、变量、函数、表达式。
常用数据的类型、名称、代码、书写格式;
常量的数据类型由不同的书写形式区分,有6种(P24,名称、代码、取值范围、书写格式以及P24-25的例题);
字符型C数值型N日期型D日期时间型T逻辑型L货币型Y
2.变量的类型、命名方法
内存变量、字段变量
3.表达式的类型、运算符及其优先级
总
优
级
表达式
分类
运算符与优先级
表达式
值的类型
①
数值
表达式
()→^|**→*,/,%→+,-
N类型
①
字符
表达式
()→+,-
C类型
①
日期
表达式
()→+,-
D、N
类型
②
关系
表达式
()→>,>=,<,<=,<>|#|!
=,=,==,$
L类型
③
逻辑
表达式
()→.NOT.→.AND.→.OR.
L类型
判断整数N的奇偶性,N/2=INT(N/2)或者MOD(N,2)=0或者N%2=0
判断“=”是赋值还是比较运算的方法:
如果“=”左边除了一个内存变量名外没有其他内容,则是赋值,否则是一个比较运算符号,例如pk1=123是赋值语句;pk2=x=y+3中第一个“=”是赋值,第二个“=”是比较
日期型表达式只能出现:
D±N=D和D-D=N,不能出现D+D的情况,否则一定是错的。
字段变量与内存变量同名时,字段变量优先,若要输出内存变量,必需加前缀M.或M->。
4.常用函数(请注意考察函数的参数、函数调用格式、函数返回值的类型、功能和规则)
①字符处理函数:
SPACE()、LEFT()、RIGHT()、ALLTRIM()、SUBSTR()、AT()、LEN()
②数值计算函数:
INT()、mod()
③日期时间函数:
DATE()、TIME()
④数据类型转换函数:
STR()、VAL()、DTOC()
⑤测试函数:
BOF()、EOF()、VARTYPE()、BETWEEN()、ISNULL()、RECNO()
例如:
下列哪一组函数返回值的类型均不相同(D)
A)BOF()、EOF()、ISNULL()、BETWEEN()
B)SPACE()、LEFT()、RIGHT()、ALLTRIM()、SUBSTR()
C)INT()、AT()、LEN()、VAL()、VARTYPE()
D)DATE()、TIME()、VAL()、BETWEEN()
函数调用的方法:
⑴?
<函数名>([参数1[,参数2]……])SUBSTR(C1,N1[,N2])
⑵变量=函数名([参数])
每个函数运算后都会返回一个值,称为函数值。
函数名、参数和函数值是函数的三个要素。
e.g.10≤a≤30的VFP书写格式为:
()a>=10.and.a<=30
例:
有如下赋值语句,结果为“大家好”的表达式是 (D)
a="你好"
b="大家"
A)b+AT(a,1)B)b+RIGHT(a,1)C)b+LEFT(a,3,4)D)b+RIGHT(a,2)
例:
依次执行下列命令:
指出各变量的类型
D={^2008-08-08}-{^2008-07-08}&&N
L=D=31&&L
Y=$12345+54321&&Y
M={^2008-07-08}+30&&D
Z="123.45"+"123.55=247"&&C
X=D+123&&N
5.文件(P41)
与表相关的文件:
.dbf.cdx.fpt与数据库相关的文件:
.dbc
查询文件:
.qpr项目文件:
.pjx
命令文件:
.prg与表单相关的文件:
.scx
菜单文件:
.mnx.mpr报表文件:
frx
第三章数据表的基本操作
⒈建立数据表
(1)表结构的建立与修改。
(2)表记录的浏览、增加、删除与修改。
CREATE学生信息
备注型字段用来存放字符,通用型字段用来存放电子表格、图片或声音、多媒体等可以链接或嵌入OLE对象的字段类型,他们都保存在与数据表文件同名的.fpt文件里。
学生信息.dbf学生信息.fpt
常用命令
USE、BROWSE、LOCATEALL、PACK、RECALLALL
GOTO|GO[TOP|BOTTOM|数值表达式]、SKIP[<数值表达式>]
2数据表的索引
索引:
结构化复合索引文件——.cdx(P69)
按功能可以将索引分为4种类型:
主索引、候选索引、唯一索引和普通索引(P66)
(1)主索引。
不允许出现重复值,一个表中只能建立一个主索引。
只能建立在数据库表中
(2)候选索引。
不允许出现重复值。
可建立多个候选索引。
(3)普通索引。
允许出现重复值,可以建立多个普通索引。
(4)唯一索引。
允许有重复值,只保存重复值中首次出现的的记录。
可建立多个唯一索引。
(5)建立索引命令:
INDEXON索引表达式TAG索引标识
[ASCEDING|DESCENDING][UNIQUE|CANDIDATE]
它可以是字段名,或包含字段名的表达式。
例:
以下关于主索引和侯选索引的叙述正确的是(A)
A)主索引和侯选索引都能保证表记录的惟一性
B)主索引和侯选索引都可以建立在数据库表和自由表上
C)主索引可以保证表记录的惟一性,而侯选索引不能
D)主索引和侯选索引是相同的概念
例:
使用数据库设计器为两个表建立联系,
一对一的关系:
首先应在父表中建立【主索引或候选索引】索引,
在子表中建立【主索引或候选索引】
一对多的关系:
首先应在父表中建立【主索引或候选索引】索引,
在子表中建立【普通索引】
例:
按某表的学号(C类型)与性别(C类型)建立普通索引,索引标识为xhxb,其命令是
INDEXON学号+性别tagxhxb
第四章数据库操作
1.数据库建立、修改、打开与关闭
创建数据库,向数据库添加数据表或从数据库删除数据表。
自由表和数据库表的区别:
对自由表不能建立主索引,不能定义数据完整性规则等,但是二者可以互相转换。
(P89)
例:
下列说法中正确的是(A)
A)自由表中的字段名最长只能有10个字符,数据库表则最多可为128个字符
B)当把表从数据库中移去变成自由表时,数据库表的长字段名将会保留
C)对于数据库表的长字段名,可以只使用字段名的前10个字符代表该字段
D)当把表从数据库中移去成为自由表时,使用长字段名创建的索引文件可继续使用
2数据完整性(P98,三性)
数据完整性规则包括三个部分:
实体完整性、域完整性和参照完整性。
(P98)
实体完整性——保证表中记录的唯一性(即在一个表中不允许出现重复记录),通过建立主索引或候选索引实现;(P98)
域完整性——保证表中字段数据的正确性,通过定义字段和记录有效性规则实现;(P99)
注意:
规则是逻辑型数据,信息是字符型数据。
(默认值与所设置的字段类型相同)
例:
使用SQL语句增加字段的有效性规则,是为了能保证数据的(D)
A.实体完整性B.表完整性C.参照完整性D.域完整性
例:
数据库表可以设置字段有效性规则,字段有效性规则属于(D)
A)实体完整性范畴B)参照完整性范畴
C)数据一致性范畴D)域完整性范畴
例:
数据库表可以设置字段有效性规则,该规则的数据类型是(A)
A)逻辑B)字符C)数值D)前三种都可能
参照完整性——表间规则,在对表中记录进行插入、删除和更新时用来保证相关表之间数据的完整性。
(P101)
建立参照完整性的步骤:
⑴对父表建立主索引,对子表建立候选索引或普通索引;
⑵建立表间联系;
⑶定义规则:
更新规则——级联、限制、忽略
插入规则——限制、忽略
删除规则——级联、限制、忽略
e.g.在成绩信息表中插入一条记录,要求在学生信息表中检查,如果存在相关的学号,允许插入,否则禁止插入。
需要在学生信息表与成绩信息表间建立永久联系,然后设置参照完整性规则,将插入规则设置为“限制”。
例:
以下说法中正确的是(B)
A)更新规则中没有级联B)插入规则中没有级联
C)删除规则中没有级联D)参照完整性的规则中都有级联
例:
有关参照完整性的删除规定,正确的描述是(C)
A)如果删除规则选择的是“限制“,则当用户删除父表中的记录时,系统将自动
删除子表中的所有相关记录。
B)如果删除规则选择的是“级联“,则当用户删除父表中的记录时,系统将禁止
删除子表相关的父表中的记录。
C)如果删除规则选择的是“忽略“,则当用户删除父表中的记录时,系统不负责
做任何工作。
D)上面三种说法都不对
第五章关系数据库标准语言SQL
⒈概念
结构化查询语言SQL(StructuredQueryLanguage),是关系数据库的标准语言。
⒉数据定义(CREATETABLE、DROPTABLE、ALTERTABLE三条命令)
CREATETABLE(创建自由表或数据库表、建立索引、定义域完整性和表间的联系。
)(P105)
e.g.创建一个教师表:
CREATETABLE教师(职工号C(6),性别C
(2)DEFAULT“女”)
E.G.创建一个成绩信息表,并与学生信息表建立永久关系,且成绩<=100:
CREATETABLE成绩信息;
(学号C(8),课程号C
(2),成绩N(5,1)CHECK成绩<=100,;
PRIMARYKEY学号+课程号TAG学号课程,;
FOREIGNKEY学号TAG学号REFERENCES学生信息)
DROPTABLE(删除表文件;P110)
ALTERTABLE(本命令共有三种格式,使用时有所不同,)(P108)
e.g.为学生信息表中的入学成绩字段设置有效性规则:
入学成绩必须大于或等于540分。
ALTERTABLE学生信息ALTER入学成绩SETCHECK入学成绩>=540
试比较:
在学生信息表中增加年龄字段,并设置有效性规则:
年龄必须大于0。
ALTERTABLE学生信息ADD年龄N
(2)CHECK年龄>0
e.g.为数据库表教师表设置主索引“职工号”。
ALTERTABLE教师ADDPRIMARYKEY职工号
为”学生”表增加一个”平均成绩”字段的正确命令是
ALTERTABLE学生ADD平均成绩N(5,1)
⒊数据操纵(INSERTINTO、UPDATE、DELETEFROM三条命令)
INSERTINTO(P111,向INTO短语指定的表尾插入一条新记录,其值为VALUES后面表达式的值,或者来自数组或同名内存变量。
)
(P112,修改指定表中指定字段的记录数据。
)
e.g.将少数民族学生入学成绩在原分数基础上加10分。
UPDATE学生信息SET入学成绩=入学成绩+10WHERE民族#”汉”
(P112,删除指定表中的记录。
)
⒋查询(P112-129)
不列入考试范围的知识点:
谓词EXIST;超连接(左右全连接)(即除此以外的查询都是考点,并且谓词中的IN、ANY、SOME、ALL及它们的否定,如NOTIN和超连接中的内部连接仍是考点)
注意:
SELECT查询中的where,groupby,having,orderby,top,as等
注意:
输出去向仅涉及输出到表文件。
1)带特殊运算符的条件查询between…and|in|like|isnull
2)简单的计算查询count()|sum()|avg()|max()|min()
3)分组与计算查询groupby|having
4)简单的嵌套查询where中出现select语句
5)使用谓词的嵌套查询ANY(SOME)|ALL|IN
6)连接查询joinon
7)排序orderby[ascending|descending]|topnpercent
cursor表名
8)查询结果的重定向输出intodbf|table表名
ARRAY数组名
部门表
部门号
部门名称
40
家用电器部
10
电视录摄像机部
20
电话手机部
30
计算机部
商品表
部门号
商品号
商品名称
单价
数量
产地
40
0101
A牌电风扇
200.00
10
广东
40
0104
A牌微波炉
350.00
10
广东
40
0105
B牌微波炉
600.00
10
广东
20
1032
C牌传真机
1000.00
20
上海
40
0107
D牌微波炉
420.00
10
北京
20
0110
A牌电话机
200.00
50
广东
20
0112
B牌手机
2000.00
10
广东
40
0202
A牌电冰箱
3000.00
2
广东
30
1041
B牌计算机
6000.00
10
广东
30
0204
C牌计算机
10000.00
10
上海
⑴SQL语句
SELECT部门号,MAX(单价*数量)FROM商品表GROUPBY部门号
查询结果有几条记录?
(C)
(一般GROUPBY后字段有几个不同的值,就有几条记录)
A)1B)4C)3D)10
⑵SQL语句
SELECT产地,COUNT(*)FROM商品表WHERE单价>200;
GROUPBY产地HAVINGCOUNT(*)>=2ORDERBY2DESC
查询结果的第一条记录的产地和提供的商品种类数是(C)
A)北京,1B)上海,2 C)广东,5D)广东,7
(写出这个题目查询的结果)
产地
单价
广东
350
广东
600
广东
2000
广东
3000
广东
6000
产地
单价
上海
1000
上海
10000
产地
单价
北京
420
产地
Count(*)
广东
5
上海
2
⑶SQL语句
SELECT部门表.部门号,部门名称,SUM(单价*数量)FROM部门表,商品表;
WHERE部门表.部门号=商品表.部门号GROUPBY部门表.部门号
查询结果是(B)
A)各部门商品数量B)各部门商品金额合计
C)所有商品金额合计D)各部门商品金额平均值
部门号
部门名称
SUM(单价*数量)
40
家用电器部
200*10=2000
40
350*10=3500
40
600*10=6000
40
420*10=4200
40
3000*10=30000
20
电话手机部
1000*20=20000
20
200*50=10000
20
2000*10=20000
30
计算机部
6000*10=60000
30
10000*10=100000
部门号
部门名称
SUM(单价*数量)
40
家用电器部
45700
20
电话手机部
50000
30
计算机部
160000
⑷SQL语句
SELECT部门表.部门号,部门名称,商品号,商品名称,单价;
FROM部门表,商品表WHERE部门表.部门号=商品表.部门号;
ORDERBY部门表.部门号DESC,单价
查询结果的第一条记录的商品号是(A)
A)0101B)0202C)0110D)0112
部门号
部门名称
商品号
商品名称
单价
40
家用电器部
0101
A牌电风扇
200.00
⑸SQL语句
SELECT部门名称FROM部门表WHERE部门号IN;
(SELECT部门号FROM商品表;
WHERE单价BETWEEN420AND1000)
查询结果是(A)
A)家用电器部、电话手机部B)家用电器部、计算机部
C)电话手机部、电视录摄像机部D)家用电器部、电视录摄像机部
部门号
40
20
部门名称
家用电器部
电话手机部
(7)列出单价最高的三种商品,请在空白处填上适当语句
sele*from商品表【orderby单价desctop3】
(8)例:
下面有关HAVING子句描述错误的是(B)
A)HAVING子句必须与GROUPBY子句同时使用,不能单独使用
B)使用HAVING子句的同时不能使用WHERE子句
C)使用HAVING子句的同时可以使用WHERE子句
D)使用HAVING子句的作用是限定分组的条件
第六章查询、视图与项目管理器
1.查询、视图的不同点
----视图可更新数据源表,而查询不能
----视图可访问远程数据,而查询不能
----视图只在数据库中存在,而查询独立数据库,是一个独立的程序文件(.qpr)
----视图的基表只能是数据库表,而查询的基表可以数据库表、自由表以及多个数据库的表
2.查询设计器与视图设计器选项卡的区别:
3.每个选项卡对应SELECT命令的子句
例如1:
“杂项”选项卡对应SELECT命令的子句中的[DISTINCT][topnpercent]
例如2:
打开查询设计器、运行查询文件、修改查询文件对应的命令
-------CREATEQUERY<查询文件名>
-------DO××××.qpr
-------MODIFYQUERY<查询文件名>
例如3:
打开视图设计器、案修改视图文件对应的命令
-------CREATESQLVIEW<视图文件名>
-------MODIFYVIEW<视图文件名>
4.项目管理器
主要选项卡的功能:
数据选项卡:
管理数据库、自由表、查询三类文件
文档选项卡:
表单、报表、标签三类文件
代码选项卡:
程序、API库、应用程序三类文件
项目文件的扩展名--------.PJX
第七章结构化程序设计
⒈IF结构(嵌套)
⒉DOCASE结构
⒊DOWHILE、FOR循环结构(单重循环)LOOP、EXIT
4.数组定义、赋值、初值
5.过程调用与返回语句
过程调用格式1:
DO<程序文件名>|<过程名>[with<实参表>]
过程调用格式2:
<程序文件名>|<过程名>([<实参表>])
过程返回语句:
RETURN[表达式]
6.内存变量的三种类型:
公共变量、私有变量和局部变量
PUBLIC、PRIVATE、LOCAL命令的使用
下列阅读程序写结果
例1:
.下列程序执行后,内存变量s和C值是:
(30945)。
s=0
c=1
fori=1to10
ifi%2=0
s=s+i
else
c=c*i
endif
next
?
s,c
SETTALKON
例2.下列程序执行后,内存变量c和t值是:
(5184700)。
dimea[10]
i=10
dowhilei>=1
a[i]=i
i=i-1
enddo
store1toc,t
j=1
dowhilej<=10
ifmod(j,3)=0orj%4=0
c=c*a[j]
else
t=t*a[j]
endif
j=j+1
enddo
?
c,t
例3:
程序改错,不允许增加和删除程序行,仅仅在“***error****”下方改正
程序的功能是:
从键盘上输入正整数N,分别求1~N之间能被3或4整除的个数。
input"n="ton
****error*****
san,si=0
i=1
dowhilei<=n
****error*****
ifint(i,3)=i/3
san=san+1
endif
ifi%4=0
si=si+1
endif
i=i+1
enddo
?
san,si
例4:
下列程序执行后,内存变量a和b值是:
(10200)。
clear
a=10
b=20
dosqwith(a),b&&参数a是值传送,参数b是引用传送
?
a,b
proceduresq
parametersx1,y1
x1=x1*x1
y1=2*x1
endpro
第八章面向对象程序设计
1.基本概念
名词解释:
对象、类、属性、方法与事件、对象的绝对引用和相对引用
VFP的基类分为容器类和控件类两种。
控件类:
label(标签)、command(命令按钮)、text(文本框)、timer(计时器)。
容器类:
commandgroup(命令按钮组)、form(表单)、formset(表单集)、grid(表格)、optiongroup(选项按钮组)、page(页面)
例:
下列描述不正确的是(D)
A)现实世界的每一个事物都是一个对象,对象所具有的固定特征称为属性
B)对象可以执行的动作或它的行为称为对象方法
C)对象的集合称为类,它包含了相似的有关对象的特征和方法,而对象是类的实例
D)事件是一种预先定义的特定动作,由用户或系统激活,能被对象识别和响应,事件可由用户创建。
2对象的绝对引用和相对引用
(1)绝对引用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 复习 提纲