VF总复习资料1.docx

上传人:b****3 文档编号:4122083 上传时间:2022-11-28 格式:DOCX 页数:16 大小:44.14KB
下载 相关 举报
VF总复习资料1.docx_第1页
第1页 / 共16页
VF总复习资料1.docx_第2页
第2页 / 共16页
VF总复习资料1.docx_第3页
第3页 / 共16页
VF总复习资料1.docx_第4页
第4页 / 共16页
VF总复习资料1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

VF总复习资料1.docx

《VF总复习资料1.docx》由会员分享,可在线阅读,更多相关《VF总复习资料1.docx(16页珍藏版)》请在冰豆网上搜索。

VF总复习资料1.docx

VF总复习资料1

VF参考资料

一、基础知识

㈠、1、数据库(DataBase,DB)

2、数据库管理系统(DataBaseManagementsystem,DBMS是核心)

3、数据库系统(DataBasesystem,DBS)

DBS包括DB和DBMS

㈡、数据模型

层次模型、网状模型、关系模型

我们所学习的数据库是属于关系模型,关系模型的实质就是一张二维表。

二维表:

二维表由行和列构成,行表记录或元组,列表字段或属性。

对二维表的基本操作有:

选择:

找出符合条件的记录(即行)

投影:

找出符合条件的字段(即列)

连接:

把多余的连在原有的后面(对两个或两个以上的数据库进行的操作)

二、数据类型:

常用的数据类型有:

数值型(N)25600000000002.56*10122.56E+12

字符型(C)

时期型(D,8)({mm/dd/yy},{^yyyy-mm-dd})

逻辑型(L,1)

货币型(Y,8)表示货币型时前面必须加$符

备注型(M,4)

通用型(G,4)

注:

日期类型的显示格式受到以下语句的影响(VF默认状态下是2位数年份月日年)

1、Setdateto功能:

设置日期的显示格式如:

SetdatetoYMD指以年月日的格式显示日期

MDY:

月日年DMY:

日月年

2、setcenturyon|off|功能:

以几位数字显示年份ON状态是以4位显示OFF(系统默认)以2位

2、常量与变量:

A、常量:

五种N型常量,C型常量,D型常量,L型常量,T型常量

字符型常量的定界符:

‘’、“”、[]

L:

.t..f.10.y..n.12/21/0112:

20:

10pM

B、变量:

①命名原则:

以字母(包括汉字在内)或下划线开头,后面可以跟字母、汉字、数字或下划线,最多不可超过256个字符。

例题:

找出下列哪些是常量哪些是变量,是什么类型的常量

123,JSJ,T,‘王一’,[折]、.t.,‘05/25/04’_123.45,$123.54,{^2001-05-23},you

②变量分为:

自定义内存变量和系统内存变量(大多以‘—’下划线开头)

内存变量和字段变量

字段变量是随着表的建立而建立的

ⅰ、自定义存变量的赋值:

两种

1)STORE<表达式>TO<内存变量>一次可以给多个变量赋同一值stor5toa,b,c

2)<变量名>=<表达式>一次可以给一个变量赋同一值a=5

ⅱ、自定义内存变量的显示:

?

表还一行显示

?

?

表示在同一条显示

注:

当字段变量和内存变量重名时,以字段变量优先;要想显示内存变量,需在内存变量前加M->或M.

例:

姓名显示字段变量

M.姓名显示内存变量

三、函数

VF中的五类函数:

数值计算函数、字符处理函数、类型转换函数、时期时间函数、测试函数

函数:

函数是由函数名和括号两部分组成,(除&(读作宏替换)‘取地址符’外)

(一)数值函数:

返回类型为:

数值型。

1.ABS(X):

取绝对值函数。

(1)正数的绝对值是本身,负数的绝对值是它的相反数。

(2)X:

代表数值。

例:

?

ABS(-2.5)2.5

2.ROUND(X,N):

四舍五入函数。

(1)N:

代表小数位数。

(2)若N的值为负数,其绝对值表示整数部分四舍五入的位数,舍入位后面的数字用零表示。

例:

①?

ROUND(123.45,0)123

②?

ROUND(123.55,-1)120

