VFP强化复习提纲.docx

上传人:b****5 文档编号:29191353 上传时间:2023-07-21 格式:DOCX 页数:30 大小:31.85KB
下载 相关 举报
VFP强化复习提纲.docx_第1页
第1页 / 共30页
VFP强化复习提纲.docx_第2页
第2页 / 共30页
VFP强化复习提纲.docx_第3页
第3页 / 共30页
VFP强化复习提纲.docx_第4页
第4页 / 共30页
VFP强化复习提纲.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

VFP强化复习提纲.docx

《VFP强化复习提纲.docx》由会员分享,可在线阅读,更多相关《VFP强化复习提纲.docx(30页珍藏版)》请在冰豆网上搜索。

VFP强化复习提纲.docx

VFP强化复习提纲

数据库管理系统VisualFoxPro程序设计复习提纲

第一章数据库基础知识

1、信息、数据、数据库、数据库管理系统、数据库系统和数据模型

数据:

存储在媒体上的能够识别的符号。

分为数值型和非数值型

信息:

被加工成特定形式的有意义的数据。

数据库(DB):

存储设备上,结构化的相关数据的有序集合。

数据库管理系统(DBMS):

数据库语言本身,创建数据库和编写应用程序。

是数据库系统的核心。

具体功能:

数据定义DDL、数据库操作DML、数据库控制DCL和数据字典。

数据库应用系统(DBAS):

用DBMS编写的应用程序。

数据库系统(DBS):

包括硬件系统(指计算机处理数据的计算机硬件部分)和软件系统(操作系统,数据库管理系统、数据库管理员、用户及各种应用程序、数据库)。

数据模型:

表示实体间联系的方法。

常用的有层次(树型)模型、网状模型、关系模型、关系对象型、面向对象型。

VisualFoxPro属于关系模型,处理的是一张线性的二维表格。

注意:

1)信息与数据的区别。

2)DB、DBMS、DBS谁是最重要和最核心的软件。

2、关系数据库的基本概念

关系:

一个关系就是一张二维表格,以磁盘文件的形式存在。

关系模式:

对关系的描述。

格式为:

关系名(属性名1,属性名2,……,属性名n)。

元组:

二维表格中的一行,存储文件中的一个具体的记录。

属性:

二维表格中的一列,属性值是各个记录中的字段值。

域:

属性的取值范围,即不同元组对同一个属性的取值所限定的范围。

关键字:

属性或属性的集合,其值能够唯一的标识一个元组关系的基本运算:

选择(找出满足给定条件的元组的操作,从横向行的角度),投影(从关系中指定若干属性组成新的关系,从纵向列的角度),联接(生成的新关系中包含满足联接条件的元组,将两个关系的属性名拼接)

注意:

1)关系、元组、属性三者关系。

2)关键字、候选关键字(表只能有一个关键字,关键字段不允许有重复值)。

第二章VFP基础

1、VisualFoxPro的主要性能指标及运行环境

性能指标:

记录数:

10亿条、字段数:

255个、C型<=254个字符、数值长度20位、有效位16位。

2、VisualFoxPro的基本语言成分

(1)文件类型:

.PJX、.DBC、.DBF、FPT、IDX(CDX)、FMT、FRX、PRG、.SCX、.SCT、.MEM、.MNX、.MPR、.QPR、.EXE、.APP、.TXT等。

注意:

熟练掌握.PJX、.DBF、.IDX(.CDX)、.PRG、.SCX

3.项目管理器

选项卡:

数据—-自由表、文档----表单、代码----程序

第三章VFP语言的基本元素

1)常量:

程序运行的过程中其值不会发生变化的量,分为字符型、数值型、日期型、逻辑型、日期时间型、货币型。

表中的常量直接输入,以下是程序中常量格式:

字符型(C字符串型)常量:

用定界符(单引号、双引号、中括号)括起来的字符串。

当定界符作为字符串的一部分时,用另外一种定界符。

数值型(N):

由0~9的数字,正、负符号,字母E组成。

例:

122.3,1.223e+2等。

日期型(D):

一般格式为mm/dd/yy。

VFP中的格式:

{^yyyy-mm-dd}{^yyyy-mm-ddhh:

mm:

ssam/pm}}

用CTOD函数转换,

