当前位置:文档之家› VF学习笔记完整版

VF学习笔记完整版

VF学习笔记完整版
VF学习笔记完整版

*VF学习笔记*

章节.Ⅰ

1.选择查询:“标记”

select*from 个人账号记录where 名称="工商银行"

2.改变主窗口字体大小

命令:_screen.fontsize=25

3.清除主荧幕内容

命令:clear

4.项目建立命令:create project <要建立的项目文件名>

5.字符型数据

1).字符型数据输出时都必须加定界符[]、""、''<任选其一>。定界符都必须成对输出,否者无效,如遇定界符嵌套使用,以最外成的定界符为准,期间的定界符都是字符型数据。

(定界符定义了字符型数据从哪里开始到哪里结束,其间的数据都属于字符型数据)

2).其次,VF中的汉字、数字、空格都属于字符型数据。

(字符型数据是原样输出,必须区分大小写)

*一个?代表"输出"

两个??代表"不换行输出" *

章节Ⅱ

1.表达式

①由数据、变量、函数、运算符构成的式子。

②用来计算、判断和数据的转换。

1)数值型表达式:(其结果也是数值型的)———————————————————————

优先级运算符说明

1 ( ) 形成表达式内的子表达式

2 * *或^ 乘方运算

3 * / % 乘除运算、求余运算

4 + - 加减运算

----------------------------------------------

1@求余运算%和取余函数MOD()的作用相同,结果的正负号与除数一致。

2@如果余数与被除数同号就是两数相除的余数,反之则把两数相除的余数加上除数的值。2).字符表达式

①它只有加和减两种运算。

②不管哪种运算,它的结果仍然是字符串。

③两个字符串相加,其结果就是两个字符串首尾相连。

④连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。

示例:"ABC "+"123"="ABC123 "

3)日期时间型表达式

@计算格式没有日期+日期/日期+-日期时间/日期时间+日期时间。————————————————————————————————————格式结果及类型

<日期>+<天数> 日期型。指定若干天后的日期

<天数>+<日期> 日期型。指定若干天后的日期

<日期>-<天数> 日期型。指定若干天后的日期

<日期>-<日期> 数值型。两个指定日期相差的天数

<日期时间>+<秒数> 日期时间型。指定若干秒后的日期时间

<秒数>+<日期时间> 日期时间型。指定若干秒后的日期时间

<日期时间>-<秒数> 日期时间型。指定若干秒前的日期时间

<日期时间>-<日期时间> 数值型。两个指定日期时间相差的秒数——————————————————————————————————————

4)逻辑表达式<.T.真 .F.假>

①它的运算结果任然是逻辑型数据

②它只有三个运算符

a.NOT <表达式或值>:其结果刚好与NOT后面的结果相反。

b.<表达式1> AND <表达式2>:必须1和2的值都为真,整个AND才返回真,反之返回假。

c.<表达式1> OR <表达式2>:只要一边为真,整个OR就返回真值,否则就返回假值。eg:?11<122 and 34+55<11 <.F.>

?11<122 and 34+55>11 <.T.>

?11<122 or 34+55>11 <.T.>

?11<122 or 34+55<11 <.T.>

?not 34+55<11 <.T.>

?not 34+55>11 <.F.>

5)关系表达式

①关系表达式也是一种逻辑表达式。

②它的结果<表达式1> <关系运算符> <表达式2>。

③它的运算结果任然是逻辑型数据。

所有关系运算符:>、<、=、<>/#或!=、<=、>=、==、$

@数值和货币的比较依据

①数值越大就越大。

②正数大于负数。

@用命令设置输出日期时间格式的命令:set date to

日期年份输出设置命令:set century on/off<默认两位>

@日前和日期时间的比较依据:

①越晚的日期越大,反之越小。

②日期与年龄刚好相反,日期大的年龄小。

@逻辑数据的表达依据:

.T.>.F. <真大于假>

@<字符串1>$<字符串2>

美元符号用来测试左字符串是否是右字符串的子串,如是返回真,反之为假。

我们对其定义为:

拿左边的整个字符串与右边的整个字符串做比较,只要能在右边字符串中找到一个或一部分或一个整体与右边一模一样,左边就是右边的字符串。eg:?"abcd"$"abcde" <.T.>

?"abcd"$"abc" <.F.>

@<字符串1>=<字符串2>

等号是用来测试左边是否是右边的前缀,如是返回真,反之为假。

我们对其定义为:

拿左边字符串的最左边的一个或一部分或一个整体与右边做比较,只要与右边的整体一模一样,右边就是左边的前缀。

eg:?"abcd"="abcde" <.F.>

?"abcd"="abc" <.T.>

@①数字字符的比较:从左向右一个一个的比较数字的大小。

②字母字符的比较:

