《《数据库程序设计》第三章.ppt》由会员分享,可在线阅读,更多相关《《数据库程序设计》第三章.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章 数据及其运算数据及其运算第三章第三章 数据及其运算数据及其运算n3.1 数据类型数据类型n3.2 数据存储数据存储n3.3 内部函数内部函数n3.4 表达式表达式3.1 数据类型数据类型3.1 数据类型数据类型n字符型字符型(C型型)n数值型数值型(N型型)n逻辑型逻辑型(L型型)n日期型日期型(D型型)n备注型备注型(M型型)n通用型通用型(G型型)数值型数值型浮点型浮点型货币型货币型双精度型双精度型整型整型日期型日期型日期时间型日期时间型3.2 数据存储数据存储n数据存储容器:常量、变量、数组、字段、数据存储容器:常量、变量、数组、字段、记录和对象。记录和对象。(1)常量)常
2、量值固定不变的量值固定不变的量数值型数值型常量常量:由数字(0-9)、小数点和正负号组成 浮点型浮点型常量常量:数值型的科学计数法表示 字符型字符型常量常量:用双引号、单引号或方括号等括起来 逻辑型逻辑型常量常量:只有真和假两种逻辑值 日期型常量和日期时间型常量日期型常量和日期时间型常量:用花括号括起来,日期各部分之间用/或-分开,时间各部分之间用:分开,日期和时间之间用空格分开3.2 数据存储数据存储n介绍一个命令:介绍一个命令:l格式:?格式:?|?l功能:计算表达式的值,并将其显示在工作区功能:计算表达式的值,并将其显示在工作区l说明:说明:?表示另起一行输出值?表示另起一行输出值?表示
3、从当前位置输出值?表示从当前位置输出值 若有多个表达式,各表达式值之间用逗号分若有多个表达式,各表达式值之间用逗号分开,输出时遇到逗号就空一格开,输出时遇到逗号就空一格 3.2 数据存储数据存储n日期常量的格式日期常量的格式是可以变化的,使用如下是可以变化的,使用如下几个几个set命令:命令:nSet mark To 日期分隔符日期分隔符 功能:确定日期数据的分隔符号功能:确定日期数据的分隔符号 nSet Century On/Off 功能:确定是否显示年份的前功能:确定是否显示年份的前2位位nSet Date to Mdy/Ymd/dmy 功能:确定日期数据的指定格式功能:确定日期数据的指定
4、格式3.2 数据存储数据存储(2)内存变量)内存变量n变量有值和名,值是变量的内容,名是唯一变量有值和名,值是变量的内容,名是唯一标识变量的。标识变量的。n变量变量命名规则命名规则:以字母(汉字)、数字、下:以字母(汉字)、数字、下划线组成,不超过划线组成,不超过128个字符,且不可与系统个字符,且不可与系统保留字(保留字(eg:use quit close等)重名。等)重名。n读读取变量的取变量的值的命令是?值的命令是?命令命令n将值存入变量的命令也称赋值命令将值存入变量的命令也称赋值命令3.2 数据存储数据存储n赋值命令赋值命令n格式格式1:=n格式格式2:store to n功能:计算表
5、达式的值,将值赋给内存变量功能:计算表达式的值,将值赋给内存变量n说明:说明:s=VFP&将字符串赋给变&量s,结果使s值&为”VFP”,并成为&字符型变量store 2*4 to s1,s2&计算2*4的值为8,将8赋&给变量s1、s2,结果两&个变量值均为8并成为数&值型变量 a、命令后的、命令后的&表示其后为注释部分,表示其后为注释部分,不参与命令的执行。不参与命令的执行。b、内存变量在赋值时定义了值和类型,、内存变量在赋值时定义了值和类型,变量的类型是由值的类型确定的。变量的类型是由值的类型确定的。c、store命令可以同时为多个变量赋值,命令可以同时为多个变量赋值,而等号只可以为一个
6、变量赋值。而等号只可以为一个变量赋值。d、若内存变量与字段同名,则内存变、若内存变量与字段同名,则内存变量前要加上量前要加上“m.”或或“m-”以示区别。以示区别。3.2 数据存储数据存储n内存变量的清除命令内存变量的清除命令:n格式:格式:release All like|exceptn功能:从内存中清除指定的内存变量功能:从内存中清除指定的内存变量Release a,b&清除内存变量清除内存变量a,bRelease all&清除用户定义的所有内存变量清除用户定义的所有内存变量Release all like a*&清除所有用户定义的首字清除所有用户定义的首字&母为母为a的内存变量的内存变量
7、Release all except?b*&清除所有用户定义的第二清除所有用户定义的第二&个字符为个字符为b以外的内存变量以外的内存变量3.2 数据存储数据存储(3)数组变量)数组变量n定义数组定义数组的命令:的命令:n格式:格式:dimension|declare(,),(,)n功能:定义数组名称及上界,即确定数组的维数和元功能:定义数组名称及上界,即确定数组的维数和元素个数。素个数。n注意注意:VFP中只可以定义一维和二维的数组,且定义大中只可以定义一维和二维的数组,且定义大小时要考虑内存空间是否够用。小时要考虑内存空间是否够用。数组在定义时默认初数组在定义时默认初始值为始值为.f.n数组
8、的赋值数组的赋值:可以使用变量的赋值命令为单个数组元素赋值,可以使用变量的赋值命令为单个数组元素赋值,也可以为所有数组元素赋相同的值。也可以为所有数组元素赋相同的值。3.2 数据存储数据存储(4)字段变量)字段变量n表中的每个字段都是字段变量,值为当前表中的每个字段都是字段变量,值为当前记录该字段的值。记录该字段的值。n介绍一个命令介绍一个命令gon格式:格式:go n功能:设定当前记录为第功能:设定当前记录为第条记录。条记录。3.2 数据存储数据存储(5)记录)记录n记录是数据表中一组数据项的集合记录是数据表中一组数据项的集合-即表中的即表中的一行。一行。n 在同一个数据表中可以有若干个记录
9、,每一在同一个数据表中可以有若干个记录,每一个记录具有相同的字段个数。个记录具有相同的字段个数。(6)对象)对象n对象是类的实体对象是类的实体,是任何具有属性和方法的信息是任何具有属性和方法的信息的集合。的集合。n(有关对象的详细内容将在以后详细介绍。有关对象的详细内容将在以后详细介绍。)3.3 内部函数内部函数n数值类函数数值类函数n字符类函数字符类函数n数据转换类函数数据转换类函数n日期和时间类函数日期和时间类函数n测试类函数测试类函数n其他函数其他函数3.3 内部函数内部函数n数值函数数值函数1 函数函数功能功能例子(注释表示结果)例子(注释表示结果)EXP(n)计算计算e的的n次方的值
10、次方的值?exp(2)&7.39INT(n)计算计算n的整数部分的整数部分?int(2.83)&2?int(-2.83)&-2?int(0)&0?int(-0.83)&0LOG(n)计算计算lnn的值的值?log(7.39)&2.00LOG10(n)计算计算log10n的值的值?log10(100)&2.00MAX(n1,n2,)求求n1,n2,中最大的值中最大的值?max(2,-5,3.3)&3.3MIN(n1,n2,)求求n1,n2,中最小的值中最小的值?max(2,-5,3.3)&-53.3 内部函数内部函数MOD(n1,n2)求n1/n2后的余数?mod(8.7,2)&0.7?mod(
11、-8.7,2)&1.3?mod(-8.7,-2)&-0.7?mod(8.7,-2)&-1.3ROUND(n1,n2)对n1四舍五入,保留小数点后n2位?round(3.14159,2)&3.14SING(n)返回n的符号,n为正,返回1;为负,返回-1;为0,返回0?sing(2.5)&1?sing(-2.5)&-1?sin(0)&0SQRT(n)求n的平方根?sqrt(25)&5.00ABS(n)求n的绝对值?abs(3.2)&3.2?abs(-3.2)&3.2?abs(0)&0n数值函数数值函数2 3.3 内部函数内部函数n字符函数字符函数1 函数功能例子(注释表示结果)Len(c)返回字
12、符表达式c中字符的个数?len(abc)&3?len(abc)&4Lower(c)将c中所有字符小写?lower(aBc9)&abc9Upper(c)将c中所有字符大写?upper(aBc9)&ABC9Left(c,n)从c的最左侧开始,返回n个字符?left(aBc9,2)&aBRight(c,n)从c的最右侧开始,返回n个字符?right(aBc9,2)&c9Substr(c,n1,n2)从c的左数第n1个字符开始,返回n2个字符?substr(aBc9,2,2)&Bc3.3 内部函数内部函数Alltrim(c)去掉c中前后两端的空格?alltrim(aB c9 )&aB c9Ltrim(
13、c)去掉c中左侧的空格?ltrim(aB c9 )&aB c9Rtrim(c)去掉c中右侧的空格?rtrim(aB c9 )&aB c9Trim(c)去掉c中右侧的空格?trim(aB c9 )&aB c9Space(n)输出n个空格?space(5)&Like(c1,c2)确定c1是否包含c2内容,即c2是否满足c1的特征注意c1中可以使用通配符*和?本函数不是询问c2是否c1子串?like(bc,aabc)&.F.?like(aabc,bc)&.F.?like(*bc*,aabc)&.T.n字符函数字符函数2 3.3 内部函数内部函数n转换函数转换函数函数功能例子(注释表示结果)Ctod(
14、c)将字符串c转换成日期?ctod(09/11/07)&09/11/07?ctod(09/11/2007)&09/11/07?ctod(07)&/Dtoc(d)将日期表达式d转换成字符串?dtoc(2007/9/11)&09/11/07Str(n1,n2,n3)将数值n1转换成字符串,n2表示字符串的宽度,n3表示小数位数?str(3.14159,4,2)&3.14?str(3.14159,6,2)&3.14?str(3.14,6,3)&3.140?str(3.14,3,3)&3.1Ttoc(t)将日期时间表达式d转换成字符串?ttoc(2007/9/11 12:25:50)&09/11/07
15、 12:25:50 PMTtod(t)将日期时间表达式d转换成日期?ttod(2007/9/11 12:25:50)&09/11/07Val(c)将字符串c转换成数值?val(3.14)&3.14Chr(n)返回ASCII码为n的字符?chr(65)&AAsc(c)返回字符c的ASCII码?asc(a)&973.3 内部函数内部函数n日期时间函数日期时间函数函数功能例子(注释表示结果)Date()返回系统当前日期Time()返回系统当前时间Datetime()返回系统当前的日期和时间Year(t)返回t中的年份值?year(2007/9/11 12:25:50)&2007Month(t)返回t
16、中的月份值?month(2007/9/11 12:25:50)&9Day(t)返回t中的日期值?day(2007/9/11 12:25:50)&11Minute(t)返回t中的分钟值?minute(2007/9/11 12:25:50)&25 Sec(t)返回t中的秒值?sec(2007/9/11 12:25:50)&50Week(t)返回t是一年中的第几个星期?week(2007/9/11 12:25:50)&37Dow(t)从日期时间表达式t中返回表示星期几的数值注意,1表示星期日?dow(2007/9/11 12:25:50)&33.3 内部函数内部函数n测试函数测试函数函数功能例子(注
17、释表示结果)Bof()测试记录指针是否在文件开始处(不是第一条记录)返回逻辑值Deleted()测试当前记录是否加删除标记返回逻辑值Eof()测试记录指针是否在文件尾部(不是最后一条记录)返回逻辑值Isnull()测试表达式的值是否为空,返回逻辑值Primary()测试并返回指定的索引是否为主索引标识,返回逻辑值Recno()测试当前记录指针号 返回数值Found()使用seek等查询命令后使用本函数,看是否查到,返回逻辑值Type()测试当前表达式的数据类型?type(2007/9/11)&D?type(123)&NFile(c)测试字符串c表示的文件是否存在?file(labels)&.F
18、.?file(labels.dbf)&.T.3.3 内部函数内部函数n其他函数其他函数messagebox(,)功能:弹出消息提示对话框。功能:弹出消息提示对话框。其中框类型是数值,为以下三部分的和。其中框类型是数值,为以下三部分的和。1、确定按钮的参数:、确定按钮的参数:0、1、2、3、4、52、确定图标的参数:、确定图标的参数:16、32、48、643、确定默认按钮的参数:、确定默认按钮的参数:0、256、512?messagebox(是否继续是否继续?,34,询问框询问框)?messagebox(是否继续是否继续?,3,询问框询问框)参数参数对话框对话框按钮按钮0仅有仅有“确定确定”按钮
19、按钮1“确定确定”“取消取消”2“终止终止”“重试重试”“忽略忽略”3“是是”“否否”“取消取消”4“是是”“否否”5“重试重试”“取消取消”图标图标16324864默认默认按钮按钮0第一个按钮第一个按钮256第二个按钮第二个按钮512第三个按钮第三个按钮按下按钮按下按钮返回值返回值确定确定1取消取消2终止终止3重试重试4忽略忽略5是是6否否73.4 表达式表达式n表达式是由数据、数据存储容器、函数和表达式是由数据、数据存储容器、函数和运算符组成的运算式。运算符组成的运算式。n算术表达式算术表达式n字符表达式字符表达式n日期时间表达式日期时间表达式n关系表达式关系表达式n逻辑表达式逻辑表达式n
20、名表达式名表达式3.4 表达式表达式n算术表达式算术表达式n常见的算术运算符:常见的算术运算符:n说明:说明:n(1)操作数是数值,运)操作数是数值,运算结果也是数值算结果也是数值n(2)运算顺序:先乘方,)运算顺序:先乘方,再乘除和取模,后加减。再乘除和取模,后加减。同级别的自左向右运算。同级别的自左向右运算。有圆括号的先算括号内有圆括号的先算括号内的,多重圆括号的按先的,多重圆括号的按先内后外的顺序运算。内后外的顺序运算。运算符运算符功能功能*幂幂*/乘除乘除%模(取余)模(取余)+-加减加减?32&结果为9?14%4&结果为2?14%-4&结果为-23.4 表达式表达式n字符表达式字符表
21、达式n常见的字符运算符:常见的字符运算符:运算符运算符功能功能+字符串连接字符串连接-删除尾部空格后连接删除尾部空格后连接$比较,查看前一字符比较,查看前一字符串是否在后一字符串是否在后一字符串内串内?abc +de&abc de?abc -de&abc de?abc -de+f&abc de f?ab$abc&.T.?abc$ab&.F.3.4 表达式表达式n日期时间表达式日期时间表达式n常见运算符:常见运算符:运算符运算符功能功能+加上天数加上天数-减去天数或日期减去天数或日期?2007/9/10+5&09/15/07?2007/9/10-5&09/05/07?2007/9/10 10:0
22、5:30+5&09/10/07 10:05:35?2007/9/10 10:05:30-5&09/10/07 10:05:25?2007/9/10-2006/9/10&365?2007/9/10 10:05:30-2007/9/9 10:05:30&864003.4 表达式表达式n关系表达式关系表达式n常见运算符常见运算符n说明:说明:n(1)运算符两端操作数类)运算符两端操作数类型必须一致,运算结果是型必须一致,运算结果是逻辑值逻辑值n(2)数值型按大小比较;数值型按大小比较;日期型按年月日的先后比较,日期型按年月日的先后比较,后大先小后大先小;英文字符型按对应位置上的英文字符型按对应位置上
23、的ASCII码码比较;比较;中文按中文按拼音拼音声母顺序比较。声母顺序比较。运算符运算符功能功能大于大于=大于等于大于等于=等于等于#!=不等于不等于=全等于全等于3.4 表达式表达式?632006/9/10&.T.?ABCAAAA&.T.?大专大专=大学大学&.T.?2*4=8&.T.?2*4=8&.T.?ABC=AB&.T.?ABC=AB&.F.?.T.F.&.T.3.4 表达式表达式n逻辑表达式逻辑表达式n常见运算符常见运算符n说明:说明:n(1)操作数是逻辑值,运算结果也是逻辑值。)操作数是逻辑值,运算结果也是逻辑值。n(2)优先级:先)优先级:先not,再,再and,最后,最后or。
24、运算符运算符功能功能and与。两端都为真结果才为真与。两端都为真结果才为真or或。两端有一端为真,结果就为真或。两端有一端为真,结果就为真not非。非真即假,非假即真非。非真即假,非假即真?.T.and.T.&.T.?.T.and.F.&.F.?.F.and.T.&.F.?.F.and.F.&.F.?.T.or.T.&.T.?.T.or.F.&.T.?.F.or.T.&.T.?.F.or.F.&.F.?not.T.&.F.?not.F.&.T.3.4 表达式表达式n各类运算符之间的优先关系是:各类运算符之间的优先关系是:算术算术字符字符关系关系逻辑逻辑3.4 表达式表达式n名表达式名表达式Eg:姓名:姓名=“李明华李明华”Store“姓名姓名”to name?name+“:”+姓名姓名&输出:姓名:李明华输出:姓名:李明华宏替换方式读取宏替换方式读取“名名”的内容:的内容:Eg:姓名:姓名=“李明华李明华”Store“姓名姓名”to name?&name&输出:李明华输出:李明华