1、全国计算机二级 Visual FoxPro 数据库程序设计知识点整理资料文件扩展名及备注文件扩展名文件 扩展名 备注扩展名 文件 扩展名 备注扩展名项目 .pjx .pjt 数据库 .dbc .dbt表 .dbf .fpt 表单 .scx .sct程序 .prg 报表 .frx 单索引 .id .idx 结构化复合索引 .cdx 菜单定义格式 .mnx 菜单程序 .mpr 查询 .qpr 视图 .vcx 第一章 数据库基础知识1、数据库管理系统 DBMS;数据库应用系统 DBAS;数据库系统 DBS;数据 DB 数据库管理员DBA;DBS 包括 DBMS 和 DB2、实体间的联系:一对一,一对
2、多,多对多3、数据库中的数据模型:网状模型、层次模型、关系模型4、关系:一个关系就是一张二维表,每个关系有一个关系名5、元组:二维表中的行称作元组6、属性:二维表中的列称作属性7、域:属性的取值范围8、关系:表 关系名:表名 属性:字段 元组:记录 行:记录,元组 列:字段,属性9、传统的集合运算:并、差、交10、专门的关系运算:选择(水平方向) for, while, where投影(垂直方向) fields ,select联接(一对一,一对多,多对多)11、定义数组:dimension/declare 数组名(3,4)VF 基础知识1、创建项目:通过菜单创建命令:Create Projec
3、t 项目名2、打开项目管理器:通过“文件”-“打开”菜单项命令:Modify Project 项目名3、各类文件选项卡:“全部”选项卡(以下五项的全部内容)“数据”选项卡(数据库、自由表、查询、视图)“文档”选项卡(表单、报表、标签)“类”选项卡“代码”选项卡“其他”选项卡第二章 数据与数据运算1、字段数据类型(11 种)*N 包括 Y、F、B、I2、变量:变量值能够随时改变的。变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成3、变量的分类:字段变量和内存变量(简单内存变量和数组)当内存变量与字段变量同名时,通过前缀 M.或 M-访问内存变量4、子串包含测试:$5、字符串精确比
4、较“=”两个字符完全相同.T.“=”set exact on | off6、常用的函数数值函数:1ABS()函数2SIGN()函数3SQRT()函数4PI()函数5INT()函数6CELING()函数7FLOOR()函数8ROUND()函数9MOD()函数10MAX()函数11MIN()函数字符函数:1LEN()函数2LOWER()函数3UPPER()函数4SPACE()函数5TRIM()函数6LTRIM()函数7ALLTRIM()函数8LEFT()函数9RIGHT()函数10SUBSTR()函数11OCCURS()函数12AT()函数13STUFF()函数14CHRTRAN()函数15Lik
5、e(,数据工作区命令: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;scatter to aa(数组名);go 3 ;scatter to bb(数组名);go 1;gather from bb;go 3;gather from bb*
6、小结:排序与索引的区别1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关键字,不需要打开表;2、排序生成一个新表,索引是针对原表生成一个指针文件3、升降序的表示与书写方式不同:排序/a 升序/d 降序/c 不区分大小写,索引 ascending和 descending。4、排序与索引的 to 的含义不同,排序的 to 表示到一个新表,索引的 to 表示建立单索引文件。5、表达式的方式不同,排序用(,)逗号,索引用(+加号)自由表与数据库表的不同:1、自由表有三个索引:候选索引、唯一索引、普通索引;2、数据库表有四个索引:主索引、候选索引、唯一索引、普通索引;3、一个数据库表
7、只能有一个主索引,可以有多个候选索引、唯一索引、普通索引;4、一个表只属于一个数据库;5、主索引和候选索引表示表记录的唯一性;6、数据库表的字段允许长度是 0128 个字符,而自由表只允许 10 个字符;7、数据库表可以设置字段的有效性规则和参照完整性,而自由表不能;8、可以将自由表添加到数据库中,也可将数据库表从数据库中移去成为自由表。*36、数据的完整性:实体完整性:主索引和候选索引,保证记录的唯一性域完整性:表示字段的有效性和取值范围参照完整性:描述表与表之间的关系参照完整性的规则:更新规则(级联、限制、忽略)删除规则(级联、限制、忽略)插入规则(限制、忽略)参照完整性是数据库文件的产物
8、,要有联接,先打开数据,在父表建立主索引,子表建立普通索引,建立连线后先清理数据库,再编辑参照完整性。37、工作区:工作区的选择:select |范围:132767 默认 0 号工作区,也是最小工作区select 0 表示选定当前还未使用的编号最小工作区第四章 SQL 语言1、SQL:structure query language2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台的操作语言,具有非常强大的查询功能,查询是它的核心。3、基本构成:select 查询什么字段 / from 数据源 / where 查询条件4、三大功能:数据查询格式:sele
9、ct 字段名/* from 表 1 inner join 表 2 on 表 1 主关键字=表 2 主关键字 where 筛选条件group by 分组 having 分组条件order by 排序函数字符型 C 双精度型 B数值型 N 整型 I(4)逻辑型 L(1) 货币型 Y(8)日期型 D(8) 备注型 M(4)时间型 T(8) 通用型 G(4)浮点(动)型 F Max() Min() Avg() Count() Sum()最大值 最小值 平均值 计数 求和值域查询:betweenand空值查询:is null / is not null模糊查询:like(like 后所指定的字段值一定是
10、个字符型数据;通配符%表示 0个或多个字符,”_”只表示一个字符)使用量词和谓词的查询:any/some/all (some 和 any 是同义词)not exists*some、any 只有子查询中有一行能使结果为真,则结果为真*all 子查询中所有记录都使结果为真,则结果为真*not exists 用来检查是否有结果返回,即存在/不存在元组集合的并运算:union 字段相同,值域相同虚字段:as 新字段名操作功能:插入:insert into 表名(字段名)values(字段值)更新:update 表名 set 字段名=表达式 where 条件式删除:delete from 表名 wher
11、e 条件定义功能:表的定义: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 tabl
12、e 表名 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
13、 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、建立查询的方法项目管
14、理器文件新建命令:create query4、查询设计器中各选项卡与 select 语句的对应关系:选项卡:字段、联接、筛选、排序依据、分组依据、杂项选择了创建查询的表或视图from 短语字段选项卡select 短语联接选项卡join on 短语筛选选项卡where 短语排序依据选项卡order by 短语分组依据选项卡group by 短语和 having 短语杂项选项卡可以指定是否要重复记录(对应于 distinct 短语)还可指定列在前面的记录(对应于 top 短语)5、查询去向:浏览、临时表、表、图形、屏幕、报表、标签6、运行查询:do 查询文件名.qpr7、查询保存在查询文件中,查询
15、文件是一个文本文件。8、查询文件(.qpr) 视图文件(.vue)9、定义:视图是一个定制的虚拟表,依赖于数据库,是从一个或多个数据库中导出的表;在视图中只存放视图的定义,不存放视图的内容;视图分为本地视图和远程视图10、数据源:数据库表、自由表或其他视图等11、建立视图命令:create view12、根据表的查询定义视图:create view 视图文件名 as 13、删除视图文件:drop view 视图文件名14、视图和查询的比较相同点:可以从数据源中查找满足一定筛选条件的记录和选定部分字段;自身不保存数据,它们的查询结果随数据源内容的变化而变化;都可以生成 SQL 语言;不同点:视图
16、有更新条件,查询无;查询有查询去向(7 个去向),视图无;视图可以更新,查询只能只读;视图可以更新数据源表,而查询不能;视图可以访问远程数据,而查询不能直接访问,需借助于远程视图方可;视图只能数据库中存在,而查询是一个独立的文件;视图的基表只能是数据库表,而查询可以是自由表,一个或多个数据库表;建立视图必须是数据库表及存在的视图,而查询只要是表都可以。第六章 表单设计与运用1、对象:客观事物的抽象(属性:对象的状态;方法:对象行为)2、类:具有相同属性和方法的对象的集合3、类的特征:层次性继承性:子类不但可以继承父类的属性和方法还可以有自己的属性和方法封装性4、对象与类的关系:类是对象的一般化
17、;对象是类的具体化、实例化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:表单宽度Sho
18、wwindow:是否作为顶层表单9、标签属性:caption:指定标签的显示文本AutoSize:确定是否根据标题的长度来自动调整大小Alignment:指定标题控件中显示的对齐方式name :标签对象的名称,是程序中访问标签对象的标识(label1)backstyle:设置标签的背景是否透明10、文本框属性:Alignment:文本框内容的对齐方式Control Source:设置文本框的数据来源Value:保存文本框的当前内容PassWordChar:设置输入口令时显示的字符,通常用*Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。Inputmask: 指定在一
19、个文本框中如何输入和显示数据。表 6.13 书 P19511、编辑框属性:ControlSource:设置编辑框的数据源,一般为数据表的备注字段。Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。Hideselection:失去焦点时,编辑框中选定的文本是否仍显示为选定状态。默认值为.T.不显示为选定状态Readonly:确定用户是否能修改编辑框中的内容。.f.可改Scroolbars:指定编辑框是否具有滚动条,0无滚动条2(默认值)时,编辑框包含垂直滚动条。SelStart: 返回用户在编辑框中所选文本的起始点位置或插入点位置 SelLength:返回用户在文本输入区中所选
20、定字符的数目。0SelText:返回用户在编辑区内选定的文本 12、复选框属性:Caption:用于指定复选框旁边的标题Alignment:指定复选框是显示在该标题的左(右)边Value:用来指明复选框的当前状态,如下表0 或.F. -(默认值),未被选中(灰色)1 或.T. -被选中=2 或.null. -不确定,只在代码中有效ControlSource:用于指定复选框的数据源(字段或内存变量)其类型可以是 N 或 L13、列表框属性:ColumnCount:列表框的列数ControlSource:绑定列表框的数据源。ADDItem:向 Rowsourcetype 属性为 0 的列表添加一项
21、RowSourceType:指定与组合框建立联系的数据源的类型Value:返回列表框中被选中的条目 (C 或 N)MultiSelect:指定用户能否在列表框控件内进行多重选定Rowsource:列表中显示值的来源Rowsourcetype:确定 rowsource 的类型一个值、表、SQL、查询、数组、文件列表或字段列表List 属性:用以存取列表框中数据条目的字符串数组。例如,LIST1代表列表框中的第一行(第一个数据项)。ListCount 属性:列表框中数据条目的数目Selected 属性:该属性是一个逻辑型数组,第 N 个数组元素代表第 N 个数据项是否为选定状态14、组合框属性:C
22、ontrolSource 用户从列表框中选择的值保存在何处Style 指定控件的样式。 0下拉组合框(默认值);2下拉列表框15、命令按钮属性:Default:.F.如果设置为.T.,在该按钮成为默认按钮Cancel:.F.如果设置为.T.,按 Esc 键引发该按钮的 Click 事件Caption:设置按钮的标题Enable:确定按钮是否有效,为.F.时,失效Visible:指定对象是可见还是隐藏,为.F.时,隐藏16、命令组属性:Buttoncount:命令按钮组中命令按钮的数目。2Buttons:用于存取命令按钮组中每个命令按钮的数组例:Tmandgroup1.buttons(2).vi
23、sible=.f.Value:返回表单运行时被单击按钮的顺序号或按钮 Caption 的值17、选项组属性:Name: optiongroup1 选项按钮组对象的名称ButtonCount: 2 指定选项组中选项按钮的数目。Buttons: 0 用于存取选项组中每个选项的数组。例:thisform.optiongroup1.buttons(3).caption=“三号”ControlSource 无 :指定选项组数据源。C/NValue 1 :用于指定选项组中哪个选项按钮被选中。若为 N,返回被选中按钮的顺序号若为 C,返回被选择按钮的 Caption 属性值18、表格属性:RecordSou
24、rceType 指明表格数据源的类型,RecordSource 属性指定数据的来源 0 表 1 别名 3 查询ColumnCount: -1 指定表格的列数19、页框属性:Pagecount: 2 页框的页面数。Pages:用于存取页框对象中各个页的数组Activepage:返回页框中活动页的页号20、新建属性、方法:表单-新建-属性/方法21、常用事件:事件是一种由系统预先定义而由用户或系统发出的动作;事件集是固定的,用户不能定义新的事件Load:在表单对象建立之前引发。Unload:在表单对象释放时引发。最小的事件集Init:在用户建立对象时引发。Destroy:在对象释放时引发。Erro
25、r:在发生错误时引发Click:在单击鼠标左键时引发。Rightclick:在单击鼠标右键时引发。DBclick:在双击鼠标左键时引发。GotFocus:在对象获得焦点时引发。LostFocus:在对象失去焦点时引发。InteractiveChange:在通过鼠标和键盘交互操作改变一个控件值时引发。注意:load 先于 init(先控件再表单);destroy 先于 unload如果一个表单建立一个命令按钮,先引发表单的 load 事件,再引发命令按钮的 load事件,再引发控件的 init,再引发表单的 init 事件。如果关闭一个含有命令按钮的表单,先引发表单的 destroy 事件,再引
26、发控件的destroy 事件,最后一个引发的是表单的 unload 事件。方法包含在事件之中。(方法和属性均包含在实践之中)同一个事件中,load 先大后小,表单最大22、方法:定义:动作常用方法:thisform.release 关闭(释放)表单Thisform.refresh 刷新表单This.show 显示当前表单This.hide 隐藏当前表单Thisform.text1.setfocus 让文本框 1 获得焦点,使其成为活动对象23、对象的引用:thisform:当前对象所在的表单This:当前对象Thisformset:当前对象所在的表单集Parent:当前对象的直接容器对象24、
27、将修改表单及控件名的四种方法(以 OK 为例)mand1.caption=”OK”mand1.caption=”OK”this.caption=”OK”this.parent.caption=”OK”25、表单集:定义:由多个表单组成的表单集合,即在一个设计器中出现多个表单创建:表单-表单集-新建表单26、数据环境:表单空白处右击-数据环境27、表单向导:表单向导一对多表单向导第七章 菜单设计与应用1、菜单的分类:条形菜单、弹出菜单典型的菜单系统由这两种组成;快捷菜单由弹出式菜单组成2、下拉式菜单的创建:文件-新建-菜单命令:create menu 菜单名modify menu 菜单名3、系统
28、菜单:SET SYSMENU ON|OFF|AUTOMATIC|TO |TO |TO DEFAULT|SAVE|NOSAVE各项参数及选项的说明:ON:允许程序执行时访问系统菜单OFF:禁止程序执行时访问系统菜单AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单 TO :重新配置系统菜单,以内部名字列出可用的弹出式菜单TO :重新配置系统菜单,以条形菜单内部名表列出可用的子菜单TO DEFAULT:系统菜单恢复为缺省设置SAVE:系统菜单恢复为缺省设置NOSAVE:将缺省配置恢复成 VISUAL FOXPRO 系统菜单的标准配置*不带参数的 set sysmenu to 命令将屏蔽系统
29、菜单,使系统菜单不可用。4、菜单设计器的组成:菜单名称结果(子菜单、命令、菜单项、过程)选项:为一个无符号按钮(快捷键)菜单级:菜单栏、子菜单“菜单项”命令按钮插入可在当前菜单项行之前插入一个新的菜单项行插入栏在当前菜单项行之前插入一个 vf 系统菜单命令删除可删除当前菜单项行预览可预览菜单效果5、在菜单设计器环境下,系统的“显示”菜单会出现两条命令:常规选项:设置和清理、顶层表单的复选框菜单选项:可设置子菜单的内部名称6、SET SYSMENU NO SAVE &将缺省配置恢复成 VF 系统菜单的标准配置SET SYSMENU TO DEFAULT &恢复系统菜单7、为顶层表单添加菜单的方法
30、和过程:表单对象的 showwindow:28、定义的菜单文件包括两个文件:*.mnx 和*.mnt8、生成菜单程序:菜单-生成(生成.mpr 的菜单程序文件)9、运行菜单程序:do 菜单名.mpr(注:扩展名不可省)10、快捷菜单:在选定对象的 rightclick 事件:do 快捷菜单程序文件名.mpr第八章 报表设计1、报表向导:工具-报表向导一对多报表向导2、内容:数据源:数据库表、自由表、视图、查询或临时表布局:定义了报表的打印格式,有列报表、行报表、一对多报表和多栏报表3、列报表:一条记录一行,应用于财务报表、销售总结行报表:一个字段一行,应用于列表、清单一对多报表: 应用于发票、
31、会计报表多栏报表:应用于电话本、名片4、建立报表:CREATE REPORT 创建新的报表MODIFY REPORT 打开一个已有的报表5、快速报表:新建-报表 报表-快速报表6、报表控件:选定对象按钮标签按钮域按钮线条按钮、矩形按钮和圆角矩形按钮图片/activex 绑定控件按钮按钮锁定7、报表设计器默认包括 3 个带区:页标头、细节和页脚(也可增加报表-总结/标题带区)8、添加报表的数据环境9、添加分组:组标头和组注脚(建立索引,数据环境-属性-cursor1 对象,选定 order 属性选择多重索引)10、多栏报表:文件-页面设置(列标头和列注脚)11、报表预览:report form 报表文件名 preview