a.按拼音顺序排序(笔划):每个大写字母大于它的小写字母,并且每个大小写字母都小于

后面的字母。

b.按机器码排序:每个字幕的大写小于小写,并且每个字母的小写大于后面的大写。

③汉字字符的比较:

a.按拼音顺序(机器码):比较两个汉字的拼音字母。

b.按笔划排序:比较两个汉字的笔划数,笔划数多的就大。

*@<字符串1>==<字符串2>

必须左右两边的长度,且对应的内容完全相同时才返回真,反之为假。*

*@set exact on 时,<字符串1>=<字符串2>

①必须字符串1和2的内容相同时,且长都不相同时才返回真。

②如果长度不同,系统会自动在较短字符串的尾部补足与另一长度相同时,才返回真。

*N>C>关>逻辑。*

章节Ⅲ

*数据库:

1)它是存放数据的一个仓库(其拓展名为.dbc)

2)建立数据库有三种方法:

①在项目中建立。

②从“新建”对话框中建立。

用命令交互建立命令:create database <数据库名>/?

打开数据库的命令:open database <数据库名>/?

修改数据库的命令(真正打开数据库设计器):modify database <数据库名>/?

关闭数据库的命令:close all

删除数据库命令:delete database <数据库名>/?

@如果指定的数据库存在,则直接打开该数据库;如果不存在,则自动建立并打开。

当有多个数据库打开时,制定一个数据库为当前数据库的命令:

set database to <指定数据库名>

如此命令:set database to 不指定数据库名时,此使得所打开的数据库都不是当前数据库(所有数据库其实都还没有关闭)*

*表的操作

1)VF中的表分数据库表和自由表两种。

2)表由结构和数据构成。

3)表的结构由名称、字段名、行和列构成。

4)建立表的命令:create <表名>

use *关闭表

use <表名> *打开表

brows *浏览打开的表*

*如果建立表结构后保存过,那么再次打开表是不能直接向里面输入数据的,此时,要使用以下几种方法输入数据:

1)[表]--[追加新纪录] *快捷命令:ctrl+y

*一次只能追加一条记录

2)[显示]--[追加方式] *一次则可以追加多条记录

使用命令:append *

append blank *在表的尾部增加一条空白记录*

@练习1.0

1)把供应商名含有“华”的地址改为贵阳。

使用命令:/replace 地址with "贵阳" for "华"$供应商名/。

2)把在WH2工作的员工工资提高15%。

使用命令:/replace 工资with 工资+工资*0.15 for 仓库号

="WH2"/。

3)把职工号E3所签订的订单逻辑删除。

使用命令:/delete for 职工号= "E3"/。

4)把仓库在北京的面积增加100平方米。

使用命令:/replace 面积with 面积+100 for 城市="北京"/。*

* modify structure @打开表设计器*

*在VF中,数据库和表都必须以独占的方式打开。

<打开表浏览器命令:browse>

修改表的记录:增加记录、删除记录、插入记录、修改记录<都只是对数据的更改>

<记录指针所在的行叫当前记录,初次打开的表,记录指针在表的第一行> 1)插入记录:insert @在当前记录的下排插入新的记录。

insert before @在当前记录的上排插入新的纪录。

insert blank @在当前记录后添加一个空白行。

insert before blank @在当前记录前添加一条空白记录。*

*在VF中的物理删除基础上进行的操作:

逻辑删除:在记录前打上删除标记。

方法:1)直接在记录前打标记。

2)[表]--[切换删除标记]

3)ctrl+t

4)命令:delete @把当前记录打上标记

delete all @打所有记录都打上标记

delete for <条件> @把满足条件的记录打上标记

恢复记录:1)becall @恢复当前记录

2)becall all @恢复所有记录

3)becall for<条件> @把满足条件的记录恢复

物理删除:1)pack @把打上标记的记录彻底删除

2)zap @物理删除表中的所有记录,不删表,使用需谨慎

@也称清空表

修改记录:<填充、替换、更新>

1)replace <要修改的字段名> with <要替换的数据>

2)replace all <要修改的字段名> with <要替换的数据>

3)replace <要修改的字段名> with <要替换的数据> for <条件>

注:①只把当前记录指定字段值进行修改;

②把表中只把指定字段只进行替换和修改;

③把表中指定字段值进行修改和更新。*

*显示记录:<只在主窗口中显示记录>

list @表中所有记录输出在主窗口

display @只把表的当前记录输出在主窗口

list field <指定的字段名> for <满足的条件>

list off/on @关闭/显示记录名

@练习问题:在使用命令list off/on @关闭/显示记录名时,好像只对list命令的结果有效。*

*指针定位:

1.直接定位<也称直接定位>

go[to] @N指的是记录号为N;

go top @将指针定位到第一条记录;

