1Esofte(软)计算机二级VisualFoxPro数据库程序设计——知识点整理资料文件扩展名及备注文件扩展名文件扩展名备注扩展名文件扩展名备注扩展名项目.pjx.pjt数据库存.dbc.dbt表.dbf.fpt表单.scx.sct程序.prg报表.frx单索引.idx结构化复合索引.cdx菜单定义格式.mnx菜单程序.mpr查询.qpr视图.vcx文本文件.txt可执行程序.exe应用程序.app第一章数据库基础知识1.数据处理是指将数据转换成信息的过程。2.数据处理的中心问题是数据管理。数据管理经历了①人工管理阶段②文件系统阶段③数据库系统阶段在①②阶段存在大量数据冗余,即程序与程序之间存在大量的数据重复,数据的大量重复会造成数据不一致,指值的不一致,不是类型的不一致。3.数据库阶段的特点:提高了数据共享性、减少冗余度、提高数据的一致性和完整性、提高了数据与程序的独立性、减少应用程序的开发和维护代价。4.数据库管理系统DBMS;数据库应用系统DBAS;数据库系统DBS;数据DB数据库管理员DBA;DBS包括DBMS和DB5.数据模型(指描述数据及关系的一种方法)面向对象不同可以分为①概念模型(E-R模型也叫实体联系模型:实体用矩形表示,属性用椭圆表示,联系用菱形表示)②逻辑模型③物理模型6.关系:一个关系就是一张二维表,每个关系有一个关系名,一个关系存储为一个文件,称为表,扩展名.dbf。7.元组:在二维表中,每一行是一个元组,即一条具体记录。属性:二维表中垂直的列为属性,即表的字段名。8.域:属性的取值范围。9.关键字:属性或属性的组合,关键字的值能够惟一标识一个元组。(主关键字和候选关键字就起惟一标识一个元组的作用)10.外部关键字:如果表中的一个字段不是本表总的主关键字或候选关键字,而是另外一个表中的主关键字或2候选关键字,这个字段就被称为外部关键字。11.联系:实体之间的对应关系为联系。12.实体间的联系:一对一,一对多,多对多13.数据库中的数据模型:网状模型、层次模型、关系模型14.vfp采用的是关系模型。15.关系:表关系名:表名属性:字段元组:记录行:记录,元组列:字段,属性16.传统的集合运算:并、差、交17.专门的关系运算:选择(水平方向)for,while,where投影(垂直方向)fields,select联接(一对一,一对多,多对多)18.项目:是指文件、数据、文档、和对象的集合。扩展名.pjx可以将应用系统编译成一个扩展名为.app的应用文件或.exe的可执行文件。19.创建项目:①通过菜单创建②命令:CreateProject项目名20.打开项目管理器:①通过“文件”-“打开”菜单项②命令:ModifyProject项目名21.项目管理选项卡:①“全部”选项卡(以下五项的全部内容)②“数据”选项卡(数据库、自由表、查询、视图)③“文档”选项卡(表单、报表、标签)④“类”选项(使用基类可以创建一个面向对象的驱动器)⑤“代码”选项卡(.prg的程序文件、函数库APILibraries和.app应用程序)⑥“其他”选项卡(文本文件、菜单文件、位图文件.bmp、图标文件.ico)第二章数据与数据运算1、字段数据类型(11种)字符型C双精度型B数值型N整型I(4)逻辑型L(1)货币型Y(8)日期型D(8)备注型M(4)时间型T(8)通用型G(4)浮点(动)型F3*N包括Y、F、B、I*数值型由数字0-9、小数点、正负号构成。*字符型用半角的单引号、双引号、方括号把字符串起来,1个汉字占2个字节,不包含任何字符的串叫空串。空串与包含空格的字符串不同。*日期型有严格的日期格式和传统的日期格式,常用的分隔符有斜杠(/)连字符(-)句点(.)和空格。严格的日期格式{^yyyy-mm-dd}必须{^},年份4位,年月日不能颠倒。setmarkto“-”则用指定的分隔符setmarkto系统默认的斜杠分隔符setcenturyon设置4位数字年份setcenturyoff设置2位数字年份setdatetoymd设置年月日格式*逻辑型用.t..f.或.y..n.表示。2、变量:变量值能够随时改变的。变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成3、变量的分类:字段变量和内存变量(简单内存变量和数组)当内存变量与字段变量同名时,通过M.或M-访问内存变量,例如M.姓名。4.数组:是内存中连续的一片存储区域,由一系列元素组成,每个数组元素相当于一个简单变量,可以给各元素分别赋值。数组在使用前用dimension或declare命令指定是1维数组、2维数组、数组名和数组大小,数组大小由下标值的上下限决定,下限规定为1.数组创建后,系统自动给每个数组元素赋以逻辑假.f.。例如:dimensionx(5),y(2,3)一维数组x含5个元素:x(1),x(2),…x(5)二维数组y含6个元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3)。①x=1000,将同一个值赋给所有的元素。②?x指显示第一个数组元素。③数组名不能与简单变量名重复。④在赋值语句中的表达式位置不能出现数组名。⑤可用一维数组形式访问二维数组。数组y可依次表示为:y(1),y(2),…y(6),其中y(4)与y(2,1)是同一变量。举例说明:a=8&定义一个内存变量adimensiona(4),b(2,3)&该命令执行后,数组a,b中的所有元素的初值都为.F.&内存变量名与数组变量名重复,以后看到a,都应把它当成是数组变量4store10toa与a=10等价&数组a中的所有元素值都为10b(1,1)=30b(1,2)=“计算机”b(3)=.F.5.显示内存表达式的值?换行输出??不换行输出6.数值表达式:**或^乘方运算%求余运算7.字符表达式,日期表达式:+-8.子串包含测试:$不等于:、#或!=9.字符串精确比较“==”两个字符完全相同.T.“=”setexacton|off10.优先级顺序:notandor,*/优先于+-11.常用的函数一、数值函数求绝对值函数:ABS(数值表达式)如:ABS(-100)的值是100符号函数:SIGN(数值表达式)它的值只有1、0、-1。如SIGN(-100)的值是-1;SIGN(78)的值是1.SIGN(0)的值是0.求平方根函数:SQRT(数值表达式)如SQRT(16)的值是4.圆周率函数:PI()它的值是3.14求整数函数:INT(数值表达式)取整函数。如INT(8.9)的值是8。CEILING(数值表达式)返回大于或等于指定数值的最小整数。如:CEILING(8.9)的值是9;CEILING(-8.9)的值是-8。FLOOR(数值表达式)返回小于或等于指定数值的最大整数。如:FLOOR(8.9)的值是8;FLOOR(-8.9)的值是-9。四舍五入函数:ROUND(数值表达式1,数值表达式2)如:ROUND(37.4567,2)的结果是37.46求余函数:MOD(数值表达式1,数值表达式2)返回两个数值相除后的余数。如:MOD(10,3)的结果是1;MOD(10,-3)的结果是-2。注:余数的正负号与除数相同求最大值和最小值函数:MAX(,,,…)计算各自变量表达式的值,并返回其中的最大值。MIN(,,,…)计算各自变量表达式的值,并返回其中的最小值。注:自变量表达式的值可以是任何类型的,但所有表达式的类型必须一致。5二、字符函数求字符串长度函数:LEN(字符表达式)如:LEN(“努力过visualfox”)的结果是17.注:一个汉字占两个字符。大小写转换函数:LOWER(字符表达式)大写转小写如:LOWER(“ABC”)结果是abc.UPPER(字符表达式)小写转大写如:LOWER(“abc”)结果是ABC.空格生成函数:SPACE(数值表达式)如:SPACE(5)结果就是5个空格。删除前后空格函数:TRIM(字符表达式)去掉尾部空格。如:TRIM(“abc”)结果是“abc”LTRIM(字符表达式)去掉首部空格。如:TRIM(“abc”)结果是“abc”ALLTRIM(字符表达式)去掉首部和尾部空格。如:TRIM(“abc”)结果是“abc”取子串函数:LEFT(字符表达式,长度)从左边截取字符串。如:LEFT(”ABCDE”,2)的结果是”AB”RIGHT(字符表达式,长度)从右边截取字符串。如:RIGHT(”ABCDE”,2)的结果是”DE”SUBSTR(字符表达式,起始位置,长度)截取字符串。如:SUBSTR(”ABCDE”,2)结果是”BCDE”SUBSTR(”ABCDE”,2,3)结果是”BCD”计算子串出现次数函数:OCCURS(字符表达式1,字符表达式2)如:OCCURS(”A”,”DBABCADA”)的结果是3.求子串位置函数:AT(字符表达式1,字符表达式2)如:AT(”A”,”DSADD”)的结果是3子串替换函数:STUFF(字符表达式1,起始位置,长度,字符表达式2)如:STUFF(”GOODBYE”,6,3,”MORNING”)结果是GOODMORNING字符替换函数:CHRTRAN(字符表达式1,字符表达式2,字符表达式3)如:CHRTRAN(”大家好”,”大家”,”您”)结果是您好字符串匹配函数:LIKE(字符表达式1,字符表达式2)如:LIKE(”AB*”,”ABCD”)结果就为真.注意:通配符只能出现在第一个字符表达式中。三、日期和时间函数系统日期和时间函数:DATE()系统日期TIME()系统时间注意:TIME()是字符型的。6DATETIME()系统日期时间。年份函数:YEAR(日期表达式)如:YEAR({^2009/09/19})结果是2009四、数据类型转换函数数值转换字符函数:STR(数值表达式)如:STR(100)结果就是字符型的100字符转换数值函数:VAL(字符表达式)如:VAL(”100”)结果就数值型的100字符串转换成日期:CTOD(字符表达式)字符串转换成日期时间:CTOT(字符表达式)日期转换成字符:DTOC(日期表达式)日期时间转换成字符:TTOC(日期时间表达式)宏替换函数:&字符型变量如:a=”10”?1+&a的结果就是11。五、测试函数:值域测试函数:BETWEEN(表达式1,表达式2,表达式3)判断第一个表达式是否在第二个表达式和第三表达式之间,如果是就返回真,否则返回假。`空值测试函数:ISNULL(表达式)判断表达式是否为NULL是则返回真,否则返回假。“空”值测试函数:EMPTY(表达式)如是表达式是空格、0、.f.则返回真,否则返回假。数据类型测试函数:VARTYPE(表达式)判断表达式返回的类型。表尾测试函数:EOF()表首测试函数:BOF()记录号测试函数:RECNO()条件测试函数:IIF(逻辑表达式,表达式1,表达式2)当逻辑表达式为真是,做表达式1,否则做表达式2。如:IIF(58,5+8,6-3)结果是3程序设计基础1、概念:是命令的集合,分行存储在磁盘上,按照人为的顺序依次输出的过程。2、建立、修改程序文件(.prg):modifycommand程序名3、远行:do程序文件名4、基本的输入语句:(以求圆的面积为例)①input“请输入圆的半径”tor可接受的数据类型:C、N、L、D、T;从键盘上接受输入,但不能不输入任何内容;输入字符常量必须加定界符②accept“请输入圆的半径”tor7只能接受字符串,输入是不需要加定界符③wait“请等候…”windowwait提示信息to内存变量5、程序的结构:顺序结构选择结构(分支、判断)循环结构(条件、步长)6、程序的控制语、注释语①exit终止,跳出,至enddo后面②loop中止,跳至dowhile判断条件③quit退出系统④*换行注释⑤&&同行注释注释语句【格式1】NOTE注释内容【格式2】*注释内容【格式3】&&注释内容7、程序的模块,形参、实参形式参数定义:PARAME