VF总复习资料1Word文件下载.docx
《VF总复习资料1Word文件下载.docx》由会员分享,可在线阅读,更多相关《VF总复习资料1Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
内存变量>
一次可以给多个变量赋同一值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()?
111
?
BOF()?
.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
修改:
EDIT[范围][FOR<
CHANGE[范围][FOR<
BROWSE[范围][FOR<
][FIELDS<
字段名表>
](边浏览边修改)
成批替换:
REPLace[范围][FOR<
]<
字段名>
WITH<
,[<
其中范围这ALL时不能省略
统计命令:
COUNT[范围][FOR<
]TO<
SUM[范围]<
[FOR<
AVERAGE[范围]<
[FOR<
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<
[功能]对表中的一行或多行记录的某些列值进行修改。
3、删除数据记录
[命令]DELETEFROM<
[WHERE<
[功能]删除表中的一行或多行记录。
表结构
增加字段:
altertable<
add(字段1类型,字段2类型,...)
删除:
altertable<
dropcolumn<
修改字段名:
altertable<
renamecolumn<
旧字段名>
to<
新字段名>
设置有效性字段:
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&
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<
循环变量>
初值>
终值>
[step<
步长>
<
循环体>
ENDFOR
2.说明:
当步长为1时,可省,否则用STEP加步长。
FOR与DOWHILE的区别:
FOR循环只能用于已知循环次数。
内存变量的作用域:
1、PUBLIC变量名(建立公共变量任何位置都可使用)
2、PRIVATE变量名(建立私有变量只属于某段过程及其下的程序)