如CTOD(“08/30/2003”)或用{^2003-08-30}格式输入。

逻辑型(L):

.t.或.y.,.f.或.n.

变量:

程序运行的过程中,其值可以改变的量,具有变量名,注意变量命名的规则(由字母或汉字开头的字母、数字、下划线串。

分为内存变量:

有C,N,D,L,S,T赋值时决定类型。

重新赋值可以改变类型。

字段变量:

有C,N,D,L,M依赖于数据库,类型在创建数据库时确定,改变库结构中字段类型,才能改变其类型。

数组变量:

(特殊的内存变量)先定义,后使用。

下标从1开始。

系统变量:

以下划线开头。

对象变量:

表单设计时引用

注意:

1)变量不能用引号,引号中的变量一定用&。

2)双重引号是?

”‘abdcd’”,而?

““abdcd””是错的。

3)字段名与内存变量名重名,字段名优先。

(2)函数

abs(),int(),sqrt(),max(),min(),round();&,trim(),ltrim(),at(),substr(),stuff(),space(),right(),left();type(),file(),field(),len(),row(),col(),prow(),pcol(),eof(),bof(),found(),deleted(),recno(),sele();time(),date(),year(),month(),day(),dow();upper(),lower(),ctod(),dtoc(),str(),val(),asc(),chr(),inkey(),readkey();iif()

Field(数值表达式1[,数值表达式2]):

指定工作区(数字表达式2)指定位置的字段名。

Inkey([数值表达式]):

返回最后按键的十进制ASCII代码值。

括号中的数值为等待时间(秒)。

注意:

1)&代换(g1=”中国”,?

“&g1”;x1=”123”,?

123+&x1;?

&g1与?

&x1的区别,x=stud.dbf,use&x;?

Fields

(1)-字段名,?

&fields

(1)-字段值)

2)Str()与Val(x=123,?

str(x)与str(x,3)的区别)

3)usestud,?

姓名(王二),?

len(姓名)—8、4

4)Bof()与Eof()为.T.的记录位置。

5)?

max(“A”,”B”)与 ?

max(“A”,”a”)

(4)运算符:

算术运算符:

+,-,*,/,%,**或^。

其值为一个数值,可以比较大小。

字符运算符:

+,-。

结果为字符串,可以比较大小

日期运算符:

+,-。

两日期可以相减,结果为两日期相差的天数。

可以加或减一个整数,结果将日期推前或延后多少天,仍为一个日期。

日期时间型相减为相隔的秒数。

关系运算符:

>=,<=,=,<>或#,<,>,$。

结果为逻辑值。

逻辑运算符:

.not.,.and.,.or.。

结果仍为逻辑值。

表达式:

单一的常量、变量、函数都为表达式,用括号、运算符将这些运算量(常量、变量、函数)连接起来的有意义的式子。

注意:

混合运算的优先次序:

括号→函数→算术(**→*、/→+、-)、字符、日期→关系→逻辑(.not.→.and.→.or.)。

注意:

错误的表达式:

2x+y,1

(5)命令结构、书写规则及命令的执行方式

命令的一般形式:

命令字[范围][表达式表][fields<字段名表>][for<条件>]

命令字:

英文动词,可只写前四个字母,不分大小写,但须为半角字符。

如DISP=DISPLAY。

范围:

操作的记录的范围,

有all

nextn

recordn

rest

条件:

由条件表达式担任,其值为逻辑值的表达式均可。

书写规则:

命令行最长8192字符,可用“;”续行。

执行方式:

交互式(命令窗口和菜单)和命令文件式(批处理)。

注意:

1)必须以命令动词开头,后面子项可交换。

2)listFOR是否党员,listFOR.not.是否党员,

第四章、表文件的基本操作

1、VisualFoxPro的启动和退出

启动:

开始→程序→MicrosoftVisualFoxPro。

SETDEFATOA

退出:

QUIT或文件→退出

2、表文件结构的操作

VFP中的表分为数据库表和自由表

自由表建立:

文件→新建→表

CREA<库文件名>

项目管理器/数据(选项卡)

注:

表设计器的使用。

建立扩展名为.dbf,若有备注字段还会生成相应的备注文件.FPT。

表文件结构的显示:

注:

刚建的表是打开的,

LISTSTRU[TOPRINT]连续