③?

ROUND(123.45,1)123.5

④?

ROUND(123.56,0)124

3.MOD(N1,N2):

取模函数。

(取余)

(1)正常的除法运算,如果余数和除数同号,余数即为模;否则模=除数+余数。

(2)同号取正,异号取负。

(3)N1:

被除数;N2:

除数。

(4)被除数中的小数部份不参与运算;余数与除数的符号相同。

例:

①?

MOD(7,4)3

②?

MOD(11,4)3

③?

MOD(-11,-4)-3

④?

MOD(11,-4)-1

4.INT(N):

取整函数

例:

①?

INT(2.5)2

②?

INT(-3.6)-3

用法:

判断X是否能被N整除。

INT(X/N)=X/N

5、ceiling(<数值表达式>)返回大于或等于指定数值表达式的最小整数。

Floor(<数值表达式>)返回小于或等于指定数值表达式的最大整数。

?

Ceiling(5.8),floor(5.8),Ceiling(-5.8),floor(-5.8)

65-5-6

(二)字符函数:

1.LEFT(字符串,N):

左子串函数。

返回字符型。

注意:

若N的宽度>字符串的宽度,则返回整个字符的表达式;如果N为负数或0则反回空字符串。

例:

①?

LEFT(“12345”,2)12

②?

LEFT(“中国共产党”,4)中国

2.RIGHT(字符串,N):

右子串函数。

返回字符型。

例:

①?

RIGHT(“中国”,2)国

3.SUBSTR(字符串,N1,N2):

取中间子串函数。

返回字符型。

N1:

从该位置开始,返回字符串。

N2:

返回的字符数。

若省略,则返回字符表达式全部字符。

例:

①?

SUBSTR(“ABCDEF”,2,3)BCD

②?

SUBSTR(“中华人民共和国”,5,4)人民

4.LEN(字符串):

字符串长度测试函数。

返回数值型。

例:

①?

LEN(“12.34”)5

5、去空格函数

trim(<字符表达式>)去尾部空格

Ltrim(<字符表达式>)去掉前导空格(即字符串左面的空格)

alltrim(<字符表达式>)去掉尾部和前导的空格

(三)日期函数:

1.DATE():

当前系统日期。

返回的是:

日期型

例:

DATE()返回当前的日期01/14/09

2.MONTH(日期)返回的是:

数值型

例:

MONTH(DATE())12

3.DAY(日期)返回的是:

数值型

例:

DAY(DATE())11

4.YEAR(日期)返回的是:

数值型

例:

YEAR(DATE())2006

时间函数:

1.TIME():

当前系统时间。

返回的是字符型。

例:

TIME()09:

19:

14

2.DATETIME():

当前系统日期时间。

返回的是日期时间型T。

例:

DATETIME()12/13/0609:

22:

58AM

(四)转换函数(若要进行比较,把它们都转换成C)

1.DTOC(日期):

日期转换为字符(D→C),返回字符型。

例:

DTOC(DATE())12/11/06

2.CTOD(字符):

字符转换为日期(C→D),返回日期型。

例:

CTOD(“12/11/06”)12/11/06

3.STR(数值,宽度,小数位数):

数值转换为字符(N→C),返回字符型。

注意:

宽度只与数值中的整数部分有关系。

若这个宽度>整数部份,全部显示,不足的左边空格来补,

反之宽度<整数部份,则显示N(宽度)个*。

若宽度缺省默认为10。

例:

①?

STR(123.456789,8,3)123.456(前面有一空格)

②?

STR(123.456,2)**

③?

STR(123.456)123(前面有7个空格)

④?

STR(123.556,6)124(前面有三个空格)

4.VAL(字符串):

字符转换为数值(C→N),返回数值型。

注意:

若指定的字符串以非数值字符开头(除空格、+、-号外),返回一个0。

默认保留两位小数,也进行四舍五入的原则。

该表达式最多由16位数字组成,若超过16们,则对其四舍五入。

例:

①?

VAL(‘123.45AB’)  123.45

②?

VAL(‘AB123’)0.00

③?

VAL(‘123.478’)123.48

(五)测试类函数:

1.BOF():

