740 likes | 929 Views
VFP 二级考前强化指导. 主讲: 李 慧. 题型构成. 笔试 60 分 基础知识的单项选择题 20 分 VFP 知识的单项选择题 10 分 VFP 知识的填空题 30 分 上机 40 分. 上机 40 分 一、项目、表、数据库的基本操作 12 分 二、设计查询 8 分 三、设计菜单 5 分 四、设计表单 10 分 五、程序改错 5 分. 课时安排. 第一讲 项目管理器与数据库的操作 第二讲 查询设计与 SQL 命令 第三讲 程序设计 第四讲 表单设计( 2 次) 第五讲 菜单设计.
E N D
VFP二级考前强化指导 主讲: 李 慧
题型构成 • 笔试60分 • 基础知识的单项选择题20分 • VFP知识的单项选择题10分 • VFP知识的填空题30分 • 上机40分
上机40分 • 一、项目、表、数据库的基本操作 12分 • 二、设计查询 8分 • 三、设计菜单 5分 • 四、设计表单 10分 • 五、程序改错 5分
课时安排 • 第一讲 项目管理器与数据库的操作 • 第二讲 查询设计与SQL命令 • 第三讲 程序设计 • 第四讲 表单设计(2次) • 第五讲 菜单设计
比例分析 • 选择题:5/10 • 填空题: 直接考题:5/20 间接考题:10/20 (SQL语句/命令操作)
本章要点 • Visual FoxPro数据库的基本概念以及对数据库的基本操作 • 建立数据库表,数据库表中的字段属性,对数据库表的操作 • 对数据库表中的记录进行基本操作 • 索引的概念、种类、如何建立索引、索引文件的种类 • 实体完整性、域完整性、建立参照完整性 • 建立自由表、数据库表与自由表的关系
本章要点(续) • 多个表同时使用 • 如何建立排序
4.1.1基本概念 • 1.数据库 • 定义: • 数据库是一个逻辑上的概念和手段,通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。 • 在Visual FoxPro应该把dbf的数据库文件称作数据库表,简称表,而不再称作数据库或数据库文件。 • 建立数据库后,用户可以在磁盘上看到文件名相同,但扩展名分别为dbc、dct和dcx的三个文件。
4.1.2 建立数据库 • 1.常用方法 • 使用项目管理器中建立数据库 • 使用“新建”对话框建立数据库 • 使用命令方式建立数据库 • 命令格式: • CREATE DATABASE • 数据库文件扩展名.dbc可以缺省,由系统默认。 • 如果不指定数据库名称或使用问号都会弹出创建对话框请用户输入数据库名称。
4.1.3 打开数据库 • 1.常用方法 • 在“项目管理器”中打开数据库 • 通过“打开”对话框打开数据库 • 使用命令方式打开数据库 • 命令格式: • OPEN DATABASE
4.1.4添加数据库 • 1.方法 • 在项目管理器中单击“数据”选项,然后单击“添加”按钮,选择所需的数据库后,单击“确定”按钮,可以看到在项目管理器的数据项下多了一个所添加的数据库。
4.1.5修改数据库 • 1.打开数据库设计器 • 常用方式: • 从项目管理器中打开数据库设计器 • 用“打开”对话框打开数据库设计器 • 选择“文件”菜单中的“打开”命令调出对话框,选择数据库名,单击“确定”即可打开数据库设计器。 • 使用命令方式打开数据库设计器 • 命令格式: • MODIFY DATABASE • 2.在数据库设计器中修改设计器
4.1.6删除数据库 • 1.常用方法 • 使用项目管理器删除数据库 • 使用命令方式删除数据库 • 命令格式: • DELETE DATABASE • DELETETABLES用于在删除数据库的同时从磁盘上删除该数据库所含的表等。
4.1.7关闭数据库 • 1.常用方法 • 直接单击数据库设计器右上角的“关闭”按钮或者关闭数据库窗口,关闭数据库。 • CLOSE DATABASES[ALL]命令:其中ALL用于关闭所有打开的数据库以及数据库中的表、自由表、索引等。
4.2.1 在数据库中建立表 • 1.建立数据库表 • 方法: • 使用项目管理器建立数据库表 • 使用“新建”或CREATE命令建立数据库 • 新建立的表处于打开状态,此时可以直接进行录入及修改表结构等操作。 • 如果以后再对表进行操作,应先使用USE命令打开表
4.2.2 数据库表的字段属性(重点) • 1.字段显示属性 • 字段名规则 • 字段名是字段的惟一标志,由1~128个非空字符组成(自由表字段名长度不能超过10个字符。 • 自由表字段名最长为10个字符。 • 数据库表字段名最长为128个字符。 • 字段名必须以字母或汉字开头。 • 字段名可以由字母、汉字、数字和下划线组成。 • 字段名中不能包含空格。
字段类型 表4.1 Visual FoxPro字段类型
设置字段的显示格式 • ---含义:指定该字段在浏览窗口中显示时的大小写、字体和样式等。 • A:只允许字母和汉字,不允许空格或标点符号。 • D:使用当前的SET DATE格式。 • E:以英国日期格式编辑日期型数据。 • K:当光标移动到文本框上时,选定整个文本框。 • L:在文本框中显示当前导零,而不是空格符号。 • M:允许多个预设置的选择项。 • R:显示文本框的格式掩码,掩码字符并不存储在控制源中。 • T:删除输入字段前导空格和结尾空格。 • !:把小写字母转换为大写字母。 • $:显示货币符号,用于数值型数据或货币型数据。 • ^:使用科学记数法显示数值型数据,只用于数值型数据。
设置输入掩码 • ----含义:指定字段中输入数值的格式。 • X:可以输入任何字符。 • 9:可以输入数字和正负符号。 • #:可以输入数字、空格和正负符号。 • $:在固定位置上显示货币符号。 • *:在值的左侧显示星号。 • .:点分隔符指定数值的小数点位置。 • ,:用逗号分隔小数点左边的整数部分。 • $$:在微调控制或文本框中,货币符号显示时不与数字分开。
2.设置字段的有效性 • 设置字段的有效性规则和消息 • 在创建数据库表时,应该考虑输入的数据能否有一个规则来判断是否符合实际要求。 • 如果输入的数据通过字段规则的验证,则用户可以继续输入数据,否则将产生警告信息,要求用户重新输入。 • 设置字段的默认值 • 字段默认值是指在向数据表中添加新的记录时,该字段可以是预先准备好的数值或字符串,不需输入。 • 默认值可以是除了通用型以外的任何数据类型,如果该字段允许使用空值,则可以设置该字段的默认值为.NULL。
3.设置记录的有效性规则 • 设置字段的有效性规则和消息 • 记录有效性规则属于表的有效性规则,它可以控制用户输入到记录中的信息类型。 • 例:设置gz表的记录有效性规则:如果jbgz小于1000元,grsds的值为0,否则为jbgz的6%(该规则对表中已有的数据不做验证):设置gz表的记录有效性信息:个人所得税按基本工次的6%收取。 Grsds=IIF(jbgz<1000,0,0.06*jbgz)
4.表的触发器(难点) • 定义: • 触发器是在一个插入、更新或删除操作之后运行的记录级事件代码。默认情况下,即触发器中无任何规则时,可以对数据表进行自由插入、更新和删除 操作。触发器的返回结果为.T.时,允许相应的操作。 • 种类: • 插入触发器 • 每次向表中插入或追加新记录时要验证的规则。如果插入的记录不满足规则要求,系统会提示“触发器失败”。
更新触发器 • 每次向表中修改记录时触发该规则。 • 删除触发器 • 每次向表中删除记录时触发该规则。 • 触发器的返回值为.T.或.F.。如果为.T.,则允许执行相应的操作(插入记录、更新记录、删除记录),否则不允许执行相应的操作。 例1:设置xs表的插入触发器:只有学号开头两位 是”00”至”03”的记录允许插入,否则不允许插入。 例2:设置xs表的插入触发器:班级编号(bjbh)字段 值不能为空字符串和NULL值。 Between(LEFT(xh,2),”00”,”03”) Bjbh<>”” .AND. Bjbh<>.NULL.
5.使用长表名和注释 • 设置数据库表的长表名,可以在数据库的“表设计器”对话框中的“表”选项卡中的“表名”文本框中输入长表名。 • VFP的数据库表支持长表名,最大长度为128个字符。 • 表注释是表的说明信息。当表的文件名和长表名都不能完全说明表的含义时,可以设置表的注释。
4.2.3 数据库表的操作 • 1.添加数据表 • 一个数据库中可以包括一个或多个相关联的数据表。 • 可以向数据库中加入任何已经建立的表,但这个表不能属于其他的数据库,因为同一个表在同一时间只能属于一个数据库。 • 如果要把其他数据库中的表加入到一个新的数据库中,可以先把要加入的表从原来的数据库中移出。 • 2.删除数据表 • 数据库删除数据表,和添加数据表的操作方法类似。
4.2.4 修改表结构 • 1.方法: • 在“项目管理器”中修改表结构 • 在“数据库设计器”中修改表结构 • 使用命令修改表结构 • 如果当前不在数据库设计器中,则首先要用USE命令打开要修改的表,然后使用命令方式MODIFY STRUCTURE打开表设计器。
4.3.1 使用浏览器操作 • 1.打开浏览器 • 方法: • 在项目管理器中将数据库展开至表,并且选择要操作的表,然后单击“浏览”命令按钮即可。 • 在数据库设计器中选择要操作的表,然后从“数据库”菜单中选择“浏览”,或者对要操作的表单击鼠标右键,然后从快捷菜单中选择“浏览”。 • 在命令窗口中,用USE命令打开要操作的表,然后输入BROWSE命令来浏览表。
2.浏览操作 • 下一记录:下箭头键 • 前一记录:上箭头键 • 下一页:PageDown键 • 前一页:PageUp键 • 下一字段:Tab键 • 前一字段:Shift+Tab键 • 可用鼠标上、下、左、右滚动翻页和定位记录
4.3.2 增加记录的命令 • 1.APPEND命令 • 定义: • APPEND命令是在表的尾部增加一个或多个新记录。 • 2.INSERT命令 • 定义: • INSERT命令可以在表的任意位置插入新的记录。
4.3.3 删除记录的命令 • 1.逻辑删除 • 命令格式: • DELETE [FOR<逻辑表达式>] • 2.恢复记录的命令 • 命令格式: • RECALL [FOR<逻辑表达式>] • 3.物理删除有删除标记的记录 • 命令格式: • PACK [MEMO][DBF]
4.物理删除表中的全部记录 • 命令: • ZAP • 物理删除表中的全部记录,不管是否有删除标记。 • 该命令只是删除全部记录,并不删除表,执行完该命令后表结构依然存在。
4.3.4 修改记录的命令 • 1.EDIT或CHANGE命令交互修改 • 这两个命令均用于交互式地对当前表记录进行编辑、修改,操作界面类似于APPEND界面。 • 2.REPLACE命令直接修改 • 使用REPLACE命令直接用指定表达式或值来修改记录。
如何根据条件个性数据库表中的大量记录(重点)如何根据条件个性数据库表中的大量记录(重点) • 法一:利用表菜单中的“替换字段”对话框进行可视化操作 • 例:在成绩表中,从当前记录开始至向后20条记录,对课程号(kch)是“S02”的记录,要求将其中成绩(cj)低于60分的记录全部加10分 • 法二:命令格式 • UPDATE表名 SET字段名1=修改值1.. WHERE条件1… • REPLACE 范围 字段名 WITH 修改值 FOR条件1 AND 条件2..
例1:调整工资表(gz)中所有讲师的综合津贴(zhjt),要求1996年以前参加工作的讲师每人为280,其余的讲师为150。例1:调整工资表(gz)中所有讲师的综合津贴(zhjt),要求1996年以前参加工作的讲师每人为280,其余的讲师为150。 • 例2:修改学生表(xs)中所有记录的xh字段值 ,将班级编号(bjbh)中的第2至4位插入到学号中的第4与第5位之间。
4.3.5 显示记录命令 • 1. LIST/DISPLAY命令 • LIST的默认范围是所有记录。 • 信息充满Visual FoxPro主窗口或用户自定义窗口以后,LIST不给提示,继续显示。 • 当SET DELETED为ON时, LIST不显示带删除标记的记录。 • 命令格式: • LIST/DISPLAY [[FIELDS] Fiedlist] [FOR lExpression1] [OFF] • [TO PRINTER [PROMPT] | TO FILE FileName]
4.3.6 查询定位命令 • 1.用GO、GOTO命令直接定位 • 2.SKIP命令 • 定义: • 将记录指针向前或向后相对移动若干条记录。相对定位与当前记录有关,它是把记录指针从当前位置相对移动。 • 3.用LOCATE命令定位 • 定义: • LOCATE是按条件定位记录位置的命令。
4.4.1 索引的概念 • 1.定义: • VFP索引是指由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。 • 2.索引名(索引标识) 即索引关键字的名称,必须以下划线,字母或汉字开头,且不可超过10个字。 • 3.索引类型: • 有4种类型:主索引(仅适用于数据库表)、候选索引、唯一索引、普通索引(默认值) 注:只能把表中一个索引设置为“主索引”,其他类型的索引 可以有多个
主索引 • 定义: • 主索引是一种设定为主关键字的索引,其内容在一个表中具有唯一性,不允许出现重复值。 • 它强调的“不允许出现重复值”是指建立主索引的字段值不允许重复。 • 如果在任何已含有的重复数据的字段中建立主索引,VFP将产生错误信息,如果一定要在这样的字段上建立主索引,则必须首先删除重复的字段值。 • 注意:主索引不等于主控索引 记录按主控索引的顺序显示,设置方法: SET ORDER TO 索引名
候选索引 • 定义: • 候选索引和主索引一样,要求字段值的唯一性,并且决定了处理记录的顺序。 • 建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。 • 唯一索引 • 定义: • 唯一索引的“唯一性”是指允许表中索引项的唯一,而不是字段值的唯一 。 • 在数据库表和自由表中均可为一个表建立多个唯一索引。
普通索引 • 定义: • 普通索引可以决定记录的处理顺序,它不仅允许字段中出现重复值,并且也允许索引项中出现重复值。 • 在数据库表和自由表中均可为一个表建立多个普通索引 • 总结 • 主索引:字段不能重复,一个数据库表设一个 • 候选索引:字段不能重复,一个表可设多个 • 唯一索引:字段可以重复,索引项不重复 • 普通索引:字段可以重复,索引项可以重复
4.4.2 在表设计器中建立索引 • 1.单项索引 • 2.复合字段索引 • 定义:在多个字段上的索引称做复合字段索引。 • 注意:不同类型字段构成一个表达式时,必须转成统一的数据数据类型。 • 例:在表kc表中创建一个普通索引ksskcdh,要求先按kss字段排序,kss相同的再按kcdh字段排序。 STR(KSS,2)+kcdh
2.索引文件的种类 • 非结构单索引文件:只包含一种索引(.idx) • 非结构复合索引文件:包含多个索引,一个表可建多个非结构复合索引文件(.cdx) • 结构复合索引文件:包含多个索引,一个表只能建立一个结构复合索引文体。
4.4.3 利用命令窗口方式建立索引 • 1.命令: • INDEX ON eExpression TO IDXFileName|TAG TagName [OF CDXFileName][FOR lExpresssion][COMPACT][ASCENDING |DESCENDING][UNIQUE|CANDIDATE][ADDITIVE] • 2.说明: • ASCENDING | DESCENDING表示建立升序或降序索引,默认为升序。 • UNIQUE表示建立唯一索引。 • ADDITIVE与建立索引本身无关,表示现在建立索引时是否关闭以前的索引,默认是关闭已经使用的索引。 如:创建一个名为“排名”的索引文件,该索引文件以“政治”字段的分数显 示和处理记录: INDEX ON 政治 TO 排名
4.4.4 使用索引 • 1.打开索引文件 • 命令格式: • SET INDEX TO • 2.设置当前索引 • 命令格式: • SET ORDER TO • 注意:与表名相同的结构索引文件在打开表时能自动打开,但非结构索引文件不能。
4.删除索引 • 格式1: • DELETE TAG TagName1[OF CDXFileName1],[TagName2[OFCDXFileName2]]… • 格式2: • DELETE TAG ALL [OF CDXFileName] • 说明: • TagName1[OF CDXFileName1] 指定要从复合索引文件中删除的标识。 • ALL [OF CDXFileName] 指定从复合索引文件中删除所有标识。