630 likes | 798 Views
南京信息工程大学 计算机与软件学院. 数据库技术及应用. 南京信息工程大学 计算机与软件学院. 第二章 VFP 语言基础. 数据库技术及应用. 教学目的. 1 、 掌握 VFP 中的数据类型。 2 、理解常量、变量和数组的含义及用法。 3 、掌握常用系统函数的使用方法。 4 、熟练掌握各种运算符以及各种 VFP 表达式的使用。. 教学重点与难点. 教学重点 数据类型,常量,变量,数组,命令,函数, VFP 表达式; 教学难点 数据类型,变量,数组,命令,函数, VFP 表达式;. 本章章节. 2.1 数据类型
E N D
南京信息工程大学 计算机与软件学院 数据库技术及应用
南京信息工程大学 计算机与软件学院 第二章 VFP语言基础 数据库技术及应用
教学目的 1、掌握VFP中的数据类型。 2、理解常量、变量和数组的含义及用法。 3、掌握常用系统函数的使用方法。 4、熟练掌握各种运算符以及各种VFP表达式的使用。 主讲: 南京信息工程大学计算机与软件学院
教学重点与难点 • 教学重点 数据类型,常量,变量,数组,命令,函数,VFP表达式; • 教学难点 数据类型,变量,数组,命令,函数, VFP表达式; 主讲: 南京信息工程大学计算机与软件学院
本章章节 • 2.1数据类型 • 2.2常量和变量 • 2.3 函数 • 2.4 运算符和表达式 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 数据类型 • 数据对象的取值集合,以及对之可施行的运算集合。 • 变量数据类型、字段数据类型 • VFP的数据类型 • 字符型(Character) • 数值型(Numberic) • 货币型(Currency Y) • 日期型(Date) 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • VFP数据类型 • 日期时间型(DateTime) • 逻辑型(Logic) • 浮点型*(Float) • 双精度型* (DouBle) • 整型*(Integer) • 备注型*(Memo) • 通用型*(General) 打“*”的数据类型只用于表的字段 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 字符型(C) • 由任意字符(字母、数字、空格、符号等)组成 • 每个字符占一个字节,最多可有254个字符 • 数值型(N) • 由数字、正负号及小数点组成,用来表示数量。 • 小数点和小数位数是字段总长度的一部分。 • 货币型(Y) • 当涉及货币时使用,取代数值型 • 宽度为8字节 • 使用货币型数据要在前面加上符号“$”,如:$100 • 如果货币型数据小数位数超过4位,则VFP将自动四舍五入到4位。 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 日期型(D) • 用于存储有关年月日的数据 • 宽度为8字节 • 日期型常量要放在花括号中,如:dDate={09/10/2001} dBlank={ } 表示空日期 • 系统默认格式为{mm/dd/yy},可通过SET DATE、SET MARK、SET CENTURY命令设置日期格式,或通过系统的“选项”对话框中的“区域”卡中设置 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 日期时间型(T) • 保存日期、时间或二者兼有时使用 • 宽度为8字节 • 与日期型一样,要用“{}”将数据括起来 • 可同时包含日期时间,也可只包含两者之一 • 若缺省日期系统用1899年12月30日填入,若缺省时间,系统用午夜零点填入 • 若要指定空日期时间值,要在花括号中加一个冒号,如:{:} 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 逻辑型(L) • 只含有两个值:真(.T.)、假(.F.) • 宽度固定,为1字节 • 是一种高效的存储方法 • 双精度型(B) • 用于存储精度较高、位数固定的数值 • 宽度为8字节 • 小数点的位置由输入的数值决定 • 浮点型(F) • 与数值型等价 • 包含此类型是为了提供兼容性 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 整型(I) • 用于存储无小数的数值 • 宽度为4字节 • 备注型(M) • 用于在表达式存储数据块 • 宽度为4字节 • 存储指向备注文件中具体内容的指针 • 备注文件扩展名:.FPT 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 • 通用型(G) • 用于存储OLE对象 • 宽度为4字节 • 表中存储的是指向OLE对象的引用 • 二进制字符型 • 二进制备注型 浮点型、双精度型、整型、备注型、通用型、 二进制字符型、二进制备注型只能用于字段。 主讲: 南京信息工程大学计算机与软件学院
2.1 数据类型 主讲: 南京信息工程大学计算机与软件学院
2.2 常量、变量和数组 • 数据存储容器(指存放数据的方式) • 常量 • 内存变量 • 数组 主讲: 南京信息工程大学计算机与软件学院
2.2.1常量 • 常量 • 数值型常量 • 组成:数字、小数点、正负号) • 表示:一般表示法、浮点表示法 • 示例:10、-12.3、3.1E12(即3*1012) • 货币型常量 • 组成:同数值型 • 表示:$加货币值 • 示例:$12、$5699.98、$23.23 主讲: 南京信息工程大学计算机与软件学院
2.2.1常量 • 常量 • 字符型常量 • 组成:任意字符 • 表示:用定界符将字符串括起 • 示例:’12’、“ABC”、[中国]、[/“] • 注意: • 逻辑型常量 • 组成:真、假 • 表示:.t. .f. .y. .n. (也可以是大写) • 注意: 1、定界符不能是中文符号 2、定界符必须成对出现 3、字符串含定界符时,必须采用另一种定界符 4、空串与空格字符串不同 5、字母大小写不同 6、字符串与其他类型常量的区别如:’12’与12、‘.T.’与.T. 1、表示逻辑值的字母前后的点不能缺少 主讲: 南京信息工程大学计算机与软件学院
2.2.1常量 • 常量 • 日期型与日期时间型常量 • 组成:数字、分隔符(如:/ - :) • 表示 • 传统格式:{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分 • 注意 1、不同版本VFP对日期格式处理的差别 2、传统日期格式受SET DATE、SET CENTURY命令限制 3、空日期表示{}、{//}等 主讲: 南京信息工程大学计算机与软件学院
2.2 常量、变量、数组 • 名称命名规则 • 可用字符集 • 字母、数字、下划线、汉字 • 首字符限制 • 不能使用数字开头 • 长度规则 • 表字段名、索引名:1-10个字符 • 其他1-128个字符 • 不能使用的名称 • 系统保留字 • 示例 合法名称:lcString、nLenth、Average_of_gz 不合法名称:2abc、x#y、 x-y 主讲: 南京信息工程大学计算机与软件学院
2.2.2 内存变量 • 内存变量 • 内存变量的创建 • 直接建立 • STORE或= • 示例:STORE 5 TO x • 或 x=5 主讲: 南京信息工程大学计算机与软件学院
2.2.2 内存变量 • 内存变量 • 内存变量的访问 • 使用内存变量名可以对内存变量进行访问,当字段变量与内存变量同名时,在变量名前加“m.”或”m->”即可 • 示例: • STORE 5 TO a,b • C=a+b • ?a • ?b • ?m.c • 内存变量的显示:?,list ,display ?:返回变量或表达式的值; ??:返回的结果在同一行显示。 主讲: 南京信息工程大学计算机与软件学院
2.2.2 内存变量 • 内存变量 • 内存变量的的保存与恢复 • SAVE TO FileName [ALL LIKE Skeleton|ALL EXCEPT Skeleton] • 示例:将所有以C打头的内存变量保存到 mVar文件中 • SAVE TO mVar ALL LIKE c* • RESTORE FROM FileName [ADDITIVE] 主讲: 南京信息工程大学计算机与软件学院
2.2.3数组 • 数组也是变量; • 数组由一系列被称为元素的有序数据构成; • 两要素:数组名和序号(下标); • VFP中数组的最大维数为二维; 主讲: 南京信息工程大学计算机与软件学院
2.2.3数组 • 数组 • 数组的申明 • DECLARE—私有数组 • DIMENSION—私有数组 • PUBLIC—全局数组 • LOCAL—局部数组 • 命令格式: • 命令动词 数组名(行数[,列数]) • 默认值(.f.) • 示例:DECLARE X[5] 数组在声明之后,元素的初值为.F.。 主讲: 南京信息工程大学计算机与软件学院
2.2.3数组 • 数组 • 数组元素的访问 • 使用下标标识数组元素,首元素的下标为1,下标值不能超过数组的大小 • 赋值:给该数组所有元素赋给相同的值 • 举例: • DIMENSION AA[6,3] AA[1,2]=2 &&数组的第二个元素被赋值2 AA=3 &&数组的全部元素被赋值3 主讲: 南京信息工程大学计算机与软件学院
2.3 函数 • 函数是一种预先编制好的程序代码,可供用户调用。 • 函数可以接受0或多个参数。 • 函数只能有一个返回值。 • 函数的使用的语法格式: 函数名([参数1[,参数2[,……]]]) • 函数分类 • 系统函数 • 用户自定义函数 主讲: 南京信息工程大学计算机与软件学院
2.3 函数 • 学习函数的方法 • 函数名 • 函数功能 • 参数个数,类型,省略时的默认值 • 函数运算结果的类型,含义,默认值 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 数值函数 • ABS()* -- -求绝对值 • 格式: ABS(nExpression) • 示例: ABS(-5) • 结果:5 • MAX()*-----求最大值 • 格式: MAX(nExpression1,nExpression2[,……]) • 示例: MAX(10,5,-2) • 结果:10 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 数值函数 • MIN()--------求最小值 • 格式:MIN(eExpression1,eExpression2[,……]) • 示例:MIN(10,5,-2) • 结果:-2 • INT()*-----取整 • 格式:INT(nExpression) • 示例:INT(12.5),INT(-12.5) • 结果: 12 -12 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 数值函数 • MOD()* -------求余数 • 格式:MOD(nDividend,nDivisor) • 示例:MOD(36,5),MOD(36, -5) • 结果: 1 -4 • ROUND()*-------四舍五入函数 • 格式:ROUND(nExpression,nDecimalPlaces) • 示例:ROUND(12.345678,3) • 结果: 12.346 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 数值函数 • SQRT() ----求平方根函数 • 格式:SQRT(nExpression) • 示例:SQRT(16) • 结果: 4.0 • 指数函数:EXP ( ) ----求指数函数 • 格式:EXP(nExpression) • 示例:EXP(1.0) • 结果: 2.72 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 字符函数 • ALLTRIM( ) • 功能: 将指定的字符表达式去掉前导和尾部空格后形成的字符串 • 格式:ALLTRIM(cExpression) • 示例:ALLTRIM(“ 中国 ”) && 结果: 中国 • TRIM()* • 功能:去掉尾部空格后形成的字符串 • 格式:TRIM(cExpression) • 示例:TRIM(“ 中国 ”) && 结果: 中国 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 字符函数 • LEN()* • 功能:求字符串函数长度 • 格式:LEN(cExpression) • 示例:LEN(“ 中国 ”) • AT() • 格式:求子串在主串中的位置 AT(cExpression,cExpression2[,nOccurrence]) • 示例 AT(‘b’,’abcabc’), AT(‘b’,’abcabc’,2) • 结果 : 2 5 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 字符函数 • SUBSTR()* • 功能:从指定的字符串表达式的指定位置取一个指定长度的子串作为函数值 • 格式:SUBSTR(cExpression,nStartosition,nLen) • 示例:SUBSTR(“伟大的中国人民”,7,4) • 结果: 中国 • 示例: SUBSTR(“伟大的中国人民”,7) • 结果: 中国人民 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • LEFT()* • 功能:从指定的字符串表达式的左边取一个指定长度的子串作为函数值。 • 格式: LEFT(cExpression, nLen) • 示例:LEFT(“中国共产党”,4) • 结果: 中国 • RIGHT() • 功能:从指定的字符串表达式的右边取一个指定长度的子串作为函数值。 • 格式: RIGHT(cExpression, nLen) • 示例: RIGHT(“伟大的中国”,4) • 结果: 中国 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 字符函数 • SPACE() • 功能: 生成若干个空格 • 格式:SPACE(nExpression) • 示例:SPACE(5) 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 时间/日期函数 • DATE()* • 功能: 当前系统日期 • 格式:DATE() • 示例:DATE() • DATETIME() • 功能:当前系统日期时间 • 格式:DATETIME() • 示例:DATETIME() 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 时间/日期函数 • DOW() • 功能: 显示 该日期是一周中的第几天 • 格式:DOW(dExpression|tExpression) • 示例:DOW(DATE()) • DAY()* • 功能: 显示该日期是某个月中第几天 • 格式:DAY(dExpression|tExpression) • 示例:DAY(DATE()) 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 时间/日期函数 • MONTH() ---求日期的月份值 • 格式:MONTH(dExpression|tExpression) • 示例:MONTH(DATE()) • YEAR()* ---求日期的年份值 • 格式:YEAR(dExpression|tExpression) • 示例:YEAR(DATE()) 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 类型转换函数 • ASC()* • 功能 :返回与 字符相对应的ASCII 码值 • 格式:ASC(cExpression) • 示例:ASC(‘a’) • 结果: 97 • CHR()* • 功能: 返回与 ASCII 码值相对应的字符 • 格式:CHR(nExpression) • 示例:CHR(97) • 结果: ‘a’ 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 类型转换函数 • VAL()* • 功能: 字符转换成数值 • 格式:VAL(cExpression) • 示例:VAL(“1983年”) • 结果: 1983 • STR()* • 功能 :数值转换字符 • 格式:STR(nExpression[,nLength[,nDecimal]]) • 示例:STR(314.15 ), STR(314.15,5,2) • 结果: 314 314.1 默认为10 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 类型转换函数 • DTOC() • 功能: 日期型转换成字符型 • 格式:DTOC(dExpression) • 示例:DTOC({^2005/12/15}) • 结果:12/15/05 • CTOD() • 功能: 字符型转换成日期型 • 格式:CTOD(cExpression) • 示例:CTOD(”12/25/2005”) • 结果:12/25/05 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 其他常用函数 • TYPE() • 格式:TYPE(cExpression) • 示例:TYPE(‘X’) && 预先有x=5则其值为‘N’ • IIF( )* • 格式:IIF(lExpression,eExpression1,eExpression2) • 示例:x=70 • ?IIF(X>60,”及格”,”不及格”) • 结果为:及格 主讲: 南京信息工程大学计算机与软件学院
2.3.1常用系统函数介绍 • 其他常用函数 • MESSAGEBOX()* • 功能:显示信息函数 • 格式:MESSAGEBOX(信息文本,对话框类型,对话框标题 ) • 对话框类型 见书上 . • 示例:MESSAGEBOX(“目前软驱内无软盘,是否重试”,4+32+256, “我的应用程序” ) 主讲: 南京信息工程大学计算机与软件学院
2.4 表达式 • 表达式是通过运算符将常量、变量、字段名等组合起的可以运算的式子。 • 表达式具有单个的结果值 • VFP表达式分类 • 算术表达式 • 字符表达式 • 日期表达式 • 关系表达式 • 逻辑表达式 • 名称表达式 主讲: 南京信息工程大学计算机与软件学院
2.4.1 算术表达式 • 由数值类型数据和算术运算符组成的式子 • 计算结果为数值型数据 • 示例: • #DEFINE PI=3.14 • R=10 • S=PI*R*R 主讲: 南京信息工程大学计算机与软件学院
算术运算符 2.4.1 算术表达式 主讲: 南京信息工程大学计算机与软件学院
2.4.2 字符表达式 • 由字符类型的数据和字符连接符组成 • 计算结果为字符型 • 示例: • “姓名:”+TRIM(js.xm) • LEFT(“中华人民共和国”,4) 主讲: 南京信息工程大学计算机与软件学院
字符运算符 2.4.2 字符表达式 注意:$运算判断左串是否包含在右串中,结果为逻辑值 主讲: 南京信息工程大学计算机与软件学院
2.4.3 日期表达式 • 由日期或日期时间型数据和日期运算符组成 • 计算结果为日期型或日期时间型或数值型 • 示例: • DATE()-{^2004-02-10} • {^2004-02-10}+10 主讲: 南京信息工程大学计算机与软件学院