DISPSTRU[TOPRINT]分屏

注意:

总字节数比各字段字节数多1(删除标记)

表文件结构的修改:

打开表文件以后(刚建的表是打开的)

●显示→表设计器

●MODISTRU

可以增加和删除字段,对字段名,类型,宽度等进行修改。

注意,可能导致数据项丢失,分多次进行。

利用结构文件建立表文件结构:

COPYTO<表文件名>STRUEXTEND

CREA<新表文件名>FROM<结构表文件名>

表文件结构的复制:

COPYSTRUTO<库文件名>[FIELDS<字段名列表>]

3、文件操作:

文件的建立:

表文件的打开:

USE<库文件名>[ALIAS<别名>]

表文件的关闭:

USE

CLOSEDATABASE

CLOSEALL

CLEARALL

SETINDETO只关闭索引文件

QUIT

文件的复制:

COPYFILE<源文件名>TO<目标文件名>

表文件的复制:

(当前打开表)

COPYTO<新库文件名>[for<条件>][fields<字段名列表>][sdf]

文件的换名:

rename<源文件名>to<新文件名>

文件的删除:

delefile<文件名>若是表文件必须先关闭。

Erase<文件名>

文件的输出:

表文件打开后用list/disp记录

文本文件,命令程序文件用type<文件名>

4、数据的输入、编辑、输出;数据的录入与追加;数据的编辑修改;数据的输出。

数据的录入与追加:

建表时录入和追加式录入。

显示→追加方式

Appe[blank]

Appefrom<源库文件名>[fields<字段名列表>][for<条件>]

Appefrom<文本文件名>sdf[fields<字段名列表>][for<条件>]

记录的插入:

insert[before][blank]

数据的编辑修改:

(全屏幕)

edit

change

browse[nomodi、noappe]

表数据的输出:

list[范围][表达式表][for<条件>][off][toprint]

disp[范围][表达式表][for<条件>][off][toprint]

list范围省略时为all,disp范围省略时为当前记录,注加条件后的disp范围省略时也为ALL。

注:

以上操作完成后记录指针的位置。

注意:

1)edit和go可省略record.

2)Borw的“表”菜单:

属性、追加记录、追加新记录、删除记录、彻底删除记录。

5、数据记录指针的定位:

绝对定位;相对定位;条件定位

绝对定位:

gotop/bottom/<数字表达式>

相对定位:

skip±<数字表达式>

条件定位:

locafor<条件>

cont继续指向下一条符合条件的记录。

注意:

1)go1与gotop区别

2)cont只能在loca后

3)归纳移动指针的命令:

find、seek、list、replall、count、sum、aver

第五章排序、查询、统计、多表操作

1、数据库的重组:

物理排序:

生成排序表文件

sorton<字段名1>/a/d/c……to<新库名>[for<>][fields<>]

排序的字段可以是C,N,D,T,L等。

逻辑排序:

生成索引文件(.idx)

indexon<关键字表达式>to<索引文件名>单一索引

按关键字表达式值升序

indexon<关键字表达式>tag<标识名>[of<复合索引文件名>][asceding|descending][unique][additive]

注:

按关键字表达式值升序/降序排列,一个库可建立多个索引文件,同一时刻只有一个起作用。

Setorderto[<数字表达式>|[tag]<标识名>]设置主控索引。

索引文件的打开:

刚建的索引文件是打开的(对于结构化索引,随表的打开而自动打开,但需设主控索引)

Setindexto<索引文件名表>[orderto……]

Use<表文件名>index<索引文件名列表>[orderto……]

索引文件的修改:

打开后用reindex

索引文件的关闭:

setindexto或关闭表的同时关闭。

注意:

1)索引文件的数学的升序(关键1)英语的降序(关键2)。

2)结构索引文件的四种索引字段:

主索引、候选索引、唯一索引、普通索引

3)熟练用命令(setordertotag<标记名>)和菜单(表/属性)选择主控索引

2、表的查询:

顺序查询:

loca[范围][for<条件>]

cont

索引快速查询:

(建索引后)

find<字符>/<数字表达式>字符串可不用定界符。

find&<字符型内存变量名>

seek<表达式>

注(seek):

表达式可为C,N,D。

为C时须加定界符,为内存变量时不用&。