测试文件是否开始。

2.EOF():

测试文件是否结束。

3.RECNO():

测试当前记录号。

例:

USEXSDAGOBOTTOM

RECNO()?

RECNO()

110

BOF()?

EOF()

.F..F.

?

RECNO()?

RECNO()

111

?

BOF()?

EOF()

.T..T.

意义:

打开表指针指向第一条记录,并不意味着文件已经开始,只有指针上移,逻辑上指向第零条记录,但实际上仍指向第一条记录,才意味着文件已经开始。

当指针指向文件底,即最后一条记录时,并不意味着文件已经结束,只有指针下移,指向最后一条记录的下一条记录时,才意味着文件已经结束。

EMPTY(表达式)表达式为“空”返回.T.否则返回.F.?

empty(“231”)F

Isnull(表达式)空值(。

Null.)和空串的区别只有当表达式是.null.的时候结果才为.t.其它任何情况都为.f.

Vartype(表达式)功能:

测试表达式中返回值什么类型

如:

X=5<6

?

Varitype(x)L

IIF(<逻辑表达式>,<表达式1>,<表达式2>)功能:

测试逻辑表达式的值,若为真,返回表达式1的值,为假返回表达式2的值。

X=100

Y=300

?

iif(x>100,x-50,x+50),iff(y>100,y-50,y+50)

150250

at(字符表达式1,字符表达式2,表达式1在2中第几次出现)

返回表达式1在2中首次出现的位置。

区分大小写

at(“ab”,”dAbccab”)2

like(字符表达式1,字符表达式2)逻辑

