资源描述
Visual FoxPro专升本教学专用讲义
******微软对VF中的命令语法约定*****
(1)VF中命令动词能够缩写前四个字母或四个字母以上
例如命令replace,能够写成repl repla replac
(2)命令格式阐明:<>表示必选项目 []表示可选项 | 表示二选一
list [范围] [for/while <条件>] [fields <字段名表>]
(3)VF命令不辨别大小写:如 modify stucture与MODIFY STUCTURE与mOdIfY StuctURE是同样的。
(4)假如命令带有参数,命令和参数、参数和参数之间需要用空格隔开,提议了解时,依照命令组成部分的含义来确定是否需要分隔符.
CREATE TABLE 学生(学号 c(8),姓名 C(8),性别 C(2))
(5)一般来讲,即命令以动词开头,短语次序无关! 下面三条命令等价:
list all for 性别="男" fields 姓名,性别,年龄
list for 性别="男" fields 姓名,性别,年龄 all
list fields 姓名,性别,年龄 all for 性别="男"
(6)一行写一个VF命令,一个命令写成多行时,要加上续行符号--分号,后回车,在下一行继续书写即可,如:
list fields 姓名,性别,年龄 ;
all for 性别="男"
(7)重要提示:VFP命令中所有的英文字符或标点符号应当都是半角符号!!
VFP数据库——概念要点
1.数据库是存储在计算机存储设备上,结构化的有关数据的集合。不但包括数据自身,并且包括有关事物之间的联系。
2.数据库管理系统(DBMS)。数据库系统的核心软件,操作系统支持下的系统软件。
3.数据库系统:引进数据库技术后的计算机系统。特点:数据共享,减少冗余;特定数据模型;较高的数据独立性。
4.数据模型3种:层次、网状、关系;关系模型:二维表结构来表示实体以及实体之间联系,关系数学理论为基础。
5.类是对一类相同对象的性质描述,这些对象具备相同的性质:相同种类的属性以及措施。类好比是一类对象的模板,有了类定义后,基于类就能够生成此类对象中任何一个对象。
***类的3特性:类具备封装性、继承性、多态性***
6.对象:客观世界里的任何实体都能够被看作是对象。对象能够是详细的物,也能够指某些概念。
7.关系定义:一个关系就是一张二维表,每个关系有一个关系名。在VFP里,称为"表",文献扩展名为.dbf。
3.元组:二维表水平方向的行称为一个元组。元组对应存储文献中的一个详细统计。
4.属性:二维表中垂直方向的列称为属性,又称为字段,每一列有一个属性名。
5.域:属性的取值范围,即不一样元组对同一个属性的取值所限定的范围称为域。
6.核心字:核心字是属性或属性集合,其值能够惟一的标识一个元组。
7.外部核心字:假如表中的一个字段不是本表的主核心字或候选核心字,而是另外一个表的主核心字或候选核心字,这个字段(属性)就称为外部核心字。
8.关系的特点
(1)关系必须规范化。规整二维表,列不能再提成更多的列。
(2)在同一个关系中不能出现相同的属性名。
(3)关系中不允许有完全相同的元组。
(4)在一个关系中元组的次序无关紧要。
(5)在一个关系中列的次序无关紧要。任意互换两列的位置不影响数据的实际含义。
l 实体联系:一对一、一对多、多对多
l 设有部门和职工两个实体,每个职工只能属于一个部门,一个部门能够有多名职工,则部门与职工实体之间的联系类型是()。A)m:n B)1:m C)m:k D)1:1
3种关系运算:选择(行)、投影(列)、连接(两表、共公属性);关系运算的成果仍然是一个关系。
数据完整性:数据的正确性和一致性;分3种:实体、参考、域完整性,前2个是关系数据库必须满足的!
1.实体完整性:实体惟一性--表中统计惟一性,即表中不许有重复的统计。用主核心字(主索引)或候选核心字(候选索引)来确保表中的统计惟一,即确保实体惟一性。
2.域完整性:数据类型的定义及字段有效性规则属于域完整性范围。
3.参考完整性:当插入、删除或修改一个表中的数据时,通过参考引用关联的另一个表中的数据,来检查对表的数据操作是否正确。建立参考完整性,必须首先建立表之间的永久联系。
参考完整性:一表的数据操作是否允许要参考另外一个表中的数据;
参考完整性规则包括更新规则、删除规则、插入规则。
l 更新规则要求了当更新父表中的连接字段(主核心字)值时,怎样处理有关的子表中的统计:
Ø 假如选择"级联",则用新的连接字段值自动修改子表中的有关所有统计;
Ø 假如选择"限制",若子表中有有关的统计,则严禁修改父表中的连接字段值;
Ø 假如选择"忽视",则不作参考完整性检查,能够随意更新父表中的连接字段值。
l 删除规则要求了当删除父表中的统计时,怎样处理子表中有关的统计:
Ø 假如选择"级联",则自动删除子表中的有关所有统计;
Ø 假如选择"限制",若子表中有有关的统计,则严禁删除父表中的统计;
Ø 假如选择"忽视",则不作参考完整性检查,即删除父表的统计时与子表无关。
l 插入规则要求了当插入子表中的统计时,是否进行参考完整性检查:
Ø 假如选择"限制",若父表中没有相匹配的连接字段值则严禁插入子统计;
Ø 假如选择"忽视",则不作参考完整性检查,即能够随意插入子统计。
l 参考完整性的规则不包括()。 A)更新规则 B)删除规则 C)插入规则 D)检索规则
l 将单价字段的字段有效性规则设为"单价>0",通过该设置,能确保数据的( )。
表的分类:自由表(dbf):独立于数据库之外的表,只存储相对独立的信息,字段名(10字符)
数据库表(dbf):能够使用长表名和长字段名(128字符)、字段能够有标题、注释、设置“默认值”、能设置字段级和统计级“规则”、对于插入、删除、修改等操作能够设置触发器
关系:永久关系、暂时关系(暂时创建;其中一个表时关系即被自动关闭;通过主表统计指针的移动来控制子表统计指针的移动(指针联动);用Set relation 命令来创建,当用核心字段建立关系时,子表必索引;当用统计号recno()来建立关系时,子表无须索引)
VFP的数据类型和重要文献类型
1.数据类型:数据类型决定了数据的存储方式和运算方式。
.DBC 数据库文献/.DBF 表文献/.FPT 数据表备注文献/.PJX 项目文献/.PRG 程序文献/.CDX 复合索引文献/.IDX 单一索引文献/.SCX 表单文献/.FRX 报表文献/.LBX 标签文献/.MNX 菜单文献/.MPR 菜单程序文献/.APP 应用程序文献/.EXE 可执行应用程序文献
VFP工作方式(2种):交互方式(菜单、工具栏按钮、命令窗口)、程序运行方式
有三种操作措施来显示与隐藏命令窗口:
①单击命令窗口右上角的关闭按钮可关闭它,通过"窗口"菜单下的"命令窗口"选项能够重新打开。
②单击"常用"工具栏上的"命令窗口"按钮。按下则显示,弹起则隐藏命令窗口。
③按Ctrl+F4组合键隐藏命令窗口;按Ctrl+F2组合键显示命令窗口。
常量:常数—值不变化的量。(***注意定界符号,定界符仅阐明数据类型,一般不输出***)
(1)数值型常量:由数字0~9、小数点和正负号组成。100.98 .45 -5 1.234E2 1.23e-2
(2)货币型常量:表示货币值,前置符($)。存储和计算时,采取4位小数,自动四舍五入。 $90
(3)字符型常量:字符串→字符系列。定界符:半角单引号、双引号或方括号。 ’沈阳’、”沈阳”、[沈阳]
(4)日期型常量:定界符是一对花括号。严格日期:{^YYYY/MM/DD} {^/03/19} 老式日期格式:{MM/DD/YY} 如:{07/08/09}
(5)日期时间型常量:{^YYYY/MM/DD HH:MM:SS A|P}。 {^-08-30 11:15:30 A}
(6)逻辑型常量:用.定界,逻辑真:.t. .T. .y. .Y. 逻辑假: .f. .F. .n. .N.
常量输出示例(定界符仅阐明数据类型,一般不输出)
? 1.23e3 &&1230
? "沈阳" &&沈阳
? 1.23e-2 &&0.0123
? [abc] + ′def′ &&abcdef
? .456 &&0.456
? $90-$10 &&80.0000
? sqrt(9) &&3.00
? $123.45678 &&123.4568
Set century off &&不显示世纪,默认
? {^/03/19} &&03/19/08
? {^-08-30 11:15:30 A}
&& 08/30/05 11:15:30 AM
? 12/03/04 &&1
? .t. &&.T.
? 3>5 &&.F.
? .f. &&.F.
Set century on &&显示世纪
?{^/03/19} &&03/19/
? {^-08-30 11:15:30 p}
&& 08/30/ 11:15:30 AM
Set mark to “-” &&设置日期分隔符
?{^/03/19} &&03-19-
Set date to british
?{^/03/19} &&19-03-
变量:字段变量和内存变量两大类。变:值与类型的可变化。
内存变量的显示 LIST MEMORY | DISPLAY MEMORY
(2)数组:由一系列元素组成,每个数组元素可通过数组名及对应的下标来访问。每个数组元素相称于一个简单变量同样使用,能够给各元素分别赋值。
创建数组的命令格式为:
DIMENSION <数组名>(<下标上限1>[,<下标上限2>])[,......]
DECLARE <数组名>(<下标上限1>[,<下标上限2>])[,......]
以上两种格式的功效完全相同。数组创建后,系统自动给每个数组元素赋以逻辑假.F.。
1、定义数组(declare或者dimension命令)
dimension A(10) &&定义一个一维数组A,该数组有10个元素,数组下标从1开始。
display memory &&已定义一个变量,数组无论有多少个元素,显示内存变量时只算一个变量,但每一个数组元素都能够象一个一般内存变量同样来使用。
dimension b[3,2] &&定义一个二维数组B,该数组有6个元素。
display memory &&用户定义的数组但没有赋值,系统自动初始化其值为逻辑假.F
注:二维数组在内存中以行主序方式存储,能够用一维数组(下标为其排列序号)的方式来访问,即:
第1个元素:b[1,1]
第2个元素:b[1,2]
第3个元素:b[2,1]
第4个元素:b[2,2]
第5个元素:b[3,1]
第6个元素:b[3,2]
b[1,1]能够看作是b[1]、b[1,2] =b[2] , b[2,1]= , b[2,2]= b[3] ,b[3,1]= , b[3,2]= b[6]
*****练习:dimension b[3,4],则b[2,2]= b[ ] b[3,3]= b[ ]
2、数组初始化
A[1]=1 && 给数组元素A[1] 赋值为1
B[1,2]=3 && 给数组元素B[1,2] 赋值为3
注:每一个数组元素都能够象一个一般内存变量同样来进行赋值。
A=100 && 给数组A的所有元素赋值为100
display memory &&看到A数组的所有元素值为100
A[1]=“OK” &&给数组元素A[1] 赋值为OK字符串
?A &&OK 输出数组元素A[1]的值。
注:数组名在赋值体现式中,代表所有的数组元素;在输出语句中,数组名代表该数组的第一个元素。
3、调试程序MX.PRG:从键盘输入10个数保存到数组N中,并输出10个数中的最大值。
Dime N[10]
For k=1 to 10
Input “一个数:” to N[k]
Endfor &&数组初始化
Max=N[1] &&假设数组第一个元素最大。
For k=2 to 10
If max<N[k] &&依次与背面的元素比较
Max=N[k] &&将遇到的较大元素值保存在max变量中
Endif
Endfor &&数组比较完成,max变量中保存该数组的最大值
? max &&输出该数组的最大值
注:求最大值算法的思想是先假设第一个元素是最大,并保存到max变量中,然后将max变量依次与背面的元素值比较,若遇到的更大的元素值,则将其保存在max变量中,直到所有元素都比较完成,max变量中保存的就是最大值。
4、改写上面的最大值程序,使其功效变为求数组中元素的最小值。
Min=N[1] &&假设数组第一个元素最大。
…
If min<N[k] &&依次与背面的元素比较
min=N[k] &&将遇到的较大元素值保存在max变量中
Endif
…
? min
5、求ZGDA.DBF表中年龄的最大值,并输出年龄最大的那一条统计。
Use ZGDA
MAX=年龄 &&假设第一条统计的年龄最大,并存储到max中
RN=1
Do while not eof()
skip
If MAX>年龄
MAX=年龄 &&将遇到的较大年龄值保存在max变量中
RN= recno() &&保存目前统计号
Endif
Enddo
? “年龄的最大值是”,MAX
go RN &&指针定位年龄最大的统计
display
l 表中数据与数组数据之间的互换
Ⅰ.将表中的目前统计复制到数组
格式:SCATTER [FIELDS <字段名表>] TO <数组名>[BLANK]
功效:将表的目前统计从指定字段表中的第一个字段内容开始,依次复制到数组名中的从第一个数组元素开始的内存变量中。
Ⅱ.将数组数据复制到表的目前统计
格式:GATHER FROM <数组名> [FIELDS <字段名表>]
功效:将数组中的数据作为一个统计复制到表的目前统计中。从第一个数组元素开始,依次向字段名表指定的字段填写数据。
l 体现式:由常量、变量、函数和运算符组成的式子。
1、数值体现式:运算成果仍然是数值型数据。算术运算优先级:()-负号 **或^ *、/、%求余运算 +、-
? -3**2 成果为:
? (3+4)/2^2+int(12.5) 成果为:
注意:
l 书写体现式,乘号不能省略。3X要写成3*x
l 数值体现式是由算术运算符和数值型常数、变量、函数组成,运算成果为数值型数据。算术运算符为:+ - * / % ^ ( ) 。
l 算术运算符的优先次序由高到低依次为:括号、负号、乘方、乘除、模运算(取余)、加减,同级运算从左到右依次进行。
2、字符体现式:+ 串直接连接 - 将前字符串尾部的空格移到后串尾部再连。
? “abc**”+”*cd*” &&abc***cd* *代表空格
?“abc**”-”*cd*” &&abc*cd*** *代表为空格
注意:
l 字符体现式是由字符运算符和字符型常数(即用定界符括起来的字符串)、变量、函数组成,运算成果是字符型数据或逻辑值。
l 二种字符串运算符,优先级别相同。
l 完全连接是指两个字符串合并,即包括空格在内的字符串中所有字符相加。不完全连接运算是将串1尾部的空格移到串2的尾部后,再连接。
3、日期时间体现式:+-运算符;日期+数=日期、日期-数=日期、日期-日期=数 日期+日期
? {^-3-29}-{^-3-21} 成果为:
? {^-3-29}-{^-3-21} && 两日期体现式相加,属非法体现式;
? {^-3-25}+3 &&{^-3-28}
? {^-3-25}-3 成果为: (用严格日期格式表示)
? datetime()+30 &&其值为目前时间的30秒后的日期时间
? datetime()-30 &&其值为目前时间的30秒此前的日期时间
? {^-5-5 10:10:20 a}-datetime() &&2个日期时间相差的秒的数值
注意:一个日期与一个数值相加,成果为日期,表示从目前日期往后数N天;一个日期与一个数值相减,成果为日期,表示从目前日期向前数N天;两个日期相减,成果为数值,表示两日期之间相差的天数。
4、关系体现式
(1)关系体现式描述的同类数据的大小比较关系,其成果是一个逻辑值,关系成立成果取真(.T.),反返回假(.F.)。
(2)关系运算符两边的数据类型要一致,只有同类型的数据才能进行比较。
(3)数据比较规律
①数值和货币类型:数越大,其值越大。如:1000>800 $90>$10
②日期数据:将来>历史 如:{^-5-19}>{^-5-18}
③逻辑常量:逻辑真不小于逻辑假,即:.t.>.f.
④字符串比较:依次对应比较两个串的字符,直到比较出成果即停止比较。例如:"abc">"ab", "abc">"aBc"。
⑤字符的比较规律
ASCII字符:比较字符的ASCII码值的大小。总结规律为:空格<0-9<A-Z<a-z。
中文字符:是按照中文的机内码值的大小来进行比较的,即比较中文的拼音字符串的大小。例如:中文“男”的拼音为“nan”, 中文“女”拼音为“nv”,因此“男”小于“女”。
注意:上述字符的比较规律的前提是必须设置数据的比较序列为机内码方式。设置的命令为:set collate to “machine” 或者依次单击“工具”菜单中的“选项”菜单项,单击“数据”选项卡,设置“排序序列”为“machine”选项即可。
? “ok”$”abokd” &&.t. 前一个串“ok”包括在后一个串中,返回逻辑真
set collate to “machine” &&设置比较序列为机内码
? 8>100 成果为:
? “8”>”100” &&.t.
? {^-5-19}>{^-5-19} 成果为:
? $80<$60 &&.f.
? “abc”=”ab” &&.t. 系统默认“=”为非精准比较,右边是左边的左子串,则成立。
Set exact on &&设置“=”为精准比较,off为非精准比较
“abc”=”ab” 成果为: &&精准比较要求两边的字符串必须完全相等才成立。
5、逻辑体现式:运算成果是逻辑值。优先级由高到低: .Not. .and. .or.
? not(10+3)>5 and ”ab”$”ab”+”cde” or 3>=4 &&.f.
? 3>2 AND NOT 5>6 &&
6、货币体现式:运算符+ -
? $90+$10-$50 &&50.0000
有关知识:(1)当体现式中出现了多个运算符时,各种运算符的优先次序由高到低依次为:算术或字符或日期运算→关系运算→逻辑运算 (2)相同优先级的运算按从左到右的次序计算。
字符处理函数
(1)求字符串长度函数:LEN(<字符体现式>)功效:函数返回字符串所占字节数。
(2)大小写函数:LOWER(<字符体现式>)UPPER(<字符体现式>) 功效:LOWER()将字符串中的字母一律变成小写字母,UPPER()将字符串中的字母一律变成大写字母,其他字符不变。
(3)生成空格函数: SPACE(<数值体现式>) 功效:产生指定数目标空格字符串。最大空格数是254。
(4)删除前后空格函数:TRIM(<字符体现式>) LTRIM(<字符体现式>) ALLTRIM(<字符体现式>)
功效:TRIM()返回指定字符体现式值去掉尾部空格后形成的字符串。LTRIM()返回指定字符体现式值去掉前导空格后形成的字符串。ALLTRIM()返回指定字符体现式值去掉前导和尾部空格后形成的字符串。
(5)取子串函数:LEFT(<字符体现式>,<数值体现式>) RIGHT(<字符体现式>,<数值体现式>)SUBSTR(<字符型体现式>,<起始位置>[,长度])
功效:LEFT()从指定体现式的左端取一个指定长度的子串作为函数值。RIGHT()从指定体现式的右端取一个指定长度的子串作为函数值。SUBSTR()从指定体现式的指定位置取指定长度的子串作为函数值。
(6)计算子串出现次数函数:OCCURS(<字符体现式1>,<字符体现式2>)功效:返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第一个字符串不是第二个字符串的子串,函数值为0。
(7)求子串位置函数:AT(<字符体现式1>,<字符体现式2>[,<数值体现式>])
功效:AT()函数值为数值型。假如<字符体现式1>是<字符体现式2>的子串,则返回<字符体现式1>值的首字符在<字符体现式2>值中的位置;若不是子串,则返回0。ATC()与AT()功效类似,但在子串比较时不辨别字母大小写。
(8)子串替代函数
格式:STUFF(<字符体现式1>,<起始位置>,<长度>,<字符体现式2>)
功效:从指定位置开始,用<字符体现式2>去替代<字符体现式1>中指定个数的字符。替代和被替代的字符个数不一定相等。
l 下列函数中函数值为字符型的是()。A)DATE() B)TIME() C)YEAR() D)DATETIME()
l LEFT(″″,LEN(″数据库″))的计算成果是。
数值计算函数:绝对值函数 ABS(<数值表示>) 符号函数:SIGN(<数值体现式>)功效:ABS()返回指定的数值体现式的绝对值。SIGN()返回指定数值体现式的符号。
(2)求平方根函数:SQRT(<数值体现式>)
(4)求整数函数:INT(<数值体现式>) CEILING(<数值体现式>) FLOOR(<数值体现式>)
功效:INT()返回指定数值体现式的整数部分。CEILING()返回不小于或等于指定数值体现式的最小整数。FLOOR()返回小于或等于指定数值体现式的最大整数。
(5)四舍五入函数:ROUND(<数值体现式1>,<数值体现式2>)
(6)求余函数:MOD(<数值体现式1>,<数值体现式2>) 功效:返回两个数值相除后的余数。
(7)求最大值、最小值函数:MAX(<数值体现式1>,<数值体现式2>)MIN(<数值体现式1>,<数值体现式2>)
功效:MAX()返回两个体现式中较大的值,MIN()返回两个体现式中较小的值。
日期时间函数: DATE() TIME() DATETIME() 功效:DATE()返回目前系统日期,函数值为日期型。TIME()以二十四小时制、hh:mm:ss格式返回目前系统时间,函数值为字符型。DATETIME()返回目前系统日期时间,函数值为日期时间型。
(2)求年份、月份和天数函数:YEAR(<日期型体现式>|<日期时间体现式>) MONTH(<日期型体现式>|<日期时间体现式>) DAY(<日期型体现式>|<日期时间体现式>)
功效:YEAR()从指定的日期体现式或日期时间体现式中返回年份。MONTH()从指定的日期体现式或日期时间体现式中返回月份。DAY()从指定的日期体现式或日期时间体现式中返回月里面的天数。
(3)时、分和秒函数:HOUR(<日期时间体现式>) MINUTE(<日期时间体现式>) SEC(<日期时间体现式>)
功效:HOUR()返回小时部分(二十四小时制)。MINUTE()返回分钟部分。SEC()返回秒数。
l 在Visual FoxPro中,下面4个有关日期或日期时间的体现式中,错误的是()。
A){^.09.0111:10:10AM}-{^.09.0111:10:10AM}B){^01/01/}+20C){^.02.01}+{^.02.01}D){^/02/01}-{^/02/01}
数据类型转换函数:
l STR(<数值体现式>[,<长度>][,<小数位>]) 功效:将数值转换为字符,自动四舍五入。
l VAL(<字符型体现式>) 功效:将数字字符串转换成数值。若字符串最左边不是数字,则取数值0。
l CTOD(<字符体现式>)功效:CTOD()将<字符体现式>值转换成日期型数据。
l DTOC(<日期体现式>)功效:DTOC()将日期型数据或日期时间型数据的日期部分转换成字符串。
l &<字符型变量> 功效:替代出字符变量的内容。如:Fname=”zgda” use &Fname →use zgda
测试函数
(1)值域测试函数:BETWEEN(<体现式T>,<体现式L>,<体现式H>)功效:判断一个体现式是否介于另外两个体现式的值之间。
(2)空值(NULL值)测试函数
格式:ISNULL(<体现式>)
功效:判断一个体现式的运算成果是否为NULL值,若是NULL值返回逻辑真(.T.),否则返回逻辑假(.F.)。
(4)数据类型测试函数
格式:VARTYPE(<体现式>[,<逻辑体现式>])
功效:测试<体现式>的类型,返回一个大写字母,函数值为字符型。
(5)表文献头尾测试函数:EOF([<工作区号>|<表别名>])BOF([<工作区号>|<表别名>])功效:测试指定表文献中的统计指针是否指向文献尾(头),若是返回逻辑真(.T.),否则返回逻辑假(.F.)。
(7)RECNO([<工作区号>|<表别名>])功效:返回目前表文献或指定表文献中目前统计(统计指针所指统计)的统计号。
(8)RECCOUNT([<工作区号>|<表别名>])
功效:返回目前表文献或指定表文献中的统计个数。
(9)IIF(<逻辑体现式>,<体现式1>,<体现式2>)功效:假如<逻辑体现式>表示的条件为真(.T.),返回<体现式1>的值,否则返回<体现式2>的值。
(10)统计删除测试函数:格式:DELETED([<表的别名>|<工作区号>])
功效:测试指定的表,或在指定工作区中所打开的表,其统计指针所指的目前统计是否有删除标识"*"。
l 函数BETWEEN(40,34,50)的运算成果是 .t. 。
l 在Visual FoxPro中,学生表STUDENT中包括有通用型字段,表中通用型字段中的数据均存储到另一个文献中,该文献名为()。
A)STUDENT.DOC B)STUDENT.MEM C)STUDENT.DBT D)STUDENT.FPT
*****************************函数实例*******************************
*****函数的学习要点*****
u 函数名是什么?
u 该函数有几个参数、参数的数据类型是什么?
u 该函数的功效是什么?
u 返回值的数据类型是什么?
****对于任何的一个函数,只要注意以上4点,使用起来就不成问题!****
[试验内容] (在命令窗口中输入下面的体现式,并在横线部分填写语句的运行成果)
1、sign() 函数:当指定数值体现式的值为正、负或 0 时,分别返回 1、-1 或 0
? sign(0) 成果为: ? sign(-8) &&-1
2、平方根函数sqrt():返回指定数值体现式的平方根
? sqrt(9) &&3 (参数不能为负数)
3、圆周率函数pi():返回圆周率常数
? pi() &&3.14
set decimals to 4 &&指定数值型数据显示的小数位数为4位,系统默以为2位
? pi() 成果为:
4、取整函数int()、floor()、ceiling()
? int(12.56) &&12 ? int(-12.56) 成果为:
? int(.56) &&0 注:int()函数返回值为参数的整数部分。
? floor(-4.5) 成果为: ? floor(3.5) &&3
注:floor()函数返回值为小于或者等于参数值的最大的整数。
? ceiling(-4.5) 成果为:
? ceiling(3.5) &&4
注:ceiling()函数返回值为不小于或者等于参数值的最小的整数。
5、四舍五入函数Round()
? Round(7556.5678,2) &&7556.57 ? Round(7556.5678,0) &&7557
? Round(7556.81,-2) &&7600 ? Round(7556.5678,-1) 成果为:
注:第二个参数为负数时,表示对对应的整数位进行四舍五入
4、 最值函数max()、min()
? max(10,20,30,25) &&30 ? max(10,20) 成果为:
? max("a","ab") &&ab ? max($10,$20) 成果为:
? max({^-4-16},{^-4-16}) &&{^-4-16}
注:参数最少有二个,参数能够是字符型、数值型、货币型、日期型。
6、求字符串长度函数len()
? len("abcde") &&5 ? len("*") &&1 *代表空格字符
? len("中国") 成果为: &&一个中文占2个宽度
? len("") &&0 空字符串长度为0
7、大小写转换函数
? lower("AbCd12OK") 成果为:
? upper("AbCd12OK") 成果为:
注:只转换字符串中的大小写,其他字符不变。
8、空格字符生成函数
? "a"+space(3)+"b" &&a***b *代表空格字符
? len(space(3)+space(2)) &&成果为: +为字符连接运算符
? len(space(3)-space(2)) &&5 -为字符连接运算符
9、删除空格字符函数
? trim("abcd***")+"ef" &&abcdef *代表空格字符
? trim("abc*d*****")+"ef" 成果为:
? ltrim("*ab*")+"ef" &&ab*ef *代表空格字符
? alltrim("*ab*")+"ef" &&abef *代表空格字符
10、取子串函数
? left("abcdef",2) &&ab
? left("abcdef",100) 成果为:
? right("abcdef",3) &&def
? substr("abcdef",2,3) &&bcd ? substr("abcdef",3) 成果为:
? substr("中华人民共和国",5,4) &&人民
11、occurs()函数
? occurs("ab","cabkabk") 成果为:
? occurs("ab","ckk") &&0
12、at()函数 返回第一个串在第二个串中出现的起始位置,返回值为数值型
? at("ab","ccabkabk",1)+10 &&13 ? at("ab","ccabkabk",2) &&6
13、子串替代函数
? stuff("abcdef",2,4,"ok")
? stuff("abcdef",2,0,"ok") 成果为: &&相称于插入ok
? stuff("abcdef",2,4,"") && af 相称于删除bcde
14、日期函数
? date() &&返回系统日期
set century on &&用4位数字显示年份
? date()
set date to ansi &&设置日期的显示格式为ansi
? date()
? time() &&以字符串形式返回系统目前时间
? datetime() &&返回系统日期和时间
? year({^-04-16}) 成果为:
? month({^-04-16}) &&4
? day({^-04-16}) 成果为:
? hour(datetime()) &&分别显示目前系统时间的小时数
? minute(datetime()) &&分别显示目前系统时间的分钟数
? sec(datetime()) &&分别显示目前系统时间的秒数
15、转换函数
? str(123.5678,8,2) &&**123.57 *代表空格
? str(123.5678,6,3) 成果为:
? val("123.45")+100 &&223.45
? val("12a3.45") &&12
? val("a1212a3.45") 成果为:
set date to usa
展开阅读全文