《数据与数据运算》PPT课件.ppt

上传人:tia****nde 文档编号:11508579 上传时间:2020-04-26 格式:PPT 页数:61 大小:617KB
返回 下载 相关 举报
《数据与数据运算》PPT课件.ppt_第1页
第1页 / 共61页
《数据与数据运算》PPT课件.ppt_第2页
第2页 / 共61页
《数据与数据运算》PPT课件.ppt_第3页
第3页 / 共61页
点击查看更多>>
资源描述
VisualFoxPro程序设计(第二版),第3章数据与数据运算,3.1数据类型、常量和变量,在VisualFoxPro中所有的数据都具有类型,数据类型决定数据的存储方式和使用方式,即数据的取值范围和可以进行的操作。VisualFoxPro6.0的数据类型分为两大类,一种适用于变量和数组,另一种适用于数据表中的字段。VisualFoxPro定义了13种字段类型和7种数据类型。字段类型是:字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型。数据类型是:字符型、数值型、货币型、日期型、日期时间型、逻辑型和通用型。,3.1.1数据类型,3.1.2常量,常量:在程序的运行过程中不改变其值的量常量的种类:数值型常量字符型常量逻辑型常量日期型常量货币型常量,1.数值型常量,用整数、小数、科学计数法表示的数举例:85,-56.2,1.256E3,3.8E-2等,2.字符型常量,由一串字符组成的字符串,用“”(双引号)、(单引号)、(方括号)括起来。举例:副教授、”boy”、数据库系统是合法常量,而”Iamaboy”、Itsabest是非法常量。注意:最长只能为254个字符,3.逻辑型常量,表示“真”或“假”的量表示方法:“真”.T.、.Y.、.t.、.y.“假”.F.、.N.、.f.、.n.注意:两边的点不能少,4.货币型常量,表示货币值的量表示:以$开头,4舍5入到小数点4位举例:$123.456789结果为123.4568,5.日期型常量,日期时间常量也必须用花括号括起来,格式为:YYYY-MM-DDhh:mm:ssa|p例如:2005/05/1910:04am、2005-05-2111:32:14pm。但必须注意日期和时间之间必须有空格。,6.日期时间型常量,在VisualFoxPro6.0中日期型常量用花括号“”作为定界符括起来,格式为:YYYY-MM-DD例如:2005/05/18,或2005-05-18。,3.1.3变量,在命令操作和程序运行过程中其值允许变化的量称变量,在VisualFoxPro6.0中使用的变量分为字段变量、内存变量两种。每个变量都必须有一个变量名,变量名是由字母、汉字、数字和下划线组成,但必须以字母或汉字。,1字段变量,字段变量是数据表结构中的任意一个数据项。在一个数据表中,一个字段就是一个字段变量。字段变量在建立表结构时定义,修改表结构时可重新定义,或增删字段变量。字段变量的类型有13种。字段变量是一种多值变量,假设一个数据表中有10条记录,那么该数据表的每一字段就有10个取值,当用字段作变量时,它的当前值随着记录指针的移动而不断变化。,内存变量是表结构之外独立存在于内存中的变量。内存变量可用来存储数据,定义内存变量时需为它取名并赋初值,内存变量建立后存储于内存中。VisualFoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。可分为简单变量和数组变量。(1)内存变量赋值命令格式1:内存变量=TO功能:计算表达式,然后将计算结果赋给内存变量。,2内存变量,(2)表达式值显示命令格式:?/?功能:,将表达式的值显示在屏幕上。【说明】1.命令格式中的?/?可任选一个,它们的输出格式不同。?表示从屏幕下一行的第一列起显示结果,?表示从当前行的当前列起显示结果。例如:?Z&在VFP主窗口中显示VFP6.0?s1&换一行后显示28?“数据库应用”&接着上一个命令显示结果28的后面显示“数据库应用”2.是表示用逗号隔开的多个表达式组,命令执行时遇逗号就空一格。例如:?“Z=”,Z&显示Z=VFP6.0,3.系统内存变量,由VFP自动生成和维护的变量一般以下划线开头举例:_DIARYDATE&当前日期_CLIPTEXT&剪贴板文本例通过_calcvalue系统变量将一个数字传到计算器中,激活计算器窗口并计算结果。clear_calcvalue=20activatewindowcalculator例往剪贴板中写入信息_CLIPTEXT=hello!“查看剪贴板,数组是具有相同名字、不同下标值的一组变量。数组中的每个数据值称为数组元素,每个数组元素在数组中的位置是固定的,可以通过称为下标的编号来进行访问。数组在使用时要由DIMENSION或DECLARE命令来定义。这两个命令完全相同,都是用于建立一维或二维数组。在VisualFoxPro6.0中,同一个数组元素在不同时刻可以存储不同类型的数据,在同一数组中,每个数组元素可以被赋予不同数据类型的值。,4.数组变量,数组的定义,格式:DIMENSION|DECLARE(),()(),()例如:DIMENSIONc(4)DIMENSIONa(3),b(2,3),数组的赋值,SZ(1)=”ABCD”&给SZ(1)赋值,字符型,值:ABCDSZ(2)=23.45&给SZ(2)赋值,数值型,值:23.45SZ(3)=2005/09/02&给SZ(3)赋值,日期型,值:2005年9月2日SZ(4)=2005/11/029:00am&给SZ(4)赋值,日期时间型,值:2005年11月2日上午9点BZ(5)=T&给SZ(5)赋值,逻辑型,值:真,3.2VisualFoxPro6.0常见函数,函数的概念:VisualFoxPro6.00系统为用户提供了十分丰富的函数,灵活运用这些函数,不仅可以简化许多运算,而且能够加强和完善VisualFoxPro的许多功能。函数的一般格式:()函数的三要素:函数名、参数、函数值如:ABS(-2),3.2.1数学运算函数,1平方根函数SQRT()【格式】SQRT(数值表达式)【功能】计算并返回数值表达式的算术平方根。【例1】?SQRT(5*5)5.002绝对值函数ABS()【格式】ABS()【功能】计算并返回数值表达式的绝对值。【例2】?ABS(-43.29)43.29,3四舍五入函数ROUND()【格式】ROUND(数值表达式,有效位数)【功能】对数值表达式的值按指定的有效位数进行四舍五入。【例3】?R0UND(3.14159,4),ROUND(1234.9962,0),ROUND(1234.567,-1)3.1416123512304取整函数INT()【格式】INT(数值表达式)【功能】计算并返回数值表达式的整数部分。【例4】?INT(-76.93)-76,5求模函数MOD()【格式】MOD(,)【功能】返回除以得到的余数值。【说明】在求摸运算中应注意以下几点:(1)除数不能为0。(2)除数为正数,返回正数;如果为负数,返回负数。(3)如果被除数与除数能够整除,结果为0。(4)如果被除数与除数不能整除,且被除数与除数同号,则结果为被除数除以除数而得到的余数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2。,(5)如果被除数与除数不能整除,且被除数与除数异号,则结果为被除数除以除数而得到的余数再加上除数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2+X2。【例5】?MOD(10,3)&结果为:1?MOD(-10,-3)&结果为:-1?MOD(-10,3)&结果为:2?MOD(10,-3)&结果为:-2,3.2.2字符处理函数,1取子串函数SUBSTR()【格式】SUBSTR(字符串表达式,起始位置,长度)【功能】从字符串表达式中的起始位置截取子字符串,长度为所截取的子串的长度。【例1】store”ABCDEFG”toCN?SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,6,3)DEABCDFG若省略长度,或者长度超过从起始位置到末尾的长度,则截取的子字符串为从起始位置到字符串表达式末尾的所有字符。例如:?SUBSTR(”计算机程序设计教程”,11)设计教程,2求字符串长度函数LEN()【格式】LEN字符串表达式【功能】返回字符串表达式中所包含的字符个数,即字符串长度。【例2】?LEN(”VisualFoxPro6.0”)163搜索子串位置函数AT()【格式】AT(字符串1,字符串2,)【功能】寻找字符串1在字符串2中首次出现的起始位置。若字符串2中不包含字符串1,则返回值为零。若有“数值表达式”(假设数值表达式为K),则寻找字符串1在字符串2中第K次出现的位置。【例3】X=”VisualFoxPro6.0”?AT(”Fox”,X)&显示结果为8?AT(”fox”,X)&显示结果为0?AT(”o”,X)&显示结果为9?AT(”o”,X,2)&显示结果为13,4空格函数SPACE()【格式】SPACE(数值表达式)【功能】产生与数值表达式的值相同的空格数。【例4】?”学生”+SPACE(4)+”情况”学生情况在“学生”和“情况”之间产生了4个空格字符。,5.删除空格函数,(1)格式:LTRIM()功能:删除字符表达式值前的空格(2)格式:RTRIM(或TRIM()功能:删除字符表达式值后的空格(3)格式:ALLTRIM()功能:将前后的空格去掉举例:?“AB”+SPACE(4)+”CD”&返回ABCD?ALLTRIM(“ABCD”)&返回ABCD?len(“abcd”)&返回5?len(alltrim(“ABCD“)&返回4,6宏代换函数&【格式】&字符型内存变量【功能】取“字符型内存变量”的值。【说明】(1)宏代换是一种间接取值的操作,在符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。(2)若&字符型内存变量与后面的字符之间无空格分界时,应加上“”符号作为分界符。(3)宏代换的使用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。(4)对于数字字符串,可以通过&函数使其与其他数字进行计算。,【例5】求宏代换。.CH=”X”X=9?&CH&结果为:9TT=”学生成绩”USE&TT&结果为:打开了“学生成绩.dbf”表文件。X=”2004”M=”+”Y=”&X.&M.1”?Y&结果为:2004+1?&Y&结果为:2005,3.2.3转换函数,【格式】STR(数值表达式,长度,小数位如)【功能】将数值表达式的值转换为由长度和小数位数指定的字符串。如果长度值比数值表达式的整数位数还要小,则返回由长度个“*”组成的字符串。【例1】?STR(1324.46,6,1)1324.5?STR(1324.46,3,1),STR(1324.46,8,3)*1324.460,1数值转换为字符串函数STR(),【格式】VAL(字符串表达式)【功能】将字符串表达式转换为数值型数据。【例2】?VAL(”32”+”18”)321800?VAL(”112GH”),VAL(”AB204”),VAL(”ASD”)112.000.000.00,2字符串转换为数值函数VAL(),【格式】CTOD(字符串表达式)【功能】将“月/日/年”格式的字符串表达式转换为日期型数据。【例3】DA=”12/12/04”?CTOD(DA)12/12/04,3字符转日期函数CTOD(),【格式】DTOC(日期)【功能】将日期转换为相应的字符串。【例4】D=2004/11/24DT=DTOC(D)?DT?LEN(DT)11/24/048,4日期型转换为字符串函数DTOC(),3-2-4日期和时间函数,(1)格式:DATE()功能:返回系统日期(2)格式:TIME()功能:返回系统时间(3)格式:DATETIME()功能:返回系统日期时间(4)格式:YEAR()功能:返回中的年份,4位整型(5)格式:month()功能:返回中的月份(6)格式:day()功能:返回中的日期,3.2.5测试函数,1测试文件头函数BOF()【格式】BOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件头。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件头。USE学生档案.dbf?BOF()&显示结果为:.F.SKIP-1&移动记录指针到上一条记录命令?BOF()&显示结果为:.T.,【格式】EOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件尾。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件尾。USE学生档案.dbfGOTOBOTTOM?EOF()&显示结果为:.F.SKIP&移动记录指针到上一条记录命令?EOF()&显示结果为:.T.,2测试文件尾函数EOF(),【格式】RECNO()【功能】测试指定表文件中的记录指针指向的记录号。若指定的工作区无打开的表文件,函数返回值为:0;若指定的表文件无记录或记录指针位于文件头,函数返回值为:1;若记录指针指向文件尾,函数返回值为末记录号加1。【例】测试记录指针的当前位置(假设学生档案表中有10条记录)。USE学生档案.dbfGOTOBOTTOM?RECNO()&显示结果为:10SKIP?RECNO()&显示结果为:11GOTOP?RECNO()&显示结果为:1SKIP-1?RECNO()&显示结果为:1,3测试当前记录号函数RECNO(),【格式】VARTYPE(表达式),(逻辑表达式)【功能】测试表达式的数据类型,返回用字母代表的数据类型。函数值为字符型。未定义或错误的表达式返回字母U。若表达式是一个数组,则根据第一个数组元素的类型返回字符串。【例3-29】测试记录指针的当前位置(假设学生档案表中有10条记录)。a=DATE()b=NUll?VARTYPE($385),VARTYPE(”FoxPro”),VARTYPE(a,.T),VARTYPE(b)&输出为:YCDX。,4数据类型测试函数VARTYPE(),【格式】BETWEEN(,)【功能】若逻辑型表达式的值为.T,函数值为(表达式1的值,否则为的值。【例3-31】xb=女?IIF(xb=”男”,l,IIF(xb=”女”,2,3)&显示结果为:2,6条件函数IIF(),【格式】ISNULL()【功能】判断表达式的运算结果是否为NULL值,如果是,则返回逻辑真,否则返回逻辑假。【例4】STORE.NULL.TOA?A,ISNULL(A)&结果为:.NULL.T.,7“空”值测试函数,【格式】EMPTY()【功能】根据表达式的运算结果是否为“空”值,返回逻辑真或逻辑假。【说明】(1).当表达式的结果是含有空字符串或空格时,EMPTY函数值返回为.T.,ISNULL为.F.。(2).当变量是.NULL.时,EMPTY和ISBLANK函数为.F.,ISNULL为.T.。(3).当变量是0时,EMPTY函数为.T.,ISNULL和ISBLANK为.F.。,8空值测试函数,3.2.6用户定义对话框MESSAGEBOX()函数的使用,MessageBox函数用于显示短信息。虽然,MessageBox显示的小窗口不具有什么功能,实际上它被认为是一个对话框。对话框是用户与应用程序之间交换信息的最佳途径之一。使用对话框函数可以得到VFP的内部对话框,这种方法具有操作简单及快速的特点。MESSAGEBOX函数在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。1格式MESSAGEBOX(CMessageText,nDialogboxType,CTitleBarText)2功能该函数用于显示一个信息框。,3说明(1)CMessageText:表示显示在信息框中的正文内容。(2)nDialogboxType:确定消息框中要显示哪些按钮和图标,一般有3个参数。其取值和含义为:05:表示出现在信息框中的按钮,如表所示。,16,32,48,64:表示出现在消息框中的图标;,0,256,512:表示消息框中哪些是默认按钮。,(3)CTitleBarText:表示出现在消息框标题栏中的文本。若缺省此项,系统给出默认的标题:MicrosoftVisualFoxPro(4)MESSAGEBOX()函数的返回值是一个数值,用于确定在消息框中选择了哪个按钮。,(5)如果省略了某些可选项,必须加入相应的逗号分隔符。在程序运行的过程中,有时需要显示一些简单的信息如警告或错误等,此时可以利用“信息对话框”来显示这些内容。当用户接收到信息后,可以单击按钮来关闭对话框,并返回单击的按钮值。,4举例用MESSAGEBOX()函数显示一个消息框,正文为“这是一个教师工资管理的数据库”,消息框中有“确定”,“取消”按钮,有问号图标,“取消”按钮是默认按钮,消息框标题栏中的文本为“消息框”。通过窗口显示该信息如图例。?MESSAGEBOX(“这是一个教师档案管理的数据库!”,3+64+512,”消息框”),3.3操作符及表达式,操作符是表示数据之间运算方式的运算符号,一般根据处理数据类型不同可分为算术运算符、字符运算符、关系运算符、逻辑运算符四种。表达式是由常量、变量、函数、操作符及圆括号组成的算式。表达式中的操作对象必须具有相同的数据类型,如果表达式中有不同类型的操作对象,则必须将它们转换成同种数据类型。,算术表达式是由数值型变量、常量、函数和数值操作符组成的。用于对数值型数据进行常规的算术运算。,3.3.1算术表达式,算术运算符,举例:?5/3结果:1.67?5%3结果:2?-3*2-5结果:4.00?2*7%32+3结果:8,高,算术运算符,举例?3/2&返回1.5?5.5%3&返回2.5?Int(5/3)&1,取得数值的整数部分?62&返回36?2001-12-29+4&返回2002-1-2?2002-3-1-2001-12-29&返回62?2002-3-11&返回2002-2-28?2000-3-11&返回2002-2-29,3.3.2字符表达式:,字符表达式是由字符型变量、常量、函数和字符操作符组成的。用于字符串的连接或者比较。字符串操作符为:+:连接两个字符串。-:连接两个字符串,并将第一个字符串尾部的空格移到第二个字符串的尾部。$:判断第一个字符串是否是第二个字符串的子字符串。,例如:LEN1=”VisualFoxPro6.0”LEN2=”数据库教程”?LEN1+LEN2&结果为:VisualFoxPro6.0数据库教程?LEN1-LEN2&结果为:VisualFoxPro6.0数据库教程?len(LEN1-LEN2)&结果为:28,3.3.3日期时间表达式,日期时间表达式是由日期时间型变量、常量、函数和日期时间操作符组成的。日期时间操作符有:+:添加一个天数或秒数-:减少一个天数或秒数例如:?2005-04-04+10&结果为:04/14/05?2005-04-30-15&结果为:04/15/05?2003-08-0410:10a+10&结果为:08/04/0310:10:10AM?2003-08-0410:35p-10&结果为:08/04/0310:34:50PM,3.3.4关系表达式,关系表达式用于数值、字符、日期型数据的比较运算。关系表达式的运算优先级相同。,例如:?”xyz”#”XYZ”&值为.T.?”abcd”=”abc”&值为.T.?”abc”=”abcd”&值为.F.?”abcd”=”abc”&值为.F.,逻辑表达式是由逻辑型变量、常量、函数和字符运算符组成的。用来对逻辑型数据进行各种逻辑运算,形成各种简单的逻辑结果。,3.3.5逻辑表达式,高,例如?1733.AND3412&值为.F.?16/27.0R.”abc”#”ABC”.AND.NOT.F&值为.T.,在多个逻辑值中进行判断,一般用于判断某几个条件是否满足运算对象和运算结果均为逻辑型运算符OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其余均返回.T.AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F.NOT或.NOT.:逻辑非,运算对象为.T.时,返回.F.;运算对象为.F.时,返回.T.,3.3.6空值(null),空值是一个重要的概念。空值就是没有任何值。对数值,它非零;对字符,它非空格串;对逻辑,它非真非假。在应用中,空值的概念是十分有意义的。年龄不知道时,不能填零;姓名不知道时,不能填空字串等。1空值的表示空值的表示为:.NULL.2变量中空值的表示内存变量、数组变量、字段变量均可以赋以空值。变量赋以空值后,其类型不变。也就是说空值不是一个数据类型。,例:a=&a为空格字串b=&b为空字串c=.null.&c赋以空值,但不改变其类型?empty(a),empty(b)&结果:.T.T.?isblank(a),isblank(b)&结果:.T.T.?isnull(a),isnull(b),isnull(c)&结果:.F.F.T.?type(c)&结果为:N,3.表达式中关于空值的处理在函数的参数中(isnull()等例外)或表达式中因空值而使结果未知时,其结果就为空值。例:m=0m=.null.?m+4&结果为:.null.x=.t.?xand.null.&结果为:.null.?xor.null.&结果为:.T.?not.null.&结果为:.null.,运算符同级:从左到右运算符不同级,表达式的运算顺序,表达式举例:,?(SQRT(32*2)/4+6)*5-20?(SQRT(32*2)/4+6)*5-2030?“cd”$“abc”+”def”?Date()=2002-3-8A=5b=4c=6?abandac?Abanda+bc,小结,本章简要介绍了VisualFoxPro6.0数据库系统中数据的基础概念。这一章的内容是学习后面章节和进一步开发数据库应用系统的必备的基础知识。要求读者全面掌握。掌握数据类型和数据存储(常量、变量、数组、字段、对象)的方法掌握各类型数据运算的操作符、表达式掌握常用系统函数的用法掌握NULL值的处理方法,一、思考题1表达式的组成是什么?2如何查看表达式的结果?3什么是逻辑操作符?4常用系统函数与表达式的区别?5空值的含义是什么?,第3章思考与练习,二、选择题1、2、3、4、5、6、7、8、9、10三、填空题1、2、3、4、5、6、7、8、9、10,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!