比较2个表达式对应位置上的字符,若都匹配函数值为.T.,否则为.F.(表达式1中可以包含通配符*和?

*可以表示多个任意文字?

只能代表一个任意字符

如:

like(‘ab*’,’ab?

’)T

如:

like(‘ab?

’,’abcffffff’)T

六、特殊函数

1.SPACE(N):

空格生成函数N是多少就生成几个空格的位置字符型

例:

LEFT(‘伟大中国’,4)+RIGHT(‘伟大中国’,4)伟大中国’你好’-‘周’=‘你好周’

LEN(LEFT(‘伟大中国’,8)-SPACE

(2))10

四、运算符与表达式

表达式:

由运算符将常量、函数、变量连接起来的式子

五种表达式与运算符:

1、算数运算符:

+、–、*、/、%、^、()‘a’$abc’.t.

2、字符运算符:

+、–、$其中+号表示字完全连接,–号表示不完全连接,将符号左端字符串尾部空格移到整个字符串的右端。

listfor‘电’$家电名称

3、关系运算符:

<,>,<=,>=,=,==,<>,!

=,#,反回值是逻辑类型

其中=受到SETEXACT的限制,

当其值是ON的时候,(允许不精确)“CO”=“CO”值为.T.,当其值为OFF的时候,(必须一致)“CO”=“CO”值为.F.‘co’=’go’

4、逻辑运算符:

.NOT.非运算.AND.与运算.OR.或运算,优先顺序由高到低T*f

非真即假,非假即真

与运算相当乘运算,只有真与真是真,其余全为假

或运算相当加运算,只有假或假是假,其余全为真

5、日期时间运算符:

+,-

D+N=D,D-N=D,D-D=N,D+D不得值01/30/83-01/29/80

五种运算符的运算先后顺序(由高到低):

函数算术运算符字符运算符时期时间运算符关系运算符逻辑运算符

五、命令:

在VF当中一条命令只能占一行,多的在下行输入,但之间要用分号相连,每个命令可以只打前四个字母。

创建表:

create[表名]

打开表:

USE<表名>[IN工作区名ALIAS别名ORDER结构索引文件名]

Ctrl+W保存并关闭

打开数据库:

OPENDATABASE数据库名

删除表:

droptable<表名>

关闭表:

USE

清屏:

CLEAR

显示:

LIST[范围][FOR<条件>][fiel<字段名1,字段名2>](EOF指记录指针指向表中最后一条记录的下一条即表已经结束)

[范围]:

 

Display显示当前记录

指针定位:

 

插入:

INSERT[BEFORE][BLANK]

1INSERT本身表示后插

2INSERT[BLANK]在当前记录之后插入一条空白记录

3INSERT[BEFORE]在当前记录之前插入

4INSERT[BEFORE][BLANK]在当前记录之前插入一条空白记录

删除:

逻辑删除:

给满足条件的记录加上删除标记

DELETE[范围][FOR<条件>]

物理删除:

给加删除标记的记录彻底删除

PACK

复制表的命令:

先打开要复制的表,

复制表copy[字段名1,字段名2..]to新表名

复制表结构copystruto新表名

恢复删除:

RECALL[范围][FOR<条件>]

给加删除标记的记录恢复删除

清库:

ZAP=DELEALL

PACK

修改:

EDIT[范围][FOR<条件>]

CHANGE[范围][FOR<条件>]

BROWSE[范围][FOR<条件>][FIELDS<字段名表>](边浏览边修改)

成批替换:

REPLace[范围][FOR<条件>]<字段名>WITH<表达式>,[<字段名>WITH<表达式>]

其中范围这ALL时不能省略

统计命令:

COUNT[范围][FOR<条件>]TO<内存变量>

SUM[范围]<字段名表>[FOR<条件>]TO<内存变量>

AVERAGE[范围]<字段名表>[FOR<条件>]TO<内存变量>

TOTALON<字段名>TO<表名>

分类汇总:

先分类即逻辑排序,再汇总。

按照哪个字段排序就按照哪个字段汇总。

排序(索引功能加快查找速度):

逻辑排序INDEXON<关健字段名表>TO<排序文件名>(此文件名.IDX。

在关键字段名前加负号表子降序。

物理排序SORTON<关健字段名表>[/d//a]TO<排序文件名>(此文件名.DBF;默认升序/A,(asc)要想降序用/D(DESC))

查找LOCAFOR<条件>

CONT

DISP

六、SQL语言:

SELECT命令的格式:

SELECT语句的一般格式为:

[命令]:

SELECT[<字段>]

FROM[<数据库名!

>]<表名>[,[<数据库名!

>><表名>…]

[WHERE<连接条件>[AND<筛选条件>…>[AND/OR<筛选条件>[AND/OR<筛选条件>…>[GROUPBY<列名>[,<列名>…>[HAVING<筛选条件>

[ORDERBY<列名>[ASC/DESC]INTOTABLE<表名>

INTOCURSOR<临时表文件名>

INTOARRAY<数组名>

TOFILE<文本文件>

TOPRINTER<打印机中>

1.插入一行新记录

[命令]INSERTINTO<表名>[(<列名1>[,<列名2>…])]VALUES(<值1>[,<值2>…])

[功能]将新记录插入到指定的表中,分别用值1、值2等为列1、列2等赋值。

2、修改数据记录

[命令]UPDATE<表名>SET<列名>=<表达式>[WHERE<条件>]

[功能]对表中的一行或多行记录的某些列值进行修改。

3、删除数据记录

[命令]DELETEFROM<表名>[WHERE<条件>]

[功能]删除表中的一行或多行记录。

表结构

增加字段:

altertable<表名>add(字段1类型,字段2类型,...)

删除:

altertable<表名>dropcolumn<字段名>

修改字段名:

altertable<表名>renamecolumn<旧字段名>to<新字段名>

设置有效性字段:

altertable<表名>alter<字段名>setcheck<规则>error<出错信息>default<默认值>

修改字段类型:

ALTERTABLE表名ALTERCOLUMN字段名TYPE类型(长度)

更改现存表的名字:

  ALTERTABLE表名RENAMETO新表名;

给一个字段增加一个非空约束:

  ALTERTABLE表名ALTERCOLUMN字段名SETNOTNULL;

从一个字段里删除一个非空约束:

  ALTERTABLE表名ALTERCOLUMN字段名DROPNOTNULL;

建立侯选索引:

ALTERTABLE表名addunique索引表达式TAG索引名

删除侯选索引:

ALTERTABLE表名DROPunique索引表达式TAG索引名

建立主索引:

ALTERTABLE表名addPRIMARYKEY索引表达式TAG索引名

SQL语句中重要关键字:

Distinct:

去掉重复

Union:

将两个语句结果合并

EXISTS|NOTEXISTS:

查询中是否有返回值(用于查询嵌套中,后接子查询)

ANY|SOME|ALL:

ANY和SOME指子查询中有一些运行结果为真则结果为真,ALL是全部都为真结果才是真。

(用于查询嵌套中,后接子查询)

TopN前几条记录(必须和orderby一起用)

PercentN前百分之几(必须和orderby一起用)

查询和视图的区别:

查询有查询去向视图没有

视图有更新查询没有

视图是虚拟的表存在于数据库中新建前必须先打开数据库查询不用

查询和视图都可以通过添加表或视图新建

七、工作区

1、概念:

为了同时实现对多个表进行操作,VF提出了工作区的概念。

VF提供了32767个工作区,但同一时刻可以打开多个工作区,一个工作区同一时刻只能打开一个表,但一个表可以用不同的别名在不同的工作区打开。

VF启动时默认1号工作区为‘当前工作区’。

2、工作区的选择:

Selete<区号/别名>

Selete0:

指选择当前未被使用的最小工作区。

表之间的临时关联:

Setrelationto[表达式into工作区号|别名]

表达式:

父表子表的相同关键字段(必须是两个表共有的字段),且子表已激活以该字段为关键词的索引。

工作区号|别名:

指定需要建立关联的子表所在的工作区代号或子表别名。

Setrelationto:

不带任何参数,表示切断当前工作区一切关联。

如:

在‘学生信息’和‘学生成绩’两表之间按‘学号’为关键字建立关联。

Use1&&选择1号工作区

Use学生成绩&&打开子表

Indexon学号to学号&&为子表成绩按学号建立一个索引文件

Sele2&&选择1号工作区

Use学生信息&&打开父表

Setrelaiotnto学号into学生成绩&&在父表中与子表建立临时关联

八、VF中索引文件类型及索引类型

1、索引文件类型:

独立索引、结构复合索引、非结构复合索引

2、索引的建立(表设计器和命令):

INDEXON字段名|表达式[TO独立索引文件][TAG结构复合索引文件名][OF非结构复合索引文名]

注:

复合索引文件扩展名为:

.CDX独立索引文件扩展名为:

.IDX

3、索引文件的打开:

结构复合索引文件是随着表的打开而自动打开的

非结构复合索引文件和独立索引文件需要使用命令打开,两种方法如下:

A:

USE表名[INDEX索引文件名]

B:

SETINDEXTO索引文件名

4、索引类型:

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

主索引:

组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。

主索引只适用于数据库表的结构复合索引中。

自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。

候选索引:

在指定的关键字段或表达式中不允许有重复值的索引。

在数据库表和自由表中均可为每个表建立多个候选索引。

普通索引:

也可以决定记录的处理顺序,但是允许字段中出现重复值。

在一个表中可以加入多个普通索引。

唯一索引:

参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。

八、程序设计:

程序的构成:

顺序结构、选择结构、循环结构

1.

(1)选择结构:

(单分支)

IF<条件>

<语句1>

[ELSE

<语句2>]

ENDIF

(2)选择结构:

(多分支)

格式:

 DO CASE

CASE <条件1>

<语句1>

CASE <条件2>

<语句2>

CASE <条件N>

[OTHERWISE 

<语句N+1>]

ENDCASE

2.循环语句:

(一) DO WHILE <条件>

<循环体>

<改变循环条件的语句>

[LOOP]无条件返回循环

[EXIT]无条件退出

ENDDO

说明:

(1)循环体内必须有改变循环条件的语句,避免造成死循环。

(二)FOR语句

1.格式:

FOR<循环变量>=<初值>TO<终值>[step<步长>]

<循环体>

ENDFOR

2.说明:

当步长为1时,可省,否则用STEP加步长。

FOR与DOWHILE的区别:

FOR循环只能用于已知循环次数。

内存变量的作用域:

1、PUBLIC变量名(建立公共变量任何位置都可使用)

2、PRIVATE变量名(建立私有变量只属于某段过程及其下的程序)

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

当前位置:首页 > 工程科技 > 交通运输

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

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