《数据库技术及应用.ppt》由会员分享,可在线阅读,更多相关《数据库技术及应用.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库技术及应用 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGY第二章第二章 VFP语言基础语言基础数据库技术及应用数据库技术及应用南京信息工程大学南京信息工程大学 计算机与软件学院计算机与软件学院教学目的教学目的1、掌握VFP中的数据类型。2、理解常量、变量和数组的含义及用法。3、掌握常用系统函数的使用方法。4、熟练掌握各种运算符以及各种VFP表达式的使用。数
2、数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院教学重点与难点教学重点与难点l教学重点 数据类型,常量,变量,数组,命令,函数,VFP表达式;l教学难点 数据类型,变量,数组,命令,函数,VFP表达式;数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l2.1数据类型l2.2常量和变量l2.3 函数l2.4 运算符和表达式本章章节本章章节 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.1 数据类型数据类型l数据类型数据对象的取值集合,以及对之可施行的运算集
3、合。变量数据类型、字段数据类型lVFP的数据类型 字符型(Character)数值型(Numberic)货币型(Currency Y)日期型(Date)数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.1 数据类型数据类型lVFP数据类型日期时间型(DateTime)逻辑型(Logic)浮点型*(Float)双精度型*(DouBle)整型*(Integer)备注型*(Memo)通用型*(General)打“*”的数据类型只用于表的字段 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l字符型(C)由任
4、意字符(字母、数字、空格、符号等)组成每个字符占一个字节,最多可有254个字符l数值型(N)由数字、正负号及小数点组成,用来表示数量。小数点和小数位数是字段总长度的一部分。l货币型(Y)当涉及货币时使用,取代数值型宽度为8字节使用货币型数据要在前面加上符号“$”,如:$100如果货币型数据小数位数超过4位,则VFP将自动四舍五入到4位。2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l日期型(D)用于存储有关年月日的数据宽度为8字节日期型常量要放在花括号中,如:dDate=09/10/2001 dBlank=表示空日期系统
5、默认格式为mm/dd/yy,可通过SET DATE、SET MARK、SET CENTURY命令设置日期格式,或通过系统的“选项”对话框中的“区域”卡中设置2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l日期时间型(T)保存日期、时间或二者兼有时使用宽度为8字节与日期型一样,要用“”将数据括起来可同时包含日期时间,也可只包含两者之一若缺省日期系统用1899年12月30日填入,若缺省时间,系统用午夜零点填入若要指定空日期时间值,要在花括号中加一个冒号,如::2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信
6、息工程大南京信息工程大学学计算机算机与与软件件学学院院l逻辑型(L)只含有两个值:真(.T.)、假(.F.)宽度固定,为1字节是一种高效的存储方法l双精度型(B)用于存储精度较高、位数固定的数值宽度为8字节小数点的位置由输入的数值决定l 浮点型(F)与数值型等价包含此类型是为了提供兼容性2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l整型(I)用于存储无小数的数值宽度为4字节l备注型(M)用于在表达式存储数据块宽度为4字节存储指向备注文件中具体内容的指针备注文件扩展名:.FPT2.1 数据类型数据类型 数数据据库技技术及
7、及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l通用型(G)用于存储OLE对象宽度为4字节表中存储的是指向OLE对象的引用l二进制字符型l二进制备注型浮点型、双精度型、整型、备注型、通用型、浮点型、双精度型、整型、备注型、通用型、二进制字符型、二进制备注型只能用于字段二进制字符型、二进制备注型只能用于字段。2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院数据类型用例数据类型应用字符型名称双精度型高精度数据数值型工资通用型多媒体数据逻辑型是否团员货币型价格日期型出生日期整型人数日期时间考试时间字
8、符(二)口令浮点型备注(二)音乐文件备注型学生评语2.1 数据类型数据类型 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.2 常量、变量和数组常量、变量和数组l数据存储容器(指存放数据的方式)常量内存变量数组 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.2.1常量常量l常量数值型常量l组成:数字、小数点、正负号)l表示:一般表示法、浮点表示法l示例:10、-12.3、3.1E12(即3*1012)货币型常量l组成:同数值型l表示:$加货币值l示例:$12、$5699.98、$23.23 数
9、数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l常量常量字符型常量l组成:任意字符l表示:用定界符将字符串括起l示例:12、“ABC”、中国、/“l注意:逻辑型常量l组成:真、假l表示:.t.f.y.n.(也可以是大写)l注意:1、定界符不能是中文符号2、定界符必须成对出现3、字符串含定界符时,必须采用另一种定界符4、空串与空格字符串不同5、字母大小写不同6、字符串与其他类型常量的区别如:12与12、.T.与.T.1、表示逻辑值的字母前后的点不能缺少2.2.1常量常量 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与
10、软件件学学院院l常量日期型与日期时间型常量l组成:数字、分隔符(如:/-:)l表示传统格式:mm/dd/yy hh:mm:ss a|p示例:16-02-04表示2004年2月16日严格格式:yyyy/mm/dd hh:mm:ss a|p示例:2004-02-16 12:10表示2004年2月16日12时10分l注意1、不同版本、不同版本VFP对日期格式处对日期格式处理的差别理的差别2、传统日期格式受、传统日期格式受SET DATE、SET CENTURY命令限制命令限制3、空日期表示、空日期表示、/等等2.2.1常量常量 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机
11、算机与与软件件学学院院2.2 常量、变量、数组常量、变量、数组l名称命名规则名称命名规则可用字符集l字母、数字、下划线、汉字首字符限制l不能使用数字开头长度规则l表字段名、索引名:1-10个字符l其他1-128个字符不能使用的名称l系统保留字示例合法名称:lcString、nLenth、Average_of_gz不合法名称:2abc、x#y、x-y 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.2.2 内存变量内存变量l内存变量内存变量的创建内存变量的创建l直接建立直接建立STORESTORE或或=示例:示例:STORE 5 TO xSTOR
12、E 5 TO x 或或 x=5 x=5 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l内存变量内存变量的访问l使用内存变量名可以对内存变量进行访问,当字段变量与内存变量同名时,在变量名前加“m.”或”m-”即可l示例:STORE 5 TO a,bC=a+b?a?b?m.c内存变量的显示:?,list,display?:返回变量或表达式的值;:返回变量或表达式的值;?:返回的结果在同一行显示。:返回的结果在同一行显示。2.2.2 内存变量内存变量 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l内存
13、变量内存变量的的保存与恢复lSAVE TO FileName ALL LIKE Skeleton|ALL EXCEPT Skeletonl示例:将所有以打头的内存变量保存到mVar文件中lSAVE TO mVar ALL LIKE c*lRESTORE FROM FileName ADDITIVE2.2.2 内存变量内存变量 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.2.3数组数组l数组也是变量;l数组由一系列被称为元素的有序数据构成;l两要素:数组名和序号(下标);lVFP中数组的最大维数为二维;数数据据库技技术及及应用用主主讲:南京信
14、息工程大南京信息工程大学学计算机算机与与软件件学学院院l数组数组的申明lDECLARE私有数组lDIMENSION私有数组lPUBLIC全局数组lLOCAL局部数组命令格式:命令动词 数组名(行数,列数)默认值(.f.)l示例:DECLARE X5数组在声明之数组在声明之后,元素的初后,元素的初值为值为.F.F.。2.2.3数组数组 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l数组数组元素的访问l使用下标标识数组元素,首元素的下标为1,下标值不能超过数组的大小赋值:给该数组所有元素赋给相同的值举例:DIMENSION AA6,3 AA1,2=
15、2&数组的第二个元素被赋值数组的第二个元素被赋值2 AA=3&数组的全部元素被赋值数组的全部元素被赋值32.2.3数组数组 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.3 函数函数l函数是一种预先编制好的程序代码,可供用户调用。l函数可以接受0或多个参数。l函数只能有一个返回值。l函数的使用的语法格式:函数名(参数1,参数2,)l函数分类系统函数用户自定义函数 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.3 函数函数l学习函数的方法函数名函数功能参数个数,类型,省略时的默认值函数运算结果
16、的类型,含义,默认值 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院 2.3.1常用系统函数介绍常用系统函数介绍l数值函数ABS()*-求绝对值l格式:ABS(nExpression)l示例:ABS(-5)l结果:5MAX()*-求最大值 l格式:MAX(nExpression1,nExpression2,)l示例:MAX(10,5,-2)l结果:10 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l数值函数MIN()-求最小值 l格式:MIN(eExpression1,eExpression2,)
17、l示例:MIN(10,5,-2)l结果:-2INT()*-取整l格式:INT(nExpression)l示例:INT(12.5),INT(-12.5)l结果:12 -12 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l数值函数MOD()*-求余数l格式:MOD(nDividend,nDivisor)l示例:MOD(36,5),MOD(36,-5)l结果:1 -4 ROUND()*-四舍五入函数l格式:ROUND(nExpression,nDecimalPlaces)l示例:ROUND(12.34567
18、8,3)l结果:12.346 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l数值函数SQRT()-求平方根函数l格式:SQRT(nExpression)l示例:SQRT(16)l结果:4.0 指数函数:EXP()-求指数函数l格式:EXP(nExpression)l示例:EXP(1.0)l结果:2.72 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l字符函数ALLTRIM()l功能:将指定的字符表达式去掉前导
19、和尾部空格后形成的字符串 l格式:ALLTRIM(cExpression)l示例:ALLTRIM(“中国 ”)&结果:中国TRIM()*l功能:去掉尾部空格后形成的字符串 l格式:TRIM(cExpression)l示例:TRIM(“中国 ”)&结果:中国 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l字符函数LEN()*l功能:求字符串函数长度 l格式:LEN(cExpression)l示例:LEN(“中国 ”)AT()l格式:求子串在主串中的位置 AT(cExpression,cExpressio
20、n2,nOccurrence)l示例 AT(b,abcabc),AT(b,abcabc,2)l结果:2 5 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l字符函数SUBSTR()*l功能:从指定的字符串表达式的指定位置取一个指定长度的子串作为函数值 l格式:SUBSTR(cExpression,nStartosition,nLen)l示例:SUBSTR(“伟大的中国人民”,7,4)l结果:中国 l示例:SUBSTR(“伟大的中国人民”,7)l结果:中国人民 2.3.1常用系统函数介绍常用系统函数介绍
21、数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院LEFT()*l 功能:从指定的字符串表达式的左边取一个指定长度的子串作为函数值。l格式:LEFT(cExpression,nLen)l示例:LEFT(“中国共产党”,4)l结果:中国 RIGHT()l功能:从指定的字符串表达式的右边取一个指定长度的子串作为函数值。l格式:RIGHT(cExpression,nLen)l示例:RIGHT(“伟大的中国”,4)l结果:中国 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学
22、学院院l字符函数SPACE()l功能:生成若干个空格l格式:SPACE(nExpression)l示例:SPACE(5)2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l时间/日期函数DATE()*l功能:当前系统日期 l格式:DATE()l示例:DATE()DATETIME()l功能:当前系统日期时间 l格式:DATETIME()l示例:DATETIME()2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l时间/日
23、期函数DOW()l功能:显示 该日期是一周中的第几天l格式:DOW(dExpression|tExpression)l示例:DOW(DATE()DAY()*l功能:显示该日期是某个月中第几天l格式:DAY(dExpression|tExpression)l示例:DAY(DATE()2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l时间/日期函数MONTH()-求日期的月份值l格式:MONTH(dExpression|tExpression)l示例:MONTH(DATE()YEAR()*-求日期的年份值l格
24、式:YEAR(dExpression|tExpression)l示例:YEAR(DATE()2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l类型转换函数ASC()*l功能:返回与 字符相对应的ASCII 码值 l格式:ASC(cExpression)l示例:ASC(a)l结果:97CHR()*l功能:返回与 ASCII 码值相对应的字符 l格式:CHR(nExpression)l示例:CHR(97)l结果:a 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南
25、京信息工程大学学计算机算机与与软件件学学院院l类型转换函数VAL()*l功能:字符转换成数值 l格式:VAL(cExpression)l示例:VAL(“1983年”)l结果:1983 STR()*l 功能:数值转换字符 l格式:STR(nExpression,nLength,nDecimal)l示例:STR(314.15),STR(314.15,5,2)l结果:314 314.1 默认为10 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l类型转换函数DTOC()l 功能:日期型转换成字符型l格式:DT
26、OC(dExpression)l示例:DTOC(2005/12/15)l结果:12/15/05 CTOD()l功能:字符型转换成日期型 l格式:CTOD(cExpression)l示例:CTOD(”12/25/2005”)l结果:12/25/05 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l其他常用函数TYPE()l格式:TYPE(cExpression)l示例:TYPE(X)&预先有x=5则其值为NIIF()*l格式:IIF(lExpression,eExpression1,eExpression
27、2)l示例:x=70l?IIF(X60,”及格”,”不及格”)l结果为:及格 2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l其他常用函数MESSAGEBOX()*l功能:显示信息函数 l格式:MESSAGEBOX(信息文本,对话框类型,对话框标题)l 对话框类型 见书上.l示例:MESSAGEBOX(“目前软驱内无软盘目前软驱内无软盘,是否重试是否重试”,4+32+256,“我的应用程序我的应用程序”)2.3.1常用系统函数介绍常用系统函数介绍 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息
28、工程大学学计算机算机与与软件件学学院院2.4 表达式表达式l表达式是通过运算符将常量、变量、字段名等组合起的可以运算的式子。l表达式具有单个的结果值lVFP表达式分类算术表达式字符表达式日期表达式关系表达式逻辑表达式名称表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.1 算术表达式算术表达式l由数值类型数据和算术运算符组成的式子l计算结果为数值型数据l示例:#DEFINE PI=3.14R=10S=PI*R*R 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院算术运算符算术运算符运算符
29、操作优先级示例()()子表达式分组 高5*(3+2)*或或 乘方a*2 表示a2*、乘、除5*3%模运算(求余数)5%3、加、减 低 5+3-22.4.1 算术表达式算术表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.2 字符表达式字符表达式l由字符类型的数据和字符连接符组成l计算结果为字符型l示例:“姓名:”+TRIM(js.xm)LEFT(“中华人民共和国”,4)数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院运算符操作示例字符串连接“abc”+”cde”字符串连接“abc”-”cd
30、e”$包含运算“bc”$”cde”a”$”cab”注意:注意:$运算判断左串是否包含在右串中,结果为逻辑值运算判断左串是否包含在右串中,结果为逻辑值字符运算符字符运算符2.4.2 字符表达式字符表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.3 日期表达式日期表达式l由日期或日期时间型数据和日期运算符组成l计算结果为日期型或日期时间型或数值型l示例:DATE()-2004-02-102004-02-10+10 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l日期和日期时间运算符运算符操
31、作示例加2008-02-18+102008-02-18 11:10 a+10减2008-02-18-2008-02-82008-02-18 11:10-2008-02-18 11:10 2008-02-18-102008-02-18 11:10 a-10注意:两个日期型不能相加;日期与日期时间型不能相加减注意:两个日期型不能相加;日期与日期时间型不能相加减2.4.3 日期表达式日期表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.4 关系表达式关系表达式l同种类型数据用关系运算符进行比较的式子l结果为逻辑值l示例:3030A=aDAT
32、E()-102004-02-10 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院l关系运算符运算符操作示例小于、大于1020;1020=等于10=20;abc=ab、#、!=不等于1020=2010300)A=a AND.F.T.OR.F.数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院逻辑运算符逻辑运算符运算符操作优先级示例()高NOT、!逻辑非 NOT.F.AND逻辑与 .T.AND.F.OR逻辑或 低 .T.OR.F.注意:参加逻辑运算的各目必须是逻辑值注意:参加逻辑运算的各目必须是逻辑值2.4
33、.5 逻辑表达式逻辑表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院运算符的优先级运算符的优先级运算符优先级说明数值字符日期1数值运算符之间优先级同表中顺序逻辑运算符之间优先级同表中顺序关系2逻辑32.4.5 逻辑表达式逻辑表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.6 名称表达式名称表达式l由圆括号括起来的字符表达式l作用:替换命令或函数中的名称l示例:nVar=100 var_name=“nVar”STORE 123.4 TO(var_name)?nVar&结果为123.
34、4相当于相当于nVar=123.4 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院2.4.6 名称表达式名称表达式l使用方法1、替换命令中的变量名2、替换文件名3、作为函数的参数l使用过程cVa=“x”stor 0 to(cVa)?cVa?xdbf_name=“js.dbf”dir (dbf_name)cVa=“x”xcVastor 0 to(cVa)x0 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院 2.4.7 宏替换宏替换l用“&”放在字符变量名前,“.”放在变量名后,VFP会将此变量的值作为
35、名称使用。l示例:Var_name=nXSTORE 12 TO&Var_nameSTORE 12 TO&Var_name.bl名称表达式与宏替换的比较1、凡是使用名称表达式的地方都可以使用宏替换2、名称表达式不能作为表达式的组成部分3、在某些命令和函数中不能使用名称表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院小结小结l数据类型l常量、变量、数组l常用系统函数l各类型数据运算的运算符和表达式 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院练习练习l下面程序运行的结果为_:I=“1”J=“2”X12=“Good”?X&I&Jl下面程序运行的结果为_:x=1y=2c=x+y?&cGood 12 数数据据库技技术及及应用用主主讲:南京信息工程大南京信息工程大学学计算机算机与与软件件学学院院NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGYThe end
限制150内