1、数据库讲义数据类型数据是反映客观事物属性的记录,分为数值型和字符型将数据细分为:字符型 数值型 日期型 日期时间型 逻辑型 备注型 通用型字符型 字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。 可以包含任何可以显示的字符、汉字和符号,最大长度为254个字符,每个字符占用一个字节,一个汉字占2个字节。字符型常量使用时必须用定界符双引号(“”)或单引号( )或( )括起来。例:“河北” 占四个字节,为4个字符 “He is boy” 占9个字节,为9个字符 ab+cd 占5个字节,为5个字符数值型数值型数据是描述数量的数据类型,又分为: 数值型N 数字09,小数点和正负号组成
2、,最大长度20个字符 浮点F 高精度的数值型数据,只是在存储形式上采取浮点格式 双精度型B更高精度的数值型数据,只用于定义数据表中的字段类型整型I不包含小数点部分的数值型数据,只用于数据表中字段类型定义货币型Y 数据的第一个数字前冠一个货币符号(),最多保 留4位小数set currency to 重新设置货币符号例: set currency to “¥”日期型日期型D 用于表示日期的数据,长度固定为8个字符 默认格式用mm/dd/yyyy 日期时间型T 包括日期和时间的数据,长度固定为8个字符 默认格式用mm/dd/yyyy hh:mm:ss逻辑型描述客观事物真假的数据,用于表示逻辑判断结
3、果。逻辑型数据只有真(T,Y)和假(F,N)两种值,长度固定为1个字符例:X=5 Y=8 ? XY备注型用于存放较长的字符型数据类型,没有数据长度限制,受限与现有的磁盘空间。它只用于数据表中字段类型的定义,字段长度固定为4个字符,而实际数据存放在与数据表文件同名的备注文件中,长度根据数据的内容而定通用型用于存放OLE对象的数据,OLE对象可以是电子表格、文档、图片等。它只用于数据表中字段类型的定义,字段长度固定为4个字符,而实际数据长度受限于现有的磁盘空间数据存储数据的输入输出是通过数据的存储设备完成的,这些供数据存储的常量,变量,数组,字段,记录和对象称为数据存储容器1)常量 2)内存变量3
4、)数组变量 4)字段变量5)记录 6)对象常量在运行过程中,存放在内存中不变化的数据数值型常量:数09,小数点和正负号组成的整数或实数浮点型常量:数值型常量的浮点格式字符型常量:也称字符串,使用时用”,括起来逻辑型常量:必须用“.”括起来日期型常量:用“ ”括起来日期时间型常量:用“ ”括起来日期型常量 使用Set命令确定日期常量的格式Set 命令功 能Set Mark To日期分隔符确定日期数据的分割符号Set Century On/Off确定日期数据的年份字符数(On4个字符,Off-2个字符)Set Date To American/Mdy/Ymd确定日期数据的指定格式Set Stric
5、tdate To 0/1/2设置是否对日期数据的格式进行检查变量指在程序运行过程中其值可以改变的量,用一个标识符表示,这个标识符称变量名,变量名可以使用字母,数字和下划线,且首字符必须是字母,长度不得超过254个字符,变量的种类有: 内存变量 数组变量 字段变量内存变量内存变量是存放在计算机内存中的变量,用户在使用它时,需定义内存变量的名称和内存变量赋值。命名:是由字母、数字、下划线或汉字组成的,但第一个字符不能是数字。赋值:内存变量的定义通过赋值语句完成,它的类型取决于接受的数据类型,有数值型,浮点型,字符型,逻辑型,日期型和日时间型赋值命令:store to 将表达式的值赋给内存变量内存变
6、量的类型由所赋的值决定输出命令:?/?at一次计算表达式表中表达式的值,并将值显示在屏幕上输出?显示结果在下一行第一列输出?显示结果在当前行当前列输出at表示在指定的列输出var1=“世界杯” var2=12.5 store2002/08/01 to var3 store “hello” to var4,var5,var6 lg=.t. nam=var2 nam1=var2+6? var1,var4 ? var1,var2 ? var3 ? var4 at 20 ? var2+6内存变量的作用域全局型内存变量:格式 Public 在全部程序、过程和字定义函数,以及它调用的程序、过程和自定义函数
7、中有效。即使整个程序结束,全局型内存变量也不被释放,值仍保存在内存中。局部型内存变量:格式 Private 在定义它的程序以及被该程序调用的程序、过程和局部内存变量函数中有效。一旦定义它的程序运行完毕,局部型内存变量将从内存中释放本地型内存变量:格式 Local 只能在定义它的程序中有效,一旦定义它的程序运行完毕,本地型内存变量将从中释放数组变量VFP为使问题变得简单和其它高级语言一样。可以使用数组。数组也是一种内存变量,数组实际上是按一定顺序排列的一组内存变量,用一个名字代表,称为变量名。如:A1,A2,A40表示从编号1顺序排列到40 用一个字母A 表示数组变量的变量名A8表示A数组中的第
8、8个学生的成绩称A1,A2,A40为名字为A的数组A8则是A数组中排列顺序第8的变量被称作A数组中的一个数组元素。是一组有序的内存变量的集合,每个内存变量都是这个数组的一个元素,每个元素在内存中独占一个内存单元,且通过数组名和下标来访问。同一个元素在不同时刻可以存放不用类型的数据同一个数组中,每个元素可以是不同的数据类型数组必须先定义后使用定义:dimension (),) ,(),) declare (),) ,(),)dimension a(10), X(3,4)1)VFP只能定义一维和二维数组,数组中的成员称数组元素 2)数组元素由数组名和其后用小括号括起来的下标组成,如:A(6),B(
9、8)。 3)下标可以是常数、变量或表达式。如:A(8),A(I),A(I+3) (若下标为变量或表达式中有变量时,应事先赋值)4)下标值必须0,即VFP规定各下标的下界为15)数组大小由下标值的上下限决定,数值下限为1,上限在定义数组时由数值表达式给出。如果定义数组时给出两个数值表达式,则定义的数组是二维数组。6)下标若为非整数时,系统自动取其整数。 DIMENSION X(3.5)DIMENSION X(3) 7)若要使用数组必须先定义 8)数组元素象简单变量一样可被赋值 9)数组中的数组元素可以存放不同类型的数据,数据的类型由最后一次赋值决定。(即同一数组的不同元素,数据类型可以不一致)
10、10) 数组一经定义,数组中元素的值自动取逻辑值.F.例:Demesion a(10) a(1)=0 a(2)=“123456” a(3)=.F. a(4)=2002-12-05 ?a(1) ?a(2) ?a(3) ?a(4) ?a(5)函数 函数的要素函数有函数名、参数、函数值3大要素。 函数名起标识作用 参数是自变量,一般是表达式,写在括号里.有的函数没有参数,称哑参数.如DATE() 函数运算会返回一个值,称为函数值,函数值会因参数而异 函数的类型函数的类型即函数值的类型,将其分为5类:1)数值计算函数 2)字符处理函数3)数据转换函数 4)日期和时间函数5)测试函数 取整函数int()
11、 功能:返回的整数部分 函数返回值的类型 N?int(37.59) num=-34.8? int(num)? int(36.5) ? int(36/5) ? int(-36.5) ? int(5*20.1) 求极值函数max(,) min(,) 功能:返回多个中数据值最大/最小的参数num1=496 num2=468 ?max(num1,num2)? max(A,B) ? max(李,赵)set currency to ¥”? max(¥123,¥127) ? max(1999/02/05,1998/06/09) 取余函数mod(,) 功能:返回两个数值相除后的余数。是被除数,是除数。 说明:
12、余数的正负号与除数相同 若两数能整除则值为0 如果被除数与除数同号,则函数值即为两数相除的余数,或者mod(x1,x2)x1int(x1/x2)*x2 如果被除数与除数异号,则函数值即为两数相除的余数再加上除数的值,或者mod(x1,x2)x1int(x1/x2)*x2+x2 注:数值表达式2的值不容许为0? mod(8,3)? mod(-10,-3)? mod(-10,3)? mod(10,-3)? mod(4*9,90/9) 绝对值函数abs() 功能:返回的绝对值 说明:函数返回值的类型 N? abs(25-30) 四舍五入函数round(,) 功能:对的数值进行四舍五入 i指明四舍五入
13、的位置 说明:1) i表示小数保留的位数,应为数值型数据 2) i0时代表小数部分的舍入位数,小数保留i位,第i+1位四舍五入 3) i=0时,表示保留整数位,将小数部分四舍五入 4) i0时,代表整数部分的舍入位数,小数点左边第i位进行四舍五入,则函数值为一个舍入后的整数。?round (43.1163,2)x=1024.0186?round (x,2)?round(x,-2)?round(1735.28,-2)?round(1735.28,-3)? round(3.1415926,3) ? round(123.456,-2) ? round(123.456,0) ? int(123.456
14、),int(-123.456)? round(123.456,1),round(123.456,0), round(123.456,-1)? max(30,-352,20*4)? mod(17,6),mod(17,-6),mod(-17,6),mod(-17,-6)? abs(2*3-10),sqrt(2*6+4)字符处理函数 求字符串长度函数len() 功能:返回的字符个数 说明:半角标点符号和空格占1个字符位置全角标点符号和汉字占2个字符位置, 返回函数值为数值型str1=“Computer_System:计算机系统? len(str1) 求子串位置函数 at(,) atc(,) 功能:若
15、是的子串,则返回 在中第n次出现的位置,否则返回0。n为数值表达式的计算结果,缺省时为1 说明:函数值为数值型 atc()在子串比较时不区分字母的大小写str1=Computer System:计算机系统? at(PUt,str1),at(put,str1)? atC(PUT,str1),atC(put,str1)? at(系统,str1)? at(m,str1,2) 统计字符出现次数 occurs(,) 功能:返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第一个字符串不是第二个字符串的子串,则返回0str1=Computer System:计算机系统? occurs(te,s
16、tr1) 字符串匹配函数 like(,) 功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真,否则返回逻辑假 说明:中可以包含通配符*和?,*代表多个任意字符,?代表一个任意字符str1=Computer System:计算机系统? like(系统,str1),like(*系统,str1)? like(computer*,str1),like(Computer*,str1) 首字符测试函数 isalpha() &测字母 isdigit() &测数字 islower() &测小写字母 isupper() &测大写字母 功能:若的首字符分别是字母、数字、小写字母、大写字母
17、,则返回.T.,否则返回.F.? isalpha(“Fox”),isdigit(Fox)?islower(“Fox”),isupper(Fox) 取子串函数 substr (,) left(,) right(,) 功能:substr()从字符串的指定起始位置取指定长度的子串作为函数值,若长度缺省,则函数从指定位置一直取到最后一个字符 left()和right()分别从字符串的左端和右端取一个指定长度的子串作为函数值str1=Computer System:计算机系统? Substr(str1,9,6),left(str1,7),right(str1,10)?substr (“database”
18、,4,2)?substr (“database”,4)?substr (“internation”,6) 删除前后空格函数 trim() &去掉字符串的尾部空格 Ltrim() &去掉字符串首部空格 alltrim() &去掉字符串首尾部空格 说明:函数值为字符型str1=“_计算机_ str2=“等级考试_ _? +str1+str2+? +ltrim(str1)+trim(str2)+? +alltrim(str1+str2)+ 生成字符串函数 space() replicate(,) 功能:space()返回由多个空格组成的字符串 replicate()返回复制多次后形成的字符串。复制次
19、数由的值决定.? replicate(fox,4)+space(4)+replicate(fox,4) ? ”200401”space(2)”王大力”X=“_ _1235_word _ _”?trim(x)?ltrim(x)?rtrim(x)?alltrim(x)? Left (“internation”,3)?right (“internation”,3)转换函数 数值转换成字符串函数 str(,) 功能:将的值转换成字符串,转换时根据需要四舍五入处理 指转换后数据的总长度,其中包括符号位、小数点及小数点后的小数位数 小数位数表示转换后的数据小数点后的小数位数,若省略,则表示忽略数据中的小数
20、位,并四舍五入。说明: 省略、,系统约定字符串长度为10,小数位为0 若、有小数部分,小数部分无效(不四舍五入) 若值超过的数据位数(整数位数小数位数1位小数点),字符串前自动添加适量的空格。 若值小于的整数部分位数则结果显示一串星号(*) 若值大于的整数部分位数则优先处理整数部分而自动调整小数位数?Str(142.1,5,2)?str(23.568)?str(23.468)? 1234.56,str(1234.56,10,3)? str(12345678,5)? str(len(abc)+0.345 字符串转换成数值函数 val() 功能:将由数字符号组成的转换成相应的数值型数据,保留2位小
21、数(小数遵循四舍五入原则) 说明:若字符串中出现非数字字符,则只转换前面部分 若字符串的首字符为非数字字符(可以是空格),则返回数值0?val(“123.456”),val(“A123.45”)?val(12A3.45),val( 123.45) 字符串转换成日期或日期时间函数 ctod() ctot() 功能:分别将字符型数据转换成日期型和日期时间型数据 说明:必须是与系统设置相同的日期和日期时间格式的字符串set date to ymd set century on? ctod(2003/03/10)?ctod(“2003-05-06”)SET DATE TO mdySET CENTURY
22、 on? CTOD(06/05/01) 日期或日期时间换成字符串函数 dtoc(|,1) dtos(|) ttoc(,1) 功能:dtoc()和dtos()将日期数据或日期时间数据的日期部分转换成字符串 ttoc()将日期时间数据转换成字符串,使用参数1,则返回字符串格式:yyyymmddhhmmss,采用24小时制 dtoc()日期转换格式为:mm/dd/yy,使用参数1,则返回字符串格式:yyyymmdd dtos()日期转换格式为:yyyyymmdd 系统日期和时间函数 date() 返回系统当前日期,函数值为日期型 time() 返回系统当前时间,函数值为字符型 datetime()返
23、回系统当前的日期和时间函数值为日期时间型 求年份、月份和天数函数 year(|) month(|) day (|) 说明:year() 返回4位的年份值在屏幕输出今天是: 今年是: 年 这个月是: 月 今天距离30号还有: 天 时、分、秒函数 hour() minute() sec()在屏幕输出现在的时间是: 时 分 秒 表达式 由运算符将常量、变量、函数连接起来的式子,其中常量、变量、函数是表达式的特例。在命令格式中的,往往泛指常量、变量、函数和表达式 表达式中每一个运算符都占用一个字符,其中的运算符、标点符号和圆括号都必须使用西文半角符号。 每个表达式经过运算都会产生一个结果,即表达式的值
24、。根据表达式值的类型,可以将表达式分为算术表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式。算术表达式算术表达式的运算结果是数值型常数优先顺序:()函数*,/+,-? 6/2+3*4-5 ? 17%6,17%-6,-17%6,-17%-6 ? 2*56/(3+lOG(6)+6字符表达式字符表达式的运算结果是字符常数或逻辑型常数X=中国 Y=北京_ _ Z=长城 ?X+Y ?X-Y+Z str1=计算机_ str2=课程 ? str1+str2,and,str1-str2+安排关系表达式 关系运算符两侧表达式的类型要一致,关系运算符两边的表达式可以是字符表达式、数值表达式、逻辑表达式和
25、日期时间表达式 关系运算符的优先级:先计算两侧表达式的值后比较大小 数值比较:按其值大小进行比较,并且包括正负号 日期数据比较:日期在前的为小。 逻辑值值比较:.F.T. 字符串进行比较:按ASCII码值的大小比较,汉字按其机内码值的大小比较。两个字符串比较时,系统对它们的字符从左向右逐个进行比较,对应字符不同时,根据两个字符的ASCII码值决定两个字符串的大小。如,abcabd,结果为 .T.。=为不精确比较,串1尾部的空格不参加比较,串2尾部的空格参加比较.=为精确比较,串1与串2必须一致? 23?a=8 ? ABCABC? ABC=ABC? ABC =ABC? ABC=ABC ? ABC
26、 =ABC? 100101? 李 $李明作业1.比较连接运算符“+”与“-”的异同?2.求下列表达式的值。AT(人民,中华人民共和国)STR(123.456,6,2)+30REPLICATE(,2)+新北京+SPACE(2)+新奥运+REPLICATE(,2)TRIM(SUBSTR(Visual FoxPro,7,3)+RIGHT(Visual FoxPro,3)+6.01、计算val(subs(“奔腾586”,5,1)+len(“Visual FoxPro”)2、计算subs(right(Good morning everybody,9),6,5)3、设op=“+”,计算100&88.884、设rq1=“2006/3/11”,rq2=ctod(“3/11/2006”),计算year(rq2)+val(rq1)5、设x=15,执行?y=x=16,观察执行结果 (1) x1=”123.456” x2=-23.456 ?val(x1)+round(x2,1)(2)store 10 to y1 store 25 to y2 ?y1y2 ?(y1=y2).or.(y1y2)(3)store “EF ” to z1 store “GH” to z2 ?z1+z2 ?z1-z2 ?.not.(z1=z2)(4) va
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1