go bottom @将指针定位到最后一条记录。

eg:go 3

goto 4

2.相对定位

skip @针对当前记录,向下移动一行;

skip N @针对当前记录,向下移动N行;

skip -N @针对当前记录,向上移动N行;

skip -1 @针对当前记录,向上移动一行.

3.查询定位

locate for <条件> @将指针定位到满足条件的记录上

注:a.如果没有满足条件的记录,将之镇定指向结束标识;

b.如果有多条满足条件的记录,只想满足条件的第一条记录上;

c.如果要继续指向第二满足条件的记录,用continue命令(不能独用)。

@continue命令不能单独使用,必须与locate for <条件> 连用。

@found() 如果该函数返回真,则找到满足条件的记录;反之,则找不到。*

*关于索引:

1.索引是一种排序技术。

2.索引可以提高查询速度,但会降低更新速度。

3索引是建立表与表之间联系的基础。

4.索引不能独立存在,必须依附于表。

5.索引建立后会自动声称索引档.idx(但索引档)和.cdx(复合索引档)。

6.复合索引又分为结构复合索引和非结构复合索引.

7.一个完整的索引由索引名+索引类型+索引表达式构成.

8.VF中有四种索引:主索引、普通索引、唯一索引、候选索引。

9.建立索引属于修改表的结构,因此必须打开表设计器.

10.建立索引时就是....

@主索引:1)只有数据库表才能建立主索引。

2)一个表只可以建一个主索引。

3)建立主索引的字段中不能出现重复值。*

*用命令建立索引:

1)建立普通索引

index on <索引表达式> tag <索引名>

2)建立候选索引

index on <索引表达式> tag <索引名> candidate

3)建立唯一索引

index on <索引表达式> tag <索引名> unique

@在VF中没有建立主索引的命令(其排序方式都是默认升序),如要建

立降序索引在其后加desc 。@ *

*其他命令:

删除指定索引:delete tag <索引名>

删除所有索引:delete tag all

使索引生效:set order to <索引名>

set order to 关闭当前索引,使之无效。(并未生效)

注:用命令建索引会立即生效,手动建立索引不会立即生效,必须使用命令才会生效。*

*数据的完整性包括实体完整性、域完整性、参照完整性。

1.实体完整性:为表中建立主索引就是保证实体的完整性。

2.域完整性:保证字段取值范围的完整性。

①规则:它必须是一个逻辑或关系表达式,以返回真或假。

②信息:它必须是一个字符串,内容用以提示用户。

③默认值:它是提前预订好的数据,用以节省用户输入的次数,但它的

内型必须与当前字段一致。

注:信息必须在规则的前提下才能显示。

3.参照完整性必须基于两张表。

设置参照完整性之前必须为两张表建立永久联系的步骤:

a.必须具有公共字段的两张表;

b.通过公共字段确定哪张是父表哪张是子表;

c.为父表创建主索引,为子表创建普通索引;

d.通过主索引名向普通索引方向拖出一条线即可.

@一对多联系,物理联系@

@无重复记录为父表,有重复记录为子表@

@参照完整性包括更新规则、删除规则、插入规则

①更新规则:

级联:把父表中记录修改,字表中对应的记录会自动更新

限制:若子表中有相关的记录,则禁止修改父表中的连接字段值(级联)删除:把父表中记录删除,字表中对应的记录会自动删除@ * @一个自由表只能添加到一个数据库,自由表和数据库表之间可以自由转换@

@在自由表中不能建立主索引,不能设置域完整性,参照完整性,永久联系,建立自由表示不能打开任何数据库@

@把自由表加入数据库用命令:ADD TABLE <表名>

把数据库表移出则用命令:BEMOVE TABLE <表名> [DELETE(相当于删除表)]@

*多工作区的使用

1.VF中有32767个工作区。

2.每个工作区的区号分别是1~32767,别名分别是A~J(1~10),W11~W32767(11~32767)。

3.VF默认总是在最小工作区工作(即A工作区)

4.CLOSE ALL是关闭所有档,并返回到A工作区。

5.1个表只能在一个工作区打开(档正在使用)

SELECT N @.N是指工作区的区号或别名切换指定的工作区。

SELECT 0 @.切换到当前最小工作区。

USE <表名> IN <工作区号> @在指定工作区打开表。

SELECT <> @它是测试当前工作区号的函数。

6.表与工作区之间的关系:

临时关联(逻辑联系)

a.该联系是临时存在的,VF一旦关闭就会自动消失。

b.只用在子表中创建普通索引,然后再使用命令SET RELAT/ON TO <父表索引名>

INTO <子表所在工作区号或别名> 即可建立。

章节.Ⅳ

*SQL语句有查询、定义、操纵、控制的功能。

1.查询功能是SQL语句的核心