数据库函数.docx
- 文档编号:17721905
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:13
- 大小:21.98KB
数据库函数.docx
《数据库函数.docx》由会员分享,可在线阅读,更多相关《数据库函数.docx(13页珍藏版)》请在冰豆网上搜索。
数据库函数
第五讲函数
函数是用程序来实现的一种数据运算或转换。
每一个函数都有特定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个运算结果,称为函数值或返回值。
函数调用的格式为:
函数名(自变量)
函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。
函数调用也可作为一条命令使用,但此时系统忽略函数据的返回值。
常用函数的使用
1.数值函数
函数功能
格式
返回值
举例
结果
求绝对值
|x|
ABS(数值表达式)
数值表达式的绝对值
ABS(-10)
10
求符号
SIGN(数值表达式)
表达式的结果为正、负和零时,返回值分别是1、-1、0
SIGN(10)
SIGN(10-20)
SIGN(0)
1
-1
0
求平方根
SQRT(数值表达式)
数值表达式的平方根
SQRT(25)
SQRT(2*8)
5
4
求圆周率
π
PI()
PI()
3.14
取整
INT(数值表达式)
数值表达式的整数部分
INT(13.5)
INT(-14.3)
13
-14
求最小数
CEILING(数值表达式)
大于或等于数值表达式的最小整数
CEILING(13.5)
CEILING(-14.6)
14
-14
求最大数
FLOOR(数值表达式)
小于或等于数值表达式的最大整数
FLOOR(13.5)
FLOOR(-14.3)
13
-15
四舍五入
ROUND(数值表达式1,数值表达式2)
数值表达式1在指定位置四舍五入的值。
数值表达式2负责指定位置
ROUND(123.456,2)
ROUND(123.456,-2)
ROUND(123.456,-3)
ROUND(512.456,-3)
123.46
100.00
0.0
1000.00
求余数
异号时函数值为
|表达式2|-|表达式1%表达式2|
MOD(数值表达式1,数值表达式2)
数值表达式1与数值表达式2相除后的余数
MOD(12,8)
MOD(-10,-3)
MOD(10,-3)
MOD(-10,3)
4
-1
-2
2
求最大值
MAX(数值表达式1,数值表达式2,……)
最大值
MAX(34,65,12)
MAX(“AM”,”BA”)
65
BA
求最小值
MIN(数值表达式1,数值表达式2,……)
最小值
MIN(34,65,12)
MIN(“AM”,”BA”)
12
AM
2.字符串函数
函数功能
格式
返回值
举例
结果
求字符串长度
LEN(字符表达式)
字符表达式包含的字符个数
LEN(“KDFKJHG”)
LEN(“西安”)
LEN(“ABCD”+”ED”)
7
4
6
大写转换为小写
LOWER(字符表达式)
将字符表达式的大写字母转换为小写
LOWER(“KLEfW@”)
klefw@
小写转换为大写
UPPER(字符表达式)
将字符表达式的小写字母转换为大写字母
UPPER(“LETph”)
LETPH
删除尾部空格
TRIM(字符表达式)
删除尾部空格后的字符串
TRIM(“THE”)
LEN(TRIM(“IM“))
LEN(TRIM(“IS“))
THE
2
4
删除前导空格
LTRIM(字符表达式)
删除前后空格
ALLTRIM(字符表达式)
求子串
LEFT(字符表达式,N)
从字符表达式的左边开始取N个字符
LEFT(“STUB”,2)
LEFT(“中国奥运”,4)
ST
中国
求子串
RIGHT(字符表达式,N)
从字符表达式的右边开始取N个字符
RIGHT(“STUB”,2)
RIGHT(“中国人民”,4)
UB
人民
求子串
SUBSTR(字符表达式,起始位置,N)
从字符表达式的起始位置开始取N个字符.N若缺省,取到最后一个字符
SUBSTR(“STUB”,2,2)
SUBSTR(“ABCD”,2)
SUBSTR(“中国”,3,2)
TU
BCD
国
求子串位置
AT(字符表达式1,字符表达式2,数值表达式)
ATC(字符表达式1,字符表达式2,数值表达式)
若字符表达式1是字符表达式2的子串,返回字符表达式1首字符在字符表达式2中的位置,否则返回0
AT(“IS”,“THIS”)
AT(“I”,“ABCDE”)
AT(“a”,”ABCDA”)
ATC(“a”,”ABCDA”)
3
0
0
1
子串替换
STUFF(字符表达式1,起始位置,N,字符表达式2)
用字符表达式2替换字符表达式1中起始位置开始的N个字符串
STUFF(“STUB”,2,3,“123456”)
STUFF(“STUB”,2,0,“123456”)
STUFF(“STUB”,2,2,“”)
S123456
S123456TUB
SB
字符串匹配
LIKE(字符表达式1,字符表达式2)
字符表达式1与字符表达式2对应位置的所有字符都匹配则返回逻辑真,否则返回逻辑假
LIKE(“ABC”,“AB”)
LIKE(“A?
”,“AC”)
LIKE(“AB”,“A?
”)
LIKE(“A*”,“ADSSD”)
.F.
.T.
.F.
.T.
宏替换函数
&〈字符型变量〉[.]
替换出字符型变量的内容,
STORE“学生”TOB
USE&B
相当于USE学生
3.日期和时间函数
函数功能
格式
返回值
返回的数据类型
求系统日期
DATE()
系统日期
日期型
求系统时间
TIME()
系统时间
字符型
求系统时期时间
DATETIME()
系统日期时间
日期时间型
求年份
YEAR(日期表达式|日期时间表达式)
指定表达式的年份
数值型
?
LEN(TIME())
求月份
MONTH(日期表达式|日期时间表达式)
指定表达式的月份
数值型
求天数
DAY(日期表达式|日期时间表达式)
指定表达式的月中的天数
数值型
4.数据类型转换函数
函数功能
格式
返回值
举例
结果
数值转换成字符串
STR(数值表达式,长度,小数位数)
将数值表达式按指定的长度和小数位数转换成字符串
STR(12.34,6,1)
STR(1234.567,8,1)
STR(1234.567,3,1)
STR(1234.567)
12.340
1234.6
***
“1234.567”
字符串转换成数值
VAL(字符表达式)
将数字组成的字符串表达式转换成数值
VAL(“123.67”)
VAL(“A123”)
123.67
0
字符串转换为日期
CTOD(字符串表达式)
将字符串表达式转换为日期型数据
CTOD(“02/12/99”)
02/12/99
日期转换成字符串
DTOC(日期表达式|日期时间表达式,[1])
将日期时间型数据转换成字符串,1选项规定字符串格式为YYYYMMDD
5.测试函数
函数功能
格式
返回值
举例
结果
测试值域
BETWEEN(表达式T,表达式L,表达式H)
(注意:
三个表达式的类型要一致)
若表达式T的值大于表达式L的值并且小于等于表达式H的值时返回逻辑真,否则返回逻辑假。
BETWEEN(40,34,50)
.T.
测试NULL值
ISNULL(表达式)
若表达式结果为NULL,返回逻辑真;否则返回逻辑假
A=.NULL.
?
ISNULL(A)
.T.
测试“空”值
EMPTY(表达式)
若表达式结果为“空”值,返回逻辑真,否则返回逻辑假
A=0
?
ISNULL(A)
?
EMPTY(A)
.F.
.T.
测试数据类型
VARTYPE(表达式)
根据表达式的值,返回一个代表了表达式数据类型的大写字母
VARTYPE(DATA())
X=1
VARTYPE(X)
VARTYPE(“X”)
D
N
C
测试表文件尾
EOF([表的别名|工作区号)])
若指定表的文件指针指向文件尾,则返回逻辑真,否则返回逻辑假
USE学生
GOBOTTOM
SKIP
?
EOF()
.T.
测试表文件首
BOF([表的别名|工作区号)])
若指定表的文件指针指向文件首,则返回逻辑真,否则返回逻辑假
USE学生
GOTOP
SKIP-1
?
BOF()
.T.
测试当前记录号
RECNO([表的别名|工作区号)])
返回指定表的当前记录号。
若表尚未打开返回0
USE学生
SKIP2
?
RECNO()
3
测试记录个数
RECCOUNT([表的别名|工作区号])
返回指定表的记录总数。
若表尚未打开返回0
不受SETDELEON/OFF开关的影响
测试条件
IIF(逻辑表达式,表达式1,表达式2)
若逻辑表达式的值为真,返回表达式1的值,否则返回表达式2的值
测试记录是否被删除
DELETE([表的别名|工作区号])
若指定表的当前记录有逻辑删除标记,则返回逻辑真,否则返回逻辑假
VFP提供了非常丰富的函数,在此仅举了一些常用函数的例子,希望同学们在今后的深入学习中逐渐体会各种函数的功能。
相关题型
1.下列字符型常量的表示中,错误的是
A)’65+13’B)[“电脑商情”]
C)[[中国]]D)`[x=y]`
3.下列关于变量的叙述中,不正确的一项是
A)变量值可以随时改变
B)在VisualFoxPro中,变量可为字段变量和内存变量
C)变量的类型决定变量值的类型
D)在VisualFoxPro中,可以将不同类型的数据赋给同一个变量
4.表达式LEN(SPACE(5)—SPACE(10))的结果为[15]
5.若内存变量名与当前的数据表中的一个字段“student”同名,则执行命令?
student后显示的是
A)字段变量的值B)内存变量的值
C)随机显示D)错误信息
6.下列日期表达式错误的是
A){^2004/03/09}+15B){^2004/02/25}+date()
C){^2004/03/09}-15D){004/02/25^}-date()
8.下列各字符函数中,函数返回值不是数值型的是
A)LEN(“2003/04/15”)
B)SUBSTR(“计算机俗称电脑”,11,4)
C)AT(“Fox”,“VisualFoxPro”)
D)LIKE(“a*”,“abcd”)
9.在下列各项中,运算级别最低的为
A)算术运算符B)关系运算符
C)逻辑运算符D)圆括号()
10.下列字段名中,合法的是
A)_学生姓名B)学生□姓名
C)学生_姓名D)学生.姓名
12.打开数据库abc的正确命令是
A)OPENDATABSEabcB)USEabc
C)USEDATABASEabcD)OPENabc
13.在VisualFoxPro中,恢复逻辑删除记录的命令是
A)DELETE
B)RECALL
C)PACK
D)ZAP
15.设X=6〈5,命令?
VARTYPE(X)的输出是
A)NB)CC)LD)出错
16.命令?
vartype(time())结果是
a)cb)dc)td)出错
17.命令?
len(space(3)-space
(2))的结果是
a)1b)2c)3d)5
18.想要将日期型或日期时间型数据中的年份用4位数字显示,应当使用设置命令
a)setcenturyonb)setcenturyoff
c)setcenturyto4d)setcenturyof
习题五
一、选择题
1.在VFP中,有下面几个内存变量赋值语句:
X={^2001-07-28}10:
15:
20PM}
Y=.T.
M=$123.45
N=123.45
Z=”123.45”
执行上述赋值语句之后,内存变量X、Y、M、N和Z的数据类型分别是
A)D、L、Y、N、CB)D、L、M、N、C
C)T、L、M、N、CD)T、L、Y、N、C
2.以下日期值正确的是
A){“2001-05-25”}B){^2001-05-25}
C){2001-05-25}D){[2001-05-25]}
3.在下面的VFP表达式中,不正确的是
A){^2001-05-0110:
10:
10AM}-10B){^2001-05-01}—DATE()
C){^2001-05-01}+DATE()D)[^2001-05-01]+[1000]
4.在下面的VFP表达式中,运算结果是逻辑真的是
A)EMPTY(.NULL.)B)LIKE(“acd”,”ac?
”)
C)AT(“a”,”123abc”)D)EMPTY(SPACE
(2))
5.设D=CTOD(“04-14-89”),命令?
VARTYPE(D)的输出值是
A)LB)DC)ND)C
6.在下列函数中,函数值为数值的是
A)BOF()D)SUBSTR(DTOC(DATE()),7)
C)AT(“人民”,“中华人民共和国”)B)CTOD(“01/01/96”)
7.设N=886,M=345,K=“M+N”,表达式1+&K的值是
A)1232B)数据类型不匹配C)1+M+ND)346
8.表达式VAL(SUBS(“奔腾586”,5,1))*LEN(“VisualFoxPro”)的结果是
A)63.00B)64.00C)65.00D)60.00
9.连续执行以下命令之后,最后一条命令的输出结果是
SETEXACTOFF
X=“A□”
?
IIF(X=“A”,X-“BCD”,X+“BCD”)
A)AB)BCDC)ABCD□D)A□BCD
二、填空题
1.命令?
ROUND(337.2007,3)的执行结果是。
2.命令?
LEN(“THISISMYBOOK”)的结果是。
3.TIME()返回值的数据类型是。
4.顺序执行下列操作后,屏幕最后显示的结果是和。
Y=DATE()
H=DTOC(Y)
?
VARTYPE(Y),VARTYPE(H)
三、上机题
1.B=DTOC(DATE(),1)
?
”今天是:
”+LEFT(B,4)+”年”;
+IIF(SUBSTR(B,5,1)=”0”,SUBSTR(B,6,1),;
SUBS(B,5,2))+”月”+RIGHT(B,2)+”日”
2.DD=DATE()
?
STR(YEAR(DD),4)+”年”+STR(MONTH(DD),2)+”月”+STR(DAY(DD),2)+”日”
3.X=STR(12.4,4,1)
Y=RIGHT(X,3)
Z=”&y”+”&x”
?
Z,&Z
4.X=”奔腾586”
Y=”个人计算机”
?
LEN(X),RIGHT(X,3)+Y
?
”&X.&Y”,X+Y
5.?
AT(“人民”,”中华人民共和国”)
?
VAL(SUBST(“668899”,5,2))+1
?
SUBSTR(‘668899’,3)+”I”
6.说出下列表达式的值
(1)35%2**3
(2)STUFF(“GOODBOY”,5,3,“GIRL”)
(3)LEN(TIME()+“4”)
(4)YEAR(DATE())+1
(5)AT(“IS”,“THISISABOOK”)
(6)LIKE(“EDIT”,“EDI?
”)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)