资源描述
文件扩展名及备份文件扩展名
文件
扩展名
备份扩展名
文件
扩展名
备份扩展名
项目
.pjx
.pjt
数据库
.dbc
.dct
表
.dbf
.fpt
表单
.scx
.sct
程序
.prg
报表
.frx
单索引
.idx
结构化复合索引
.cdx
菜单格式
.mnx
菜单程序
.mpr
查询
.qpr
视图
.vcx
第一章 数据库基础知识
1、数据库管理系统:DBMS;数据库应用系统:DBAS;数据库系统:DBS;数据:DB
DBS包括DBMS,DBAS,DB
2、实体间的联系:一对一,一对多,多对多。
3、数据库中的数据模型:网状模型,层次模型,关系模型。
4、关系:一个关系就是一个二维表,每一个关系有一个关系名。
5、元组:二维表中的行称为元组。
6、属性:二维表中的列称为属性。
7、域:属性的取值范围。
8、关系→表;关系名→表名;属性→字段;元组→记录;行→记录,元组;列→字段,属性。
9、传统的集合运算:并,差,交。
10、专门的关系运算:选择(水平方向) for,while,where
投影(垂直方向) fields,select
联接(一对一,一对多,多对多)
11、定义数组:dime/declare 数组名(3,4)
第二章 VF基础知识
1、创建项目:①通过菜单创建
②命令:creat project项目名
2、打开项目管理器:①通过“文件→打开”菜单项
②命令:modify project 项目名
3、各类文件选项卡:①数据选项卡(数据库,自由表,查询,视图)
②文档选项卡(表单,报表,标签)
③类
④代码
⑤其他
第三章 数据与数据运算
1、字段数据类型(11种)
字符型
C
双精度型
B
数值型
N
整型
I(4)
逻辑型
L(1)
货币型
Y(8)
日期型
D(8)
备注型
M(4)
时间型
T(8)
通用型
G(4)
浮点(动)型
F
* N包括Y,F,B,I
2、变量:在程序运行过程中,其值可能发生变化的量。
3、变量的分类:字段变量,内存变量,数组变量,系统变量,对象变量。
4、常用的函数
①、数值型函数
1.绝对值函数
【函数格式】 ?abs(<数值表达式> )
【函数功能】 返回指定“数值表达式”的绝对值
【返回值类型】 数值型
eg:?abs(-1) 1
2.平方根函数
【函数格式】 ?sqrt(<数值表达式>)
【函数功能】 返回指定“数值表达式”值的平方根。“数值表达式”的值必须是大于或等于零
【返回值类型】 数值型
eg:?sqrt(25) 5
?sqrt(81) 9
?sqrt(7^2-4*2*4) 4.12
3.取整函数
【函数格式】 ?int(<数值表达式>)
【函数功能】 返回指定“数值表达式”整数部分的值
【返回值类型】 数值型
eg:?int(6489.658) 6489
?int(123.58) 123
4.四舍五入函数
【函数格式】 ?round(<数值表达式1>,<数值表达式2>)
【函数功能】 对指定的<数值表达式1>进行四舍五入运算
【使用说明】 <数值表达式2>指定四舍五入运算精确的位数。如果“数值表达式2”是正整数,它指定保留的小数位数;如果“数值表达式2”是0,它指定精确到个位;如果“数值表达式2”是负整数,它指定精确的整数位数
【返回值类型】 数值型
eg:?round(678.657,0) 679
?round(678.657,3) 678.657
?round(678.657,-1) 680
5.求余函数
【函数格式】 ?mod(<数值表达式1>, <数值表达式2>)
【函数功能】 求<数值表达式1>除以<数值表达式2>后的模
【使用说明】 若两参数的值大于0,则模为余数;若两参数一正一负,则模为余数与“数值表达式2”之和;若两参数均为负,则模为余数取反。遵循的原则:一、模的符号与表达式2的相同;二、余数的绝对值小于除数(<表达式2>)的绝对值
【返回值类型】 数值型
eg:?mod(100,3) 1
?mod(100,-3) -2
?mod(15,8) 7
?mod(8,15) 8
6. e次方函数
【函数格式】 ?exp(<数值表达式>)
【函数功能】 返回ex的值(x为<数值表达式>)
【返回值类型】 数值型
eg:?exp(1) 2.72
7.最大值函数
【函数格式】 ?max(<表达式1>, <表达式2>…)
【函数功能】 返回各个表达式中的最大值。其中各个表达式的数据类型相同
【返回值类型】 字符型、数值型、日期型,由表达式决定
eg:?max(12,5,8,36) 36
?max(”a”,”b”,”d”,”e”,”y”) y
8.最小值函数
【函数格式】 ?min(<表达式1>, <表达式2>…)
【函数功能】 返回各个表达式中的最小值。其中各个表达式的数据类型相同
【返回值类型】 字符型、数值型、日期型,由表达式决定
eg:?min(12,5,8,36) 5
?min(”a”,”b”,”d”,”e”,”y”) a
9.对数函数
【函数格式】 ?log(<数值表达式>)
【函数功能】 返回以e为底的自然对数值
【返回值类型】 数值型
eg:?log(2.72) 1
10. 圆周率函数
【函数格式】 ?pi(<表达式>)
【函数功能】 求表达式的圆周率
【返回值类型】 数值型
eg:?pi( ) 3.14
②、字符型函数
11.字符串长度测试函数
【函数格式】 ?len(<字符表达式>)
【函数功能】 返回字符型表达式的长度(字节数)
【返回值类型】 数值型
eg:?len(”df”) 2
?len(”dfjj”) 4
12.小写字母转换大写函数
【函数格式】 ?upper(<字符表达式>)
【函数功能】 把字符表达式中的小写字母转换为大写字母
【返回值类型】 字符型
eg:?upper(”good”) GOOD
?upper(”school”) SCHOOL
13. 大写字母转换小写函数
【函数格式】 ?lower(<字符表达式>)
【函数功能】 把字符表达式中的大写字母转换为小写字母
【返回值类型】 字符型
eg:?lower(“GOOD”) good
?lower(”SCHOOL”) school
14.生成空格字符串函数
【函数格式】 ?space(<数字>)
【函数功能】 返回一个全是空格的字符串,空格数由<数字>决定
【返回值类型】 字符型
eg:?space(5)+”kk” □□□□□kk
?space(3) □□□
15.删除尾空格函数
【函数格式】 ?rtrim(<字符表达式>)或?trim(<字符表达式>)
【函数功能】 删除指定字符串右边的尾随空格
【返回值类型】 字符型
eg:?trim(”□ab□a□□□”) □ab□a
16.删除前空格函数
【函数格式】 ?ltrim(<字符表达式>)
【函数功能】 删除指定字符串左边的空格
【返回值类型】 字符型
eg:?ltrim(”□□□ab□□ax□x□□□”) ab□□ax□x□□□
17.删除所有空格函数
【函数格式】 ?alltrim(<字符表达式>)
【函数功能】 删除指定字符串左右两边的空格
【返回值类型】 字符型
eg:?alltrim(” □□□abc□□□”)+”def” abcdef
18.子字符串函数
【函数格式】 ?substr(<字符表达式>,<起始位置>,<字符个数>)
【函数功能】 从指定的字符串中截取字符,形成一个新的字符串
【使用说明】 <起始位置>是数值型表达式,它指定从第几个字符开始截取,[<字符个数>]也是数值型表达式,它指定连续截取字符的个数。如果省略“字符个数”,则截取到最后一个字符为止。
【返回值类型】 字符型
eg:?substr(”abcdef”,2,3) bcd
?substr(”abcdef”,2) bcdef
19.左子串函数
【函数格式】 ?left(<字符表达式>),<字符个数>)
【函数功能】 从指定是字符串左边第一个字符开始截取字符,形成一个新的字符串
【使用说明】 <字符个数>是数值型表达式,它指定连续截取字符的个数
【返回值类型】 字符型
eg:?left(”abcde”,2) ab
?left(”abcdefg”,4) abcd
20. 右子串函数
【函数格式】 ??right(<字符表达式>),<字符个数>)
【函数功能】 从指定是字符串右边第一个字符开始截取字符,形成一个新的字符串
【返回值类型】 <字符个数>是数值型表达式,它指定连续截取字符的个数
字符型
eg:?right(”abcde”,2) de
?right(”abcdefg”,4) defg
21.字符串1在字符串2出现的次数
【函数格式】 ?occurs(<字符表达式1>,<字符表达式2>)
【函数功能】 返回字符表达式1在字符表达式2中出现的次数
【返回值类型】 数值型
eg:?occurs(”A”,”ABCDABCD”) 2
?occurs(”A”,”abcdabcda”) 0
22.求位置函数
【函数格式】 ?at(<字符表达式1>,<字符表达式1>,<数值表达式>)
或?atc(<字符表达式1>,<字符表达式1>,<数值表达式>)
【函数功能】 返回<字符表达式1>在<字符表达式2>从左边数第<数值表达式>次数出现的位置
【使用说明】 at区分大小写,而atc不区分大小写
【返回值类型】 数值型
eg:?at(”a”,”bacda”) 2
?at(”a”,”bacdaaabdea”,5) 11
?at(”A”,”abcdaaa”) 0
?atc(”A”,”BACDAAABDEa”,5) 11
23.求位置函数
【函数格式】 ?rat(<字符表达式1>,<字符表达式2>,<数值表达式>)
【函数功能】 返回<字符表达式1>在<字符表达式2>从右边数第<数值表达式>次数出现的位置
【返回值类型】 数值型
eg:?rat(”a”,”bacda”) 5
?rat(”a”,”bacdaaabdea”,5) 2
?rat(”A”,”abcdaaa”) 0
24.替换函数
【函数格式】 ?stuff(<字符表达式1>,<数值表达式1>,<数值表达式2>,<字符表达式2>)
【函数功能】 从指定的字符串中截取字符,形成一个新的字符串
【使用说明】 截取<字符表达式1>中,从<数值表达式1>开始,<字符表达式2>替换<数值表达式2>位数,形成新的字符串。
【返回值类型】 字符型
eg:?stuff(”计算机ABC”,3,4,”你好”) 计你好ABC
?stuff(”数据库”,5,6,”管理系统”) 数据管理系统
?stuff(”计算机ABC”,5,4,”你好”) 计算你好C
25.替换函数
【函数格式】 ?chrtran(<字符表达式1>,<字符表达式2>,<字符表达式3>)
【函数功能】 用<字符表达式3>替换<字符表达式1>中与<字符表达式2>相同的字符串,并形成一个新的字符串
【返回值类型】 字符型
eg:?chrtran(”计算机ABCD”,”ABCD”,”你好”) 计算机你好
26.匹配函数
【函数格式】 ?like(<字符表达式1>,<字符表达式2>)
【函数功能】 判断<字符表达式1>是否与<字符表达式2>完全相同
【使用说明】 若<字符表达式1>与<字符表达式2>完全相同,则显示逻辑值为真,反之为假
【返回值类型】 逻辑型
eg:?like("abc","abc") .T.
?like("abc","aBC") .F.
?like("abc□","aBC") .F.
?like("abc□","abc") .F.
?like("abc□","abc□") .T.
③、日期与时间函数
27.日期函数
【函数格式】 ?date()
【函数功能】 返回当前系统日期。返回日期的约定格式为mm/dd/yy
【返回值类型】 日期型
28.时间函数
【函数格式】 ?time()
【函数功能】 返回当前系统时间。返回时间的约定格式为hh:mm:ss。其中hh表示小时,mm表示分,ss表示秒。
【返回值类型】 字符型
29.日期时间函数
【函数格式】 ?datetime()
【函数功能】 返回当前系统日期与时间。
【返回值类型】 字符型
30.年函数
【函数格式】 ?year(<日期表达式>)
【函数功能】 返回<日期表达式>的年的数值,返回的年用四位数字表示
【返回值类型】 数值型
eg:?year(date()) 2007 ****系统当前日期为2007-07-24
31.月函数
【函数格式】 ?month(<日期表达式>)
【函数功能】 返回<日期表达式>的月的数值
【返回值类型】 数值型
eg:?month(date()) 7 ****系统当前日期为2007-07-24
32.月函数
【函数格式】 ?cmonth(<日期表达式>)
【函数功能】 以英文单词形式返回<时间表达式>中的月的数值
【返回值类型】 字符型
eg:?cmonth(date()) July ****系统当前日期为2007-07-24
33.日函数
【函数格式】 ?day(<日期表达式>)
【函数功能】 返回<日期表达式>的日的数值
【返回值类型】 数值型
eg:?day(date()) 24 ****系统当前日期为2007-07-24
34.星期函数
【函数格式】 ?dow(<日期表达式>)
或?cdow(<日期表达式>)
【函数功能】 返回<日期表达式>对应的当天星期几
【返回值类型】 数值型 字符型
eg:?dow(date()) 3 ****系统当前日期为2007-07-24
?cdow(date()) Tuesday ****系统当前日期为2007-07-24
35.时函数
【函数格式】 ?hour(<时间日期表达式>)
【函数功能】 返回<时间日期表达式>的时的数值
【返回值类型】 数值型
eg:?hour(datetime()) 13 *****系统当前时间为13:26:46
36.分函数
【函数格式】 ?minute(<时间日期表达式>)
【函数功能】 返回<时间日期表达式>的分的数值
【返回值类型】 数值型
eg:?minute(datetime()) 26 *****系统当前时间为13:26:46
37.秒函数
【函数格式】 ?sec(<时间日期表达式>)
【函数功能】 返回<时间日期表达式>的秒的数值
【返回值类型】 数值型
eg:?sec(datetime()) 46 *****系统当前时间为13:26:46
④、转换函数
38.数值转换为字符函数
【函数格式】 ?str(<数值表达式>,[,<长度>[,<小数位数>]])
【函数功能】 把<数值表达式>的值转换为字符串
【使用说明】 ①.<数值表达式>指定被转换的数据。<长度>指定转换后字符串的总长度,长度的缺省值为10。<小数位数>指定转换后允许保留的小数位数
②.如果“长度”大于<数值表达式>的字符个数,在字符前面用空格补齐;如果“长度”小于整数部分的数字长度且不指定<小数位数>,输出一串星号(*)。
③.如果不指定<小数位数>,那么只返回<数值表达式>的整数部分,若<数值表达式>有小数部分则进行四舍五入。若指定<小数位数>,则返回指定的小数位数,并按该有效位数进行四舍五入。长度的缺省值为10
【返回值类型】 字符型
eg:?str(5664) 5664
?str(5664.25) 5664
?str(1357.246,6,2) 1357.2
?str(1357.246,8,2) 1357.25
?str(1357.246) 1357
?str(1357.246,3) ***
39.字符转换为数值函数
【函数格式】 ?val(<字符表达式>)
【函数功能】 <字符表达式>指定被转换的字符型文字。val()函数从左到右依次转换,遇到非数字字符就停止转换
【返回值类型】 数值型
eg:?val(”125.587”) 125.59
?val(”246xs35”) 246.00
?val(”xs135”) 0.00
40.字符转换为日期函数
【函数格式】 ?ctod(<字符表达式>)
【函数功能】 把字符型日期转换为日期型数据
【使用说明】 <字符表达式>指定被转换的字符型数据
【返回值类型】 日期型
eg:?ctod(”06/10/2007”) 06/10/07
41.日期转换为字符函数
【函数格式】 ?dtoc(<日期表达式>[,1]
【函数功能】 把日期型数据转换为字符型数据
【使用说明】 ①<日期表达式>指定被转换的日期型数据
②选择1,按yyyymmdd的格式返回结果。缺省该选项,按mm/dd/yy的格式返回结果
【返回值类型】 字符型
eg:?dtoc({^2007-02-10}) 02/10/07
42.字符转换为ASCⅡ码函数
【函数格式】 ?asc(<字符表达式>)
【函数功能】 返回<字符表达式>值的第一个字符的ASCⅡ码
【返回值类型】 数值型
eg:?asc(”a”) 97
?asc(”A”) 65
43. ASCⅡ码转换为字符函数
【函数格式】 ?chr(<数值表达式>)
【函数功能】 返回<数值表达式>值表示的ASCⅡ码转换为字符
【返回值类型】 字符型
eg:?chr(97) a
?chr(65) A
⑤、其他函数
44.测试首字符是否为字符函数
【函数格式】 ?isalpha(<字符表达式>)
【函数功能】 测试<字符表达式>首字符是否为字符
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”) .T.
?isalpha(”123aaa”) .F.
45.测试首字符是否为0—9数字函数
【函数格式】 ?isdigit(<字符表达式>)
【函数功能】 测试<字符表达式>首字符是否为0—9数字
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”) .F.
?isdigit(”123aaa”) .T.
46.测试首字符是否为小写函数
【函数格式】 ?islower(eg:? <字符表达式>)
【函数功能】 测试首字符是否为小写函数
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”) .T.
47.测试首字符是大写函数
【函数格式】 ?isupper(<字符表达式>)
【函数功能】 测试首字符是否为大写函数
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”) .F.
48.宏代换函数
【函数格式】 &<字符型内存变量>
【函数功能】 返回字符型内存变量的值
【返回值类型】 字符型
eg:①a=”y”
y=”123”
?&y 123
②a=”b”
b=”123”
?a b
?&a 123
?&a=123 .T.
49.测试数据范围函数
【函数格式】 ?between(<表达式1>,<表达式2>,<表达式3>)
【函数功能】 如果<表达式1>的值在<表达式2>和<表达式3>之间,则返回逻辑真值,反之为假
【返回值类型】 逻辑型
eg:?between(12,13,20) .F.
?between(18,13,20) .T.
?between(“c”,”a”,”y”) .T.
50.测试数据是否为空函数
【函数格式】 ?empty(<表达式>)
【函数功能】 测试指定表达式是否为空,如果表达式为空,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:?empty(“□□□”) .T.
?empty(“0”) .T.
?empty(“54”) .F.
51.测试数据是否为空函数
【函数格式】 ?isnull(<表达式>)
【函数功能】 测试指定表达式是否为空,如果表达式为null,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:?isnull(null) .T.
?isnull(“125”) .F.
?isnull(“□□□”) .F.
52.测试类型函数
【函数格式】 ?vartype(<表达式))
【函数功能】 测试指定表达式的数据类型
【返回值类型】 字符型
eg:?vartype(123.123) N
?vartype(“addsdfsd”) C
53.去括号函数
【函数格式】 ?type(<”表达式”>)
【函数功能】 去掉最外一层括号,并判断指定表达式的数据类型
【返回值类型】 字符型
l type函数返回值为C,N,D,L,M,S,U(S为屏幕型,U为未定义的数据类型)
eg:?type([“123”] C
?type(‘{06/10/2007}’) U
?type(“5>2”) L
*************************************************************************************
小结:
1. 函数都要加括号,都要有自变量,都必须带参数;
2.函数的类型与返回值必须保持一致;
3. 带括号的是函数,不带括号的是命令。
*************************************************************************************
5、表达式(优先级顺序由高到低排列)
①.算术运算符
运算符
说明
eg
结果
()
分组优先
?2*(4+2)
12
单目-
取数的相反数
?-100
-100
单目+
取数的原值
?+3.14
3.14
**或^
乘幂
?2^3
8.00
%
取模
?100%33
1
*
乘
?7*9
63
/
除
?10/3
3.33
+
加
?$12+$45
57.0000
-
减
?$67-21
46.0000
l 运算顺序为:先乘方,再乘除与取模,后加减,同一级别运算由左向右,圆括号可以改变运算的先后次序,若有圆括号嵌套,则按先内后外的次序处理。
②字符运算符
运算符
操作
eg
结果
+
将两个串简单连接在一起,参加连接的串可以是字符串,字符字段,内存变量等
?”visual□”+”foxpro”
?”计算机”+[文化]
?”计算机□”+[文化]
visual□foxpro
计算机文化
计算机□文化
-
连接两个字符串,并将前一个字符串的尾部空格移至后一个字符串之后
?”计算机□”-[文化]
?”□windows□”-“98”
计算机文化□
□windows98□
$
包含比较运算。用于查看一个串是否包含在另一个串中
?”I”$”Beijing”
?”i”$”Beijing”
.F.
.T.
l 两字符串相加表示原位连接;
l 两字符串相减,将第一个字符串后面的空格去掉,放到总字符串后,总字符串数不变。
③日期时间运算符
l 两日期相减,表示相差的天数;
l 两时间相减,表示相差的秒数;
l 一个日期加/减一个数,表示多个天以后/前;
l 一个时间加/减一个数,表示多个秒以后/前;
l set stric to 0 是将严格日期转换为传统(普通)日期
l 两日期/时间相加=错误
④关系运算符
运算符
操作
eg
结果
<
小于比较运算
?3<2
.F.
>
大于比较运算
?3>2
.T.
=
等于比较运算
?”abcd”=”ab”
.T.
<>,#,!,=
不等于比较运算
?5<>3
.T.
<=
小于或等于比较运算
?56<=78
.T.
>=
大于或等于比较运算
?35>=45
.F.
= =
字符串精确等于比较
?”abcd”= =”ab”
.F.
* set exact off (左包含右,返回值为真,右包含左,返回值为假)
eg:?”ab”=”abc” .F.
?”abc”=”abc” .T.
?”abcd”=”abc” .T.
* set exact on (先用空格补齐位数,在做比较)
eg:?”ab□”=”abc” .F.
?”abc□”=”abc” .T.
?”abcde”=”abcd” .F.
?”ab”=”ab□□□” .T.
?”ab”=”abc□□□” .F.
⑤逻辑运算符
l not或!当条件成立时,返回值为真,反之为假(右包含左为真,左包含右为假)
l and 左右同时为真,返回值为真,反之为假
l or 左右同时为假,返回值为假,只有一个为真是,返回值为真
l 优先级顺序:not >and >or
while>for ?for>while 字段变量>内存变量
⑥运算符的优先级
圆括号>算术运算符>字符串运算符>日期和日期时间运算符>关系运算符>逻辑运算符
第四章 数据库及其操作
1、创建数据库:①.在项目管理器中建立
②.在菜单中建立
③.命令:creat database 数据库名
2、打开数据库:open database 数据库名
3、删除数据库:delete database 数据库名
4、修改数据库:modify database 数据库名
5、关闭数据库:close database
6、打开表设计器:modify structure
7、增加表中字段:alter table 表名 add 字段名
8、删除表中字段:alter table 表名 drop 字段名
9、修改表中字段:alter table 表名 rename 原字段 to 新字段
10、更改字段类型及宽度:alter table 表名 alter 字段名+类型(宽度)
11、显示表:list structure
12、显示全部表记录:list
13、显示当前表记录:display
14、记录的绝对定位:go n
15、浏览,修改表:browse
16、编辑,修改表:edit/change
17、批量修改:replace all 字段 with 字段
18、逻辑删除(只在记录前加*,不删除):delete
19、恢复逻辑删除:recall
20、物理删除:①.pack 只删除带*的记录
②.zap 物理删除表中全部记录
21、关闭表:use
22、打开表:use 表名
23、复制表记录:use 表名;copy to 新表名
24、复制表结构:use表名;copy structure to 新表名
25、追加表记录:①.将另一个表中的记录添加到该表中:use要追加记录的表名;
append from有记录的表名
②.在尾部追加记录:append
③.在尾部增加一条空记录:append blank
26、插入表记录:①.在当前记录的的后面插入一条记录insert after
②.在当前记录的的后面插入一条空记录insert blank
③.在当前记录的的前面插入一条记录insert after
26、显示所有含条件的记录:list for
27、显示满足条件的记录:list while
28、显示字段:list fields
29、指针记录的定位:①.bof() 文件头
②.go top 第一条记录
③.go bottom 最后一条记录
④.eof() 文件尾
⑤.skip 向下一条记录(不包含当前记录)
⑥.all 所有记录
⑦.locate for 满足条件的第一条记录
⑧.continue 继续查找满足条件的下一条记录
30、记录的范围:①.next n 向下n条记录
②.rest 从指针指向位置开始的所有记录
③.record n 当前记录
31、在数据库关闭/删除的情况下建立的表为自由表,自由表字段名最长为10个字符
31、在数据库打开/修改的情况下建立的表为数据库表,数据库表字段名最长为128个字符
32、创建数据库表:open database 数据库名;creat表名
33、创建自由表:确定当前没有打开数据库,使用命令:creat 表名
34、将自由表添加到数据库中:open database 数据库名;add table 表名
35、将数据库表移出数据库:open database 数据库名;remove table 表名
************************************************************************************
小结:
1. 用use 打开表时,记录号位于第一条记录;
2. 执行带all的命令,记录指针指向eof;
3. bof的记录总是1,eof的记录号是记录数+1;
4. 空表的总记录是0,bof的记录号是1,eof的记录号是1
*************************************************************************************
36、排序:①.建立排序:sort on 字段名a/d/c to新表名
②.a(asc):升序; d (desc):降序;c:不区分字母的大小写
37、索引:①.索引的种类:主索引,候选索引,唯一索引,普通索引
②.建立索引:index on 关键字 tag 索引文件名
③.打开索引:set index to 索引文件名
④.关闭索引:set index to
⑤.查找索引:find /seek
⑥.删除索引:delete tag all 索引标识
⑦.主控索引:set order to 索引名
⑧.建立永久链接的条件:子表有索引,父表必须有主索引
⑨.建立临时链接:窗口→数据工作区
命令:set relation to 父表字段名 into 子表名 additive
38、互换表中记录:先打开表
go 1;scatter to aa(数组名) ;go 3;scatter to bb(数组名);
go 1;gatter from bb;go 3;gatter from bb
************************************************************************************
小结:
1. 排序要执行两次,按关键字和记录号,要打开表;索引只执行一次,按关键字,不需要打开表;
2. 排序生成一个新表,索引是针对原表;
3. 升降序的表示与书写方式不同;
4. 排序与索引的两个to 的含义不同,排序的to 表示到一个新表,索引的to 表示建立单索引文件,索引文件不能按降序排,只能按升序排;
5. 表达式的连接方式不同,排序用(,)逗号,索引用(+降序 –升序)加减号;
6. 自由表有三个索引:候选索引,唯一索引,普通索引;
7. 数据库表有四个索引:主索引,候选索引,唯一索引,普通索引
8. 一个表只能有一个主索引,可以有多个候选索引,唯一索引,普通索引;
9. 主索引和候选索引表示表记录的唯一性。
******************************************
展开阅读全文