模糊查询:

用recno(0)测试刚超过目标的下一个记录。

注意:

1)loca和cont与循环的结合。

2)n=80,indeon数学tos1,用find和seek查找n。

3、数据计算:

记录统计;数值字段求和;求平均值;分类汇总。

记录统计:

count[范围][for<条件>]

数值字段求和:

sum[范围][表达式表][for<条件>][to<内存变量名表>]

求平均值:

aver[范围][表达式表][for<条件>][to<内存变量名表>]

分类汇总:

totalon<汇总关键字>to<汇总库文件名>……

注意:

分类汇总时,先按关键字索引,要看汇总结果须打开汇总库。

4、多工作区操作:

工作区的选择:

sele<工作区号>/<别名>/0

表文件的关联:

setrelato<关键字>into<别名>[addi]

注意:

1)被关联表在别名工作区打开并按关键字建索引,主表在当前工作区打开。

是一种临时关系。

分为:

同名字段关联

非同名字段关联

按数字表达式(记录号)关联。

2)被访问表STUD.DBF(1区)字段名姓名的引用:

A->姓名、A.姓名、stud->姓名、stud.姓名

表文件的联接:

被联接数据表在别名工作区上打开。

joinwith<别名>to<新库名>for<条件>[fields<>]

表文件之间的批量更新:

updateon<关键字>from<别名>repl<字段名1>with<表达式1>……[random]

表文件的关闭:

closeall

注意:

1)熟练掌握从一个表找到某人,显示他两个表的字段。

2)掌握用一个表数据替换另一个表字段数据。

3)三个表的串联和并联的关联方法。

第六章数据库与视图

1.数据库:

是一个包含表、索引、视图、表之间的永久关系等的容器.

与数据库操作相关的命令:

createdatabase<数据库名>

opendatabase<数据库名>

modidatabase打开数据库设计器

use数据库名.dbc

2.视图:

是一种虚表,但通过视图可更改基表中的内容。

分为本地视图和远程视图(应先建连接)。

注意:

1)用数据库中快捷菜单新建、添加、删除、表

2)数据库表与自由表的表设计器的区别。

3)学会建立表的永久关系。

(一对一、一对多)

4)学会建立视图。

第七章SQL语言

(1)表结构的创建:

creatable<表名>(列定义[,…][表约束])

例:

creatablestud(姓名char(8),性别char

(2))

(2)ALTERTABLE<表名>

[ADD<新列定义>]增加新列

[ALTER<列名><数据类型>]修改字段类型

[RENAMECOLUMN<列名>TO<新列名>]修改字段名

例:

ALTERTABLESTUDENTALTER学号N

ALTERTABLESTUDENTADD化学N(3)

注:

修改列时,不能改列名,不能将宽度减少(在列中已有数据时)

(3)删除数据表的命令格式:

(表可以打开,也可以不打开)

DROPTABLE<表名>

(4)向表中插入一新记录(末尾)

insertinto<表名>(列名1[,…])values(值1[,…])

insertintostud(学号)value(“20030101”)

(5)修改表中一行或多行记录的某些列的值

update<表名>set<列名>=<表达式>[,…][where<条件>]

updatezgset职工号="20030105"where职工号="20030101"

(6)删除数据记录

delefrom<表名>[where<条件>]

省略条件:

删除所有记录,该删除为逻辑删除(即给符合条件的记录打上删除标记*)。

(7)SQL查询

命令:

SELECT<字段名表>FROM<表文件名>[WHERE<条件>][groupby<分组字段>][having<筛选条件>][orderby<排序字段表>][asce][desc]

说明:

(1)<字段名表>:

查询输出的的字段,多个字段用“,”隔开,全部字段用“*”.

(2)FROM<表文件名>:

查询的表文件,可打开或不打开。

(3)WHERE<条件>:

引导查询条件。

(4)GROUPBY<列名>[,<列名>…][HAVING<筛选条件>]:

把查询结果中的行按一个或多个列的值分组;可以指定在查询结果中的各组应满足的条件。

(5)ORDERBY<列名>[ASC/DESC][,<列名>[ASC/DESC]…]:

用于指定一个或多个数据作为排序的依据。

例1:

简单查询

sele*fromstud&&从表stud.dbf中输出所有字段)

