2022年全国计算机二级VFP知识点总结.docx
全国运算机二级 Visual FoxPro数据库程序设计 学问点整理资料文件扩展名及备注文件扩展名文件扩展名备注扩展名文件扩展名备注扩展名项目.pjx.pjt数据库.dbc.dbt表.dbf.fpt表单.scx.sct程序.prg报表.frx单索引id .idx结构化复合索引.cdx菜单定义格式.mnx菜单程序.mpr查询.qpr视图.vcx第一章数据库基础学问1、数据库治理系统 DBM;S 数据库应用系统 DBAS;数据库系统 DBS;数据 DB数据库治理员 DBA; DBS包括 DBMS和 DB2、实体间的联系:一对一,一对多,多对多3、数据库中的数据模型:网状模型、层次模型、关系模型4、关系:一个关系就是一张二维表,每个关系有一个关系名5、元组:二维表中的行称作元组6、属性:二维表中的列称作属性7、域:属性的取值范畴8、关系:表关系名:表名属性:字段元组:记录行:记录,元组列:字段,属性9、传统的集合运算:并、差、交10、特地的关系运算:挑选(水平方向)for, while, where投影(垂直方向)fields ,select联接(一对一,一对多,多对多)11、定义数组: dimension/declare数组名( 3,4)VF基础学问1、创建项目:通过菜单创建命令: Create Project项目名2、打开项目治理器:通过“文件” -> “打开”菜单项命令: Modify Project项目名3、各类文件选项卡:“全部”选项卡(以下五项的全部内容)“数据”选项卡(数据库、自由表、查询、视图)“文档”选项卡(表单、报表、标签)其次章数据与数据运算1、字段数据类型( 11 种)*N 包括 Y、F、B、I“类”选项卡“代码”选项卡“其他”选项卡2、变量:变量值能够随时转变的;变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成3、变量的分类:字段变量和内存变量(简洁内存变量和数组)当内存变量与字段变量同名时,通过前缀M.或 M->拜访内存变量4、子串包含测试: $5、字符串精确比较 “=”两个字符完全相同 .T. “ =” set exact on | off6、常用的函数数值函数: 1ABS()函数2. SIGN()函数3. SQR(T )函数4. PI()函数5. INT()函数6. CELING()函数7. FLOO(R )函数8. ROUN(D)函数9. MOD()函数10. MAX()函数11. MIN()函数字符函数: 1LEN()函数2. LOWE(R)函数3. UPPE(R )函数4. SPAC(E )函数5. TRIM()函数6. LTRIM()函数7. ALLTRIM()函数8. LEFT()函数9. RIGHT()函数10. SUBST(R )函数11. OCCUR(S)函数12. AT()函数13. STUFF()函数14. CHRTRA(N)函数15Like<.*>,<>日期时间函数: 1 DATE()函数2. TIME()函数3. DATETIM(E )函数4. YEAR()函数5. MONT(H)函数6. DAY()函数7. HOU(R )函数8. MINUTE()函数9. SEC()函数数据类型转换函数: 1STR()函数2. VAL()函数3. CTOD()函数4. DTOC()函数5. 宏替换函数测试函数: 1BETWEE(N)函数2. ISNULL()函数3. EMPT(Y )函数4. VARTYP(E)函数5. EOF()函数6. BOF()函数7. RECN(O)函数8. RECCOU(NT)函数9. DELETE(D )函数10. IF ()函数程序设计基础1、概念:是命令的集合,分行储备在磁盘上,依据人为的次序依次输出的过程;2、建立、修改程序文件( .prg ): modify command程序名3、远行: do程序文件名4、基本的输入语句:(以求圆的面积为例) input “请输入圆的半径” to r可接受的数据类型: C、N、L、D、T;从键盘上接受输入,但不能不输入任何内容;输入字符常量必需加定界符 accept“请输入圆的半径” to r只能接受字符串,输入是不需要加定界符 wait“请等候” window wait < 提示信息 > to < 内存变量 > 5、程序的结构:次序结构6、程序的掌握语、注释语挑选结构(分支、判定) 循环结构(条件、步长)exit终止,跳出,至 enddo 后面loop中止,跳至 do while判定条件quit退出系统 *换行注释 &&同行注释注释语句【格式 1】 NOTE <注释内容 >【格式 2】 * < 注释内容 >【格式 3】 && <注释内容 > 7、程序的模块,形参、实参形式参数定义: PARAMETERS形<参>参数传递:格式一: do文件名或过程名with实参格式二:文件名或过程名 实参8、变量的作用域:全局变量(又称公共变量)( public ):可在任何模块和程序中使用,而且在VF运行环境内都始终可见(命令窗口输入的也是)私有变量(private): 在建立该变量的模块及其下属各层模块中使用, 在其上层模块中不行用; 在程序中直接使用没有特殊声明的变量都是私有变量;用 private声明上层模块中已经存在的变量,使得上层模块定义的变量在当前临时无效局部变量( local ):只能在建立它的模块中使用,不能在上层或下层模块中使用第三章 数据库及其操作1、创建数据库:在项目治理器中建立在菜单中建立命令: Create database数据库名2、打开数据库: Open Database数据库名 3、删除数据库: Delete Database数据库名4、修改数据库: Modify Database数据库名5、关闭数据库: Close Database6、打开表设计器: Modify Structure7、显示全部表记录: List (显示完全部记录)8、显示当前表记录: Display (分页显示记录)9、记录的肯定定位: Go n 10、浏览、修改表: Browse11、编辑、修改表: Edit/Change12、批量修改: Replace all字段 with字段表达式13、规律删除: Delete (只在记录前加 *,不删除) 14、复原规律删除: Recall15、物理删除: Pack:只删除带 * 的记录Zap:物理删除表中全部记录16、关闭表: Use17、打开表: Use表名18、复制表记录: Use表名; Copy to新表名19、复制表结构: Use表名; Copy Structure to新表名20、追加表记录:将另一表中的记录添加到该表中:Use要追加记录的表名Append from有记录的表名在尾部追加记录: Append在尾部增加一条空记录: Append blank21、插入表记录:在当前记录的后面插入一条记录:insert after在当前记录的后面插入一条空记录:insert blank在当前记录的前面插入一条记录:insert before 22、显示全部含有条件的记录: list for23、显示满意条件的记录: list while 24、显示字段: list fields25、指针记录的定位:bof () 为.T. 时指向文件头go top定位在第一条记录go bottom定位在最终一条记录eof () 为.T. 时指向文件尾skip向下移动一个指针,指向下一条记录(不含当前记录)all全部记录locate for满意条件的第一条记录continue连续查找满意条件的下一条记录用 locate命令定位:Locate for条件查找满意条件的第一条记录Continue连续查找满意条件的第一条记录.found测试是否有返回值,如有.T. ,如无 .F. Display显示26、记录的范畴: next n向下 n 条记录rest从指针指向位置开头的全部记录27、在数据库关闭 / 删除的情形下建立的表为自由表,自由表字段名最长为10 个字符;28、在数据库打开 / 修改的情形下建立的表为数据库表,数据库表字段名最长为128 个字符,可以为数据库表建立主索引、字段有效性和参照完整性,这也是自由表没有的;29、创建数据库表: open database数据库名; creat表名30、创建自由表:确定当前没有打开数据库,使用命令:creat表名31、将自由表添加到数据库中: open database数据库名; add table表名32、将数据库表移出数据库: open database数据库名; remove table表名*小结:1、用 use打开表时,记录号位于第一条记录2、执行带 all的命令,记录指针指向eof=.T.3、当为 .T. 时, bof 的记录号总是为 1, eof 的记录号是记录数 +14、空表的总记录是 0,bof 的记录号是 1,eof 的记录号是 1*33、排序:建立排序: sort on字段名/a/d/c to新表名/a ( asc):升序; /d (desc):降序; /c :不区分字母大小写34、索引:索引的种类:主索引,候选索引,唯独索引,一般索引建立索引: index on关键字tag索引文件名打开索引: set index to索引文件名关闭索引: set index to查找索引: find / seek删除索引: delete tag all索引标识主控索引: set order to索引名建立永久链接的条件:父表必需建立主索引,子表必需建立一般索引建立临时链接:窗口 -> 数据工作区子动)命令: set relation to父表字段名into子表名(父动举例: open database成果治理Use student in 1 order学号Use score in 2 order学号Set relation t, o学号 into 2/score,Select 1 / go 3 / display / select 2 / display35、互换表中记录:先打开表go 1;scatterto aa(数组名); go 3;scatterto bb(数组名); go 1 ;gather from bb;go 3 ;gather from bb*小结:排序与索引的区分1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关键字,不需要打开表;2、排序生成一个新表,索引是针对原表生成一个指针文件3、升降序的表示与书写方式不同:排序/a 升序/d 降序/c 不区分大小写,索引 ascending和 descending ;4、排序与索引的 to 的含义不同,排序的 to表示到一个新表,索引的 to 表示建立单索引文件;5、表达式的方式不同,排序用(,)逗号,索引用(+加号) 自由表与数据库表的不同:1、自由表有三个索引:候选索引、唯独索引、一般索引;2、数据库表有四个索引:主索引、候选索引、唯独索引、一般索引;3、一个数据库表只能有一个主索引,可以有多个候选索引、唯独索引、一般索引;4、一个表只属于一个数据库;5、主索引和候选索引表示表记录的唯独性;6、数据库表的字段答应长度是 0 128 个字符,而自由表只答应 10 个字符;7、数据库表可以设置字段的有效性规章和参照完整性,而自由表不能;8、可以将自由表添加到数据库中,也可将数据库表从数据库中移去成为自由表;*36、数据的完整性:实体完整性:主索引和候选索引,保证记录的唯独性域完整性:表示字段的有效性和取值范畴参照完整性:描述表与表之间的关系参照完整性的规章:更新规章(级联、限制、忽视)删除规章(级联、限制、忽视) 插入规章(限制、忽视)参照完整性是数据库文件的产物,要有联接,先打开数据,在父表建立主索引,子表建立一般索引,建立连线后先清理数据库,再编辑参照完整性;37、工作区:工作区的挑选: select <工作区号 >|< 别名>范畴: 132767 默认 0 号工作区,也是最小工作区select 0表示选定当前仍未使用的编号最小工作区第四章SQL语言1、SQL: structure query language2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台的操作语言,具有特别强大的查询功能,查询是它的核心;3、基本构成: select查询什么字段/from数据源/where查询条件4、三大功能:数据查询格式: select字段名/* from表 1 inner join表 2 on表 1 主关键字 =表 2 主关键字where挑选条件 groupby分组 having分组条件 orderby排序函数字符型C双精度型B数值型N整型I (4)规律型L(1)货币型Y(8)日期型D(8)备注型M(4)时间型T(8)通用型G(4)浮点(动)型FMaxMinAvgCountSum最大值最小值平均值计数求和值域查询: betweenand空值查询: is null/is not null模糊查询: like (like后所指定的字段值肯定是个字符型数据;通配符%表示 0个或多个字符,” _”只表示一个字符)使用量词和谓词的查询: any/some/allsome 和 any 是同义词 not exists*some、any 只有子查询中有一行能使结果为真,就结果为真*all子查询中全部记录都使结果为真,就结果为真*not exists用来检查是否有结果返回,即存在 / 不存在元组集合的并运算: union字段相同,值域相同虚字段: as新字段名操作功能:定义功能:插入: insert into表名(字段名) values (字段值)更新: update表名 set字段名=表达式 where条件式删除: delete from表名 where条件表的定义: create tabledbf 字段名 类型 宽度 删除表: drop table表文件名删除视图: drop view视图文件名表结构的修改:添加字段: alter table表名add字段名 类型(宽度)修改字段: alter table表名alter字段名 新类型(宽度)删除字段: alter table表名 drop 字段名重新命名字段:alter table表名rename column原字段名to新字段名建立有效性规章: alter table表名 alter字段名set check字段条件 建立默认值: alter table表名 alter字段名set default条件删除默认值 / 有效性规章: alter table表名alter字段名 drop default/drop check建立候选索引:alter table表名add unique字段tag索引名建立主索引: alter table表名add primary key字段tag索引名建立一般索引: alter table表名add foreign key字段tag索引名删除候选索引:alter table表名 drop unique tag索引名删除主索引: alter table表名drop primary key字段tag索引名删除一般索引: alter table表名drop foreign key字段tag索引名5、SQL查询的六种去向:将查询结果存放到数组中into array数组名将查询结果存放在临时文件中into cursor临时表文件名将查询结果存放到永久表中into dbf/table自由表文件名将查询结果存放到文本文件中to file文本文件名将查询结果直接输出到打印机to printer将查询结果显示在屏幕上to screen第五章查询与视图1、定义: 查询是预先定义好的一个 select语句2、数据源 : 数据库表、自由表或视图3、建立查询的方法项目治理器文件新建命令: create query4、查询设计器中各选项卡与 select语句的对应关系:选项卡:字段、联接、挑选、排序依据、分组依据、杂项挑选了创建查询的表或视图from 短语字段选项卡 select短语联接选项卡 join on短语挑选选项卡 where 短语排序依据选项卡 order by短语分组依据选项卡 group by短语和 having 短语杂项选项卡可以指定是否要重复记录(对应于distinct短语) 仍可指定列在前面的记录(对应于top 短语)5、查询去向:浏览、临时表、表、图形、屏幕、报表、标签6、运行查询: do查询文件名 .qpr7、查询储存在查询文件中,查询文件是一个文本文件;8、查询文件( .qpr ) 视图文件( .vue )9、定义:视图是一个定制的虚拟表,依靠于数据库,是从一个或多个数据库中导出的表;在视图中只存放视图的定义,不存放视图的内容;视图分为本地视图和远程视图10、数据源:数据库表、自由表或其他视图等11、建立视图命令: create view12、依据表的查询定义视图: create view视图文件名as <select查询语句 > 13、删除视图文件: drop view视图文件名14、视图和查询的比较相同点:可以从数据源中查找满意肯定挑选条件的记录和选定部分字段;自身不储存数据,它们的查询结果随数据源内容的变化而变化; 都可以生成 SQL语言;不同点:视图有更新条件,查询无;查询有查询去向(7 个去向),视图无; 视图可以更新,查询只能只读;视图可以更新数据源表,而查询不能;视图可以拜访远程数据,而查询不能直接拜访,需借助于远程视图方可; 视图只能数据库中存在,而查询是一个独立的文件;视图的基表只能是数据库表, 而查询可以是自由表, 一个或多个数据库表; 建立视图必需是数据库表及存在的视图,而查询只要是表都可以;第六章 表单设计与运用1、对象:客观事物的抽象(属性:对象的状态;方法:对象行为)2、类:具有相同属性和方法的对象的集合3、类的特点:层次性继承性:子类不但可以继承父类的属性和方法仍可以有自己的属性和方法封装性4、对象与类的关系:类是对象的一般化;对象是类的详细化、实例化5、创建类: create class类名例:创建一个名为 employee 的新类,储存新类的类库是 myclasslib,新类的父类是 customCreate class employee of myclasslib as custom新建类: 新类名储备于派生于6、类的使用:表单控件“查看类” -> 添加-> 点开类 -> 拖入表单7、创建表单: create form表单名运行表单: do form表单名8、表单属性:Caption : 表单标题Name:表单名称Backcolor :背景色Borderstyle:边框样式Height : 表单高度Width :表单宽度Showwindow:是否作为顶层表单9、标签属性:caption :指定标签的显示文本AutoSize :确定是否依据标题的长度来自动调整大小Alignment :指定标题控件中显示的对齐方式name :标签对象的名称,是程序中拜访标签对象的标识(label1 )backstyle :设置标签的背景是否透亮10、文本框属性:Alignment :文本框内容的对齐方式Control Source:设置文本框的数据来源Value :储存文本框的当前内容PassWordChar:设置输入口令时显示的字符,通常用 * Readonly:确定文本框是否为只读,为“ .T. ”时,文本框的值不行修改;Inputmask :指定在一个文本框中如何输入和显示数据;表6.13 书 P19511、编辑框属性:ControlSource :设置编辑框的数据源,一般为数据表的备注字段;Value:储存编辑框中的内容,可以通过该属性来拜访编辑框中的内容;Hideselection: 失去焦点时,编辑框中选定的文本是否仍显示为选定状态;默认值为.T. 不显示为选定状态Readonly :确定用户是否能修改编辑框中的内容;.f.可改Scroolbars :指定编辑框是否具有滚动条,0 无滚动条2 (默认值)时,编辑框包含垂直滚动条;SelStart: 返回用户在编辑框中所选文本的起始点位置或插入点位置SelLength :返回用户在文本输入区中所选定字符的数目; >0SelText :返回用户在编辑区内选定的文本12、复选框属性:Caption :用于指定复选框旁边的标题Alignment :指定复选框是显示在该标题的左(右)边Value:用来指明复选框的当前状态 , 如下表0 或.F.-> (默认值),未被选中(灰色)1 或.T.-> 被选中>=2 或.null.-> 不确定,只在代码中有效ControlSource :用于指定复选框的数据源(字段或内存变量)其类型可以是N或 L13、列表框属性:ColumnCount:列表框的列数ControlSource :绑定列表框的数据源;ADDItem: 向 Rowsourcetype 属性为 0 的列表添加一项RowSourceType:指定与组合框建立联系的数据源的类型Value:返回列表框中被选中的条目(C或 N) MultiSelect:指定用户能否在列表框控件内进行多重选定Rowsource:列表中显示值的来源Rowsourcetype:确定 rowsource 的类型一个值、表、 SQL、查询、数组、文件列表或字段列表List属性:用以存取列表框中数据条目的字符串数组;例如,LIST1 代表列表框中的第一行(第一个数据项);ListCount属性:列表框中数据条目的数目Selected属性:该属性是一个规律型数组,第N个数组元素代表第 N个数据项是否为选定状态14、组合框属性:ControlSource用户从列表框中挑选的值储存在何处Style指定控件的样式;0下拉组合框(默认值);15、命令按钮属性:2下拉列表框Default :.F.假如设置为 .T. ,在该按钮成为默认按钮Cancel :.F.假如设置为 .T. ,按 Esc 键引发该按钮的 Click大事Caption :设置按钮的标题Enable :确定按钮是否有效,为 .F. 时,失效Visible: 指定对象是可见仍是隐匿,为 .F. 时,隐匿16、命令组属性:Buttoncount :命令按钮组中命令按钮的数目; 2Buttons :用于存取命令按钮组中每个命令按钮的数组例: Tmandgroup1.buttons2.visible=.f.Value:返回表单运行时被单击按钮的次序号或按钮Caption 的值17、选项组属性:Name: optiongroup1 选项按钮组对象的名称 ButtonCount : 2 指定选项组中选项按钮的数目;Buttons : 0 用于存取选项组中每个选项的数组;例: thisform.optiongroup1.buttons3.caption=“三号”ControlSource 无 :指定选项组数据源; C/N Value 1 :用于指定选项组中哪个选项按钮被选中;如为 N,返回被选中按钮的次序号如为 C,返回被挑选按钮的 Caption 属性值18、表格属性:RecordSourceType 指明表格数据源的类型, RecordSource 属性指定数据的来源 0 表 1 别名 3 查询 ColumnCount: -1 指定表格的列数19、页框属性:Pagecount: 2 页框的页面数;Pages:用于存取页框对象中各个页的数组Activepage :返回页框中活动页的页号20、新建属性、方法:表单 -> 新建-> 属性/ 方法21、常用大事:大事是一种由系统预先定义而由用户或系统发出的动作;大事集是固定的,用户不能定义新的大事Load:在表单对象建立之前引发;Unload :在表单对象释放时引发;最小的大事集Init :在用户建立对象时引发;Destroy :在对象释放时引发;Error : 在发生错误时引发Click :在单击鼠标左键时引发;Rightclick:在单击鼠标右键时引发;DBclick :在双击鼠标左键时引发;GotFocus:在对象获得焦点时引发;LostFocus :在对象失去焦点时引发;InteractiveChange:在通过鼠标和键盘交互操作转变一个控件值时引发;留意: load 先于 init先控件再表单 ; destroy先于 unload假如一个表单建立一个命令按钮,先引发表单的load 大事,再引发命令按钮的 load大事,再引发控件的 init,再引发表单的 init大事;假如关闭一个含有命令按钮的表单, 先引发表单的 destroy 大事,再引发控件的 destroy大事,最终一个引发的是表单的unload 大事;方法包含在大事之中;(方法和属性均包含在实践之中)同一个大事中, load 先大后小,表单最大22、方法:定义:动作常用方法: thisform.release关闭(释放)表单Thisform.refresh刷新表单显示当前表单 隐匿当前表单23、对象的引用: thisform:当前对象所在的表单This.show This.hideThisform.text1.setfocus让文本框 1 获得焦点,使其成为活动对象This :当前对象Thisformset :当前对象所在的表单集Parent :当前对象的直接容器对象24、将修改表单及控件名的四种方法(以OK为例)mand1.caption=”OK”mand1.caption=”OK”this.caption=”OK”this.parent.caption=”OK”25、表单集:定义:由多个表单组成的表单集合,即在一个设计器中显现多个表单创建:表单 -> 表单集 -> 新建表单26、数据环境:表单空白处右击 -> 数据环境27、表单向导:表单向导一对多表单向导第七章菜单设计与应用1、菜单的分类:条形菜单、弹出菜单 典型的菜单系统由这两种组成;快捷菜单由弹出式菜单组成 2、下拉式菜单的创建:文件 -> 新建-> 菜单命令: create menu菜单名modify menu菜单名3、系统菜单: SET SYSMENU ON|OFF|AUTOMATIC|T弹O 出<式菜单名表 >|TO < 条形菜单项名表 >|TO DEFAULT|SAVE|NOSAVE各项参数及选项的说明 :ON:答应程序执行时拜访系统菜单OFF:禁止程序执行时拜访系统菜单AUTOMATIC可: 使系统菜单显示出来 , 可以拜访系统菜单TO < 弹出式菜单名表 >: 重新配置系统菜单 , 以内部名字列出可用的弹出式菜单TO < 条形菜单项名表 >: 重新配置系统菜单 , 以条形菜单内部名表列出可用的子菜单TO DEFAULT系: 统菜单复原为缺省设置SAVE:系统菜单复原为缺省设置NOSAVE将: 缺省配置复原成 VISUAL FOXPR系O 统菜单的标准配置* 不带参数的 set sysmenu to命令将屏蔽系统菜单,使系统菜单不行用;4、菜单设计器的组成:菜单名称结果(子菜单、命令、菜单项、过程)选项:为一个无符号按钮(快捷键)菜单级:菜单栏、子菜单“菜单项”命令按钮插入可在当前菜单项行之前插入一个新的菜单项行插入栏在当前菜单项行之前插入一个vf 系统菜单命令删除可删除当前菜单项行预览可预览菜单成效5、在菜单设计器环境下,系统的“显示”菜单会显现两条命令: 常规选项:设置和清理、顶层表单的复选框菜单项项:可设置子菜单的内部名称6、SET SYSMENU NO SAVE&&将缺省配置复原成 VF系统菜单的标准配置SET SYSMENU TO DEFAULT &&复原系统菜单7、为顶层表单添加菜单的方法和过程:表单对象的showwindow:28、定义的菜单文件包括两个文件: *.mnx 和*.mnt8、生成菜单程序:菜单 -> 生成 生成.mpr 的菜单程序文件 9、运行菜单程序: do菜单名.mpr (注:扩展名不行省)10、快捷菜单:在选定对象的 rightclick大事: do快捷菜单程序文件名 .mpr第八章报表设计1、报表向导:工具 -> 报表向导2、内容:一对多报表向导数据源:数据库表、自由表、视图、查询或临时表布局:定义了报表的打印格式,有列报表、行报表、一对多报表和多栏报表3、列报表:一条记录一行,应用于财务报表、销售总结行报表:一个字段一行,应用于列表、清单一对多报表: 应用于发票、会计报表多栏报表:应用于电话本、名片4、建立报表: CREATE REPORT文<件名 >创建新的报表MODIFYREPORT 文< 件名>打开一个已有的报表5、快速报表:新建 -> 报表报表-> 快速报表6、报表控件:选定对象按钮标签按钮域按钮线条按钮、矩形按钮和圆角矩形按钮图片/activex绑定控件按钮按钮锁定7、报表设计器默认包括3 个带区:页标头、细节和页脚(也可增加报表 -> 总结/ 标题带区)8、添加报表的数据环境9、添加分组:组标头和组注脚(建立索引,数据环境 -> 属性->cursor1对象,选定 order 属性挑选多重索引)10、多栏报表:文件 -> 页面设置(列标头和列注脚) 11、报表预览: report form报表文件名preview