sele姓名,性别,数学fromstudwhere性别=”女”and数学>=60(and/or/not可加/不加两点)

&&从表中输出及格女同学的姓名、性别、数学字段

例2:

多表查询

selest1.姓名,st1.性别,st2.数学,st2.英语fromst1,st2wherest1.姓名=st2.姓名

&&两表所有相同姓名的字段

selest1.姓名,st1.性别,st2.数学,st2.英语fromst1,st2wherest1.姓名=”张三”.and.st2.姓名=”张三”

&&代替索引、关联

例3:

分组查询

sele*fromst1groupby性别havingcount(*)>=3

&&输出结果按性别分成两组,且只输出记录个数大于3的一组。

例4:

查询排序

sele*fromst1wheresubs(学号,1,2)=’99’orderby数学desc

&&查询结果只输出学号前两位为“99”,且输出结果按数学成绩降序排列。

例5:

嵌套查询(查询的条件是另外一个查询的结果)

Sele*fromstudwhere入学成绩=(sele入学成绩fromstudwhere;姓名=”张三”)

另注:

运算符and,or,not,betweenand,in,like(字符匹配_和%)。

%为任意长度的字符串,_为一个字符或一个汉字(据系统而定)

统计函数AVG,SUM,COUNT,MAX,MIN的使用。

第八章、程序设计

1、人机交互式输入输出语句:

wait

accept

input

注意:

这三个命令的区别。

2、程序文件的建立和执行(.prg)

建立:

modicommand<程序文件名>

菜单

项目管理器的代码选项卡下的程序

执行:

do<程序文件名>(命令窗口)

程序→运行(菜单)

(工具)

3、结构化程序设计的三种基本结构(顺序、选择、循环);常用的输入、处理、输出功能模块的设计方法。

条件格式:

If<条件>

……

[else

……]

endif

docase

case<条件1>

……

case<条件n>

……

otherwise

……

endcase

循环格式

(1)dowhile.not.eof()

……

skip…

enddo

(2)locafor<条件>

dowhile.not.eof()

……

cont…

enddo

(3)dowhilek<=N

……

k=k+1…

enddo

(4)dowhile.t.

……

Exit…

enddo

(5):

for<内存变量>=<初值>to<终值>[step<步长>]

循环体

endfor

(6)针对表中的记录进行操作

scan[范围][for<条件>]

循环体

endscan

注意:

1)注意进入死循环。

加以举例。

2)熟练编写九九乘法表、画宝塔形星号、用LOCA输入表中所有数学及格的同学、求5个数中最大的数、5个数排序。

4、主程序与子程序,过程与过程文件(.prg)

建立:

modicomm<过程文件名>

每一过程以proc<过程名>开头,以retu结束。

打开:

setprocto<过程文件名>

调用:

do<过程名>[with<参数表>]

注意:

过程调用中的参数传递(实参与形参的一一对应)。

5.内存变量

(1)作用域

1)局部变量(private宣布(屏蔽)、不宣布)、全局变量(public)

2)表单的各程序段定义变量只能局部使用。

(2)数组(先定义,后使用)

1)先定义(全是.F.)后赋值:

dime数组名(下标1[,下标2]),……

2)二维数组元素名和一维数组元素名互换。

例dimexyz(2,3)

y(2,1)与y(4)等价。

Y(1,1)①

Y(1,2)    ②

Y(1,3)    ③

Y(2,1)    ④

Y(2,2)    ⑤

Y(2,3)    ⑥

3)数组与库文件之间的数据传递:

scat[fields<……>]to<数组名>

注意:

有扩展数组元素和定义新数组功能。

Gatherfrom<数组名>[fields<……>]

注意:

数组元素的数据类型与字段类型匹配。

6、格式输入、输出命令

@行,列say<表达式>[get<变量>][pict<格式符>][function<功能符>][range<范围>][valid<条件>]

read

注意:

Pa=123.456

@4,10saypapicture‘***,***.**’&&输出:

****123.45

@4,10saypapicture‘$$$,$$$.$$’&&输出:

$123.45

7、菜单技术

(1)普通菜单:

1)?

“提示字符”

2)@say“提示字符”

3)text

“提示字符”

endtext

(2)亮条式菜单:

@行,列prompt“提

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1