VFP语言第四章(2011.3)
VFP 第四章 程序设计01
13
单向分支(if...endif) 单向分支
• 根据一逻辑表达式的值,有条件的执行一组命令。 根据一逻辑表达式的值,有条件的执行一组命令。 语法: 语法: IF 逻辑表达式 程序组1 程序组1 ENDIF
• 逻辑表达式代表一逻辑值,如果这逻辑值为真,系统执 逻辑表达式代表一逻辑值,如果这逻辑值为真, 行程序组1 否则直接执行endif后面的语句。 endif后面的语句 行程序组1,否则直接执行endif后面的语句。
5
程序文件中的几个专用命令
• 一、程序结尾的专用命令
1、程序末尾可以放一条RETURN命令,能使程序执行结束,并返 程序末尾可以放一条RETURN命令,能使程序执行结束, RETURN命令 回到调用它的上一级程序继续执行,若没有上一级程序, 回到调用它的上一级程序继续执行,若没有上一级程序,则 返回命令窗口。RETURN命令一般允许缺省 命令一般允许缺省。 返回命令窗口。RETURN命令一般允许缺省。 2、CANCEL命令,使程序运行终止,清除私有变量,并返回到命 CANCEL命令,使程序运行终止,清除私有变量, 命令 令窗口。 令窗口。 3、QUIT命令,退出VFP系统,该命令与文件菜单的退出命令功能 QUIT命令,退出VFP系统, 命令 VFP系统 相同,使用该命令正常退出, 相同,使用该命令正常退出,不会出现数据丢失或打开的文 件被破坏等情况,还会自动删除一些临时文件, 件被破坏等情况,还会自动删除一些临时文件,程序终止运 行后将返回到WINDOWS WINDOWS。 行后将返回到WINDOWS。
12
2、条件分支结构 、
• 分支结构是在程序执行时,根据不同的条件,选择执行 分支结构是在程序执行时,根据不同的条件, 不同的程序语句,用来解决有选择、有转移的问题。 不同的程序语句,用来解决有选择、有转移的问题。分 支结构形式有以下三种: 支结构形式有以下三种: • 单向分支(if...endif) 单向分支(if...endif) • 双向分支(if...else…endif) endif) 双向分支(if...else endif • 多向分支(do case...endcase) 多向分支( case...endcase)
vfp第四章
31
2013年春
VFP程序设计
(3)删除关系
32
2013年春
VFP程序设计
(4)编辑关系
在“编辑关系”对话框中有两个下拉列表,分别列 出了两个表的索引,可以在其中选择合适的索引, Visual FoxPro会自动判断索引的类型,建立“一 对一”或“一对多”的关系。其中,在父表的下拉 列表中,仅列出主索引和候选索引;而在子表的下 拉列表中,则会列出各种索引。
信息:指定出错提示信息。 eg.规则是:left(学号,2)=“89”and year(入学年 月)=1989 信息是:“不是89级学生”
24
2013年春
VFP程序设计
触发器:指定规则
插入触发器:指定插入记录时触发该规则, 看是否满足,如不满足,则提示触发器失败信 息框。如,在插入触发器中输入: eg.年龄>10 and 年龄<=50 表示向表中插入或追加记录时,如果输入的年 龄不在指定范围内,则当光标离开该记录时会 显示触发器失败信息框.
(2)信息:当输入的数据违反有效性规则时,显示的 错误提示信息。 如:性别字段要求只能输入“男或女”,如何设 置规则 注意双引号的使用
22
2013年春
VFP程序设计
(3)默认值:可以节省数据输入人员每次都必须重新 键入的时间。要设置字段的默认值,请先选定字段, 然后将光标移至“默认值”文本输入框中,直接键入 默认值。
14
2013年春
VFP程序设计
1、显示设置
显示设置用于指定输入和显示字段的格式。选中相 应字段后,就可以设置该字段的显示格式了。注意这里 设置的并不是数据存储在磁盘上的格式。 显示设置包括“格式”、“输入掩码”和“标题” 三项字段属性。
计算机vfp教程第4章 数据表基本操作PPT课件
3.关闭数据表命令
格式1:CLOSE DATABASES 格式2:CLOSE ALL 格式3:CLEAR ALL 格式4:QUIT
Page 10
4.显示表结构命令 格式1:LIST STRUCTURE 格式2:DISPLAY STRUCTURE
Page 11
5.修改表结构命令 格式:MODIFY STRUCTURE 功能:打开“表设计器”窗口,显示并修 改当前数据表的结构。
Page 20
4.2.5 删除记录命令
1.逻辑删除记录命令
格式: DELETE [<范围>] [FOR<条件>] [WHILE <条件>]
功能:对指定范围内满足条件的记录打上 删除标志。
Page 21
2.去除删除标志命令
格式: RECALL [<范围>] [FOR<条件>] [WHILE <条件>] 功能:去除指定范围内满足条件的记录已 有的删除标志。
[WHILE <条件>] [FIELDS <字段表>] 格式2:CHANGE [<范围>] [FOR <条件>]
[WHILE <条件>] [FIELDS <字段表>] 功能:弹出编辑窗口对记录进行修改。
Page 25
2.浏览修改命令
格式:BROWSE [FIELDS <字段表 >][LOCK<expN>] [FREEZE <字段名>] 功能:以浏览窗口方式显示当前数据表数 据并供用户进行修改。
2.记录指针的相对移动
格式:SKIP [<expN>] 功能:相对于当前记录,记录指针向上或 向下移动若干条记录。 说明:当<expN>的值为正数时,向下移动 <expN>条记录;当<expN>的值负数时, 向上移动<expN>条记录;缺省<expN>时, 默认向下移动一条记录。
VFP4
4、库表的约束机制及其激活时机
库表的字段级、记录级规则及触发器, 库表的字段级、记录级规则及触发器,为 数据的输入和修改实施了约束 。 约束机制分类: 约束机制分类: 分类
字段级: 字段级: NULL值、字段有效性规则 值 记录级:候选 主索引 主索引、 记录级:候选/主索引、记录有效性规则 表级 : 触发器
2、表记录的验证规则 、
校验多个字段之间的关系是否满足某种规则。 校验多个字段之间的关系是否满足某种规则。 它是一个逻辑表达式, 记录值改变时被激活。 时被激活 它是一个逻辑表达式,在记录值改变时被激活。 例:要求JS表中教师20岁才能工作。 要求JS表中教师20岁才能工作。 JS表中教师20岁才能工作
5. 改进设计
4.3 创建数据库
数据库的创建
.DBC、备注文件.DCT .DCT、 扩展名:库文件 .DBC、备注文件.DCT、索引 .DCX 扩展名:
命令: 命令:
CREATE DATABASE 数据库名
数据库的组成
1、数据库表 、 库与表之间的双向链接(前链 后链) 前链、 ⑴ 库与表之间的双向链接 前链、后链 在数据库中添加、 ⑵ 在数据库中添加、新建和移去表 ⑶ 更新表和数据库之间的链接 FREE TABLE 表名 删除后链
2、为sjk中的 表添加编辑说明:专业代码表 中的zy表添加编辑说明 、 中的 表添加编辑说明: 3、向zy表添加一条记录: 、 表添加一条记录: 表添加一条记录 zydh:112004,zymc:日语,xz: 4 : , :日语, : 4、设置 与xs表之间的参照完整性:更新级联 表之间的参照完整性: 、设置zy与 表之间的参照完整性 5、为自由表 计算个人所得税:yfgz小于等 计算个人所得税: 、为自由表gzc计算个人所得税 小于等 不交税; 大于1000的部分,税率 的部分, 于1000不交税;yfgz大于 不交税 大于 的部分 10%。请计算 表中所有教授的 表中所有教授的grsds字段的 。请计算gzc表中所有教授的 字段的 值。
vfp第四章
数据表的建立
目 录
(二)定义表结构
定义表结构就是定义各个字段的属性。 字段的属性
上一页
下一页 退 出
1 字段名 Field_name
2 字段类型 Field_type
3 字段宽度 Field_len
4 小数位数 Field_dec
执行命令: <表文件名> EXCLUSIVE USE
数据表的打开与关闭
目 录
(二)关闭表的一些方法
上一页
下一页 退 出
命令 CLEAR ALL CLOSE ALL CLOSE DATA
功
能
关闭表,选择工作区1,释放内存,但保留系统变量 关闭数据库和表,选择工作区1,关闭设计器 关闭数据库。无库打开则关闭自由表,选择工作区1
上一页
下一页 退 出
字段类型和宽度
目 录
1、字符型 (0~254个字符)
--------C
上一页
下一页 退 出
字符型数据(Character)是由汉字和ASCII字 符集中可打印字符(英文字符、数字字符、空格及 其他专用字符)组成,长度范围是0~254个字符.
2、数值型 (<=20位 ,8byte) -------N
6、货币型(Y型) ( 15.4 , 8byte) --------- Y 小数固定4位,可表示货币范围922337203685477.5807~+922337203685477.5807
7、日期型 (8byte) --------- D ( Date ) 是 是 用 于 表 示 日 期 的 数 据 , 用 默 认 格 式 {mm/dd/yyyy}来表示。长度固定为8位。 8、日期时间型 (8byte) ---------T (Date Time)是描述日期和时间的数据。 其默认格式为{mm/dd/yyyy hh:mm:ss}。 其中hh代表小时, mm代表分钟,ss代表秒,长度固定 为8位。
VFP电子教案第四章
第4章创建数据库和表4.1.1基本概念1、早期版本的FoxPro 6.0中,建立的都是扩展名为.DBF 的文件,它们是彼此孤立的,无完整的数据库和管理概念,直到VFP中才将扩展名为.DBF的数据库文件组织在一起管理。
2、Visual FoxPro中的数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理.3、VFP中,创建数据库(.DBC)的同时,会同时创建扩展名为.DCT(数据库备注)的文件和扩展名为.DCX(数据库索引)文件。
4.1.2 创建数据库Visual FoxPro中,创建数据库的三种方式:1、使用“项目管理器”创建数据库,此时数据库属于本项目.2、使用“文件”菜单中的“新建”命令创建数据库,此时创建的数据库不属于任何项目。
•3、使用Creeate Database命令创建数据库命令格式:Create Database [DatabaseName | ?] Create Database cc•功能:用于在命令窗口或程序中直接创建一个数据库。
命令说明(1)DatabaseName参数用于指定要创建的数据库名称。
(2)?参数用于在执行该命令时打开“创建”对话框以输入要创建的数据库名称。
说明:(1)与前两种方式创建数据库不同,使用用命令建立数据库时并不打开数据库设计器,只是使数据库处于打开状态,要打开数据库设计器,还需使用命令Modify DATABASE来打开。
(2)使用上述三种方式建立新的数据库时,若先前已建立了同名的数据库,则可能会产生覆盖,此时是否会产生覆盖,由命令SET Safety On|Off决定。
4.1.3 使用数据库对于一个已创建好的数据库,若要使用它,应首先将其打开。
使用完毕以后,应将其关闭。
1、打开数据库(1)在项目管理器中打开数据库,即选中该数据库即打开(2)通过”打开”对话框打开数据库(3)命令格式Open DataBase [DatebaseName | ?] [EXCLUSIVE | SHARED] [NOUPDATE] [V ALIDATE]功能:用于在命令窗口或程序中打开指定的数据库。
vfp各章知识点汇总
a第一章数据库基础理论一、信息、数据和数据处理信息是有用的数据;数据是信息的表现形式,数据是信息的载体二、数据模型有三种:层次模型、网状模型、关系模型Visual FoxPro 6.0是关系型数据模型三、关系模型关系其实就是一张二维表,由字段、记录,和数据项组成,表中的每一行称为记录或元组,表中每一列称为字段或属性,表中每一项称为数据项或分量。
四、数据库:是数据库系统的核心和管理对象五、数据库系统由四部组成:硬件系统、系统软件(操作系统、数据库管理系统)、数据库应用系统和各类人员三级模式:外模式、概念模式和内模式六、数据库管理系统(DBMS):由三部分组成:数据描述语言DDL、数据操纵语言DML、数据库管理例行程序。
二、关系数据库1、一个关系数据库由若干个数据表组成,数据表由若干个记录组成,而每一个记录是由若干个以字段属性加以分类的数据项组成。
(即数据项→记录→数据表)2、表间关联关系的类型:一对一关系、一对多关系、多对一关系3、关系完整性:是指关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,保证数据的正确性、有效性和相容性关系的完整性包括:域完整性、实体完整性、参照完整性。
其中域完整性是指:包括字段的值、类型、有效规则实体完整性是指:对关系中的记录值是唯一的。
参照完整性是指:在数据库设计时要进行参照完整性。
建立关联表间数据的参照性。
4、关系运算:选择运算:是指从关系中选择某些满足条件的记录组成的一个关系投影运算:是指从关系中选择某些字段值组成的一个关系连接运算:是将两个或多个关系通过连接条件组成一个新的关系第三章基础知识一、数据类型:(其中所提到的字符个数,一个汉字用两个字符来表示,所有的标点符号应在英文状态下输入)有六种基本数据类型:1、字符型:由“”、‘’和[]三种作为字符型数据的定界符。
且数据长度不能超过254个字符2、数值型:包括数值型、浮点型、货币型、双精度型、整型其中数值型是最常用的数据类型,是由数字(0~9)、小数点和正负号组成,最大长度不能超过20个字符 (包括十、—号和小数点)。
VFP第四章
4.2 Visual Fox 8.0 的安装与启动
4.2.2 安装
4.2.2 安装
1.直接启动 直接启动CD-ROM 直接启动 系统光盘插入到CD-ROM驱动器中,自 驱动器中, 将Visual FoxPro 系统光盘插入到 驱动器中 动运行安装程序,然后选择系统提供的安装方式, 动运行安装程序,然后选择系统提供的安装方式,按步骤选择 相应的选项,完成安装过程。 相应的选项,完成安装过程。 2.直接运行安装程序 直接运行安装程序 在Windows的“开始”菜单下,选择“运行”选项;在 的 开始”菜单下,选择“运行”选项; “运行”窗口键入安装程序名,运行安装程序。 运行”窗口键入安装程序名,运行安装程序。 3.使用 使用Windows安装 使用 安装 在Windows的“开始”菜单下,选择“设置”选项,再 的 开始”菜单下,选择“设置”选项, 选择“控制面板” 选择“控制面板”;在“控制面板”窗口,双击“添加/删除程 控制面板”窗口,双击“添加 删除程 删除程序属性” 安装”按钮; 序”图标,再在“添加/删除程序属性”窗口,按“安装”按钮; 图标,再在“添加 删除程序属性 窗口, 最后, 最后,在“从运行安装程序,按步骤选择相应的选项,完成安 从运行安装程序,按步骤选择相应的选项, 装过程。 装过程。
系统提供的常用生成器如下: 系统提供的常用生成器如下: (1)自动格式生成器 ) (2)组合框生成器 ) (3)命令按钮组生成器 ) (4)编辑框生成器 ) (5)表达式生成器 ) (6)窗体生成器 ) (7)网格生成器 ) (8)列表框生成器 ) (9)文本框生成器 ) (10)参照完整性生成器 ) (11)选项组生成器 )
4.4 Visual Fox 8.0 的集成环境
4.4.6 工作区与状态行
VFP第四章学习笔记
VFP第四章学习笔记4.1 VFP数据库1.数据库:包容器,相关表的集合,不包含表的记录数据;但是包含字段和表的扩展属性2.优点:把若干表组织到一个数据库中,用户就可以充分利用VFP提供的存储一系列的表或视图,设置属性和数据验证规则,在表间建立关系,使相关联的表协调工作等等的功能。
4.2数据库的设计过程一.设计数据库的关键:理解关系型数据库管理系统保存数据库的方式二.设计数据库的一般步骤(一)确定建立数据库的目的要充分了解用户的需求(二)确定需要的表(技巧性最强)1.确定表时,要注意尽量避免在一张表中存储重复的信息,以免导致不好的后果。
2.重复的信息将导致:(1)表中数据量的成倍增加和用户数据录入工作量的增加(2)重复的录入容易导致错误,从而造成数据的不一致性(3)有用的信息被删除(三)确定表中的字段设计原则:1.每个字段直接和表的主题相关2.不要包含可推导得到或需计算的数据字段3.收集所需的全部信息4.要以最小的逻辑单位存储信息5.每张表都必须明确主关键字(四)确定表之间的关系1.关系的种类(1)一对一关系甲表的一个记录在乙表中只能对应一个记录,乙表同样(2)一对多关系甲表中的任意一个记录在乙表中可以有几个记录与之对应,而乙表中的每个记录在甲表中仅有一个记录与之对应(3)多对多关系甲表中任意一个记录在乙表中可有多个记录与之对应,乙表同样注:“多对多”时,要建立第三张表(纽带表),把多对多的关系分解为两个一对多的关系,把两个表的主关键字都放在这个纽带表中2.分析并确定表之间的关系需要时可在表中加入字段或创建一张新表来明确关系(五)设计的改进创建表,在表中加入几个示例数据记录,看能否得到想要的结果4.3建立数据库文件一、文件菜单设计二、利用项目管理器设计三、利用命令创建数据库四、数据库的打开和关闭4.4数据字典1、概念:是包含数据库中所有表信息的一张表,存储在数据字典中的信息称之为元数据即其记录是关于数据的数据2、作用:使用数据字典,可以创建字段级规则和记录级规则,保证主关键字字段的内容的唯一性4.5数据库表字段的扩展属性一、字段的显示属性格式(Format):控制字段的显示方式,如大写、中文日期(A、K、L、T、!、$)掩码(Inputmask):控制字段的输入格式,如只能输入字母或数字(X、9、.、,、A)标题(Caption):在浏览窗口的列标题上显示的说明文字,不同于字段名,但字段名可作为默认的标题(在表设计器中设置标题时,不需要加引号)注释(Comment):在项目管理器中,当选中该字段后,在下面的说明栏中显示(在表设计器中设置注释时,不需要加引号)默认值(Defaultvalue):当新增记录时,字段预先具有的初值。
计算机二级考试《VFP》第四章复习重点
计算机二级考试《VFP》第四章复习重点2017计算机二级考试《VFP》第四章复习重点第为了大家能够对计算机二级Visual FoxPro 数据库有一个系统的复习,下面店铺就收集整理了以下的2017计算机二级考试《VFP》第四章复习重点,希望对大家的学习有所帮助!第四章 Visual FoxPro 数据库及其操作1.创建数据库可以通过以下几种方式创建数据库:(1).在“项目管理器”中创建数据库打开“ 项目管理器” ,选择“ 数据” 选项卡中的“ 数据库”然后单击“ 新建” 按钮,在弹出的“ 创建” 对话框中输入数据库名,单击“ 保存” 。
(2).由文件菜单创建数据库在系统菜单中,选择“文件”下拉菜单中的“新建”,在“新建”对话框中选择数据库文件类型,然后单击“新建文件”按钮,此时系统会弹出“创建”对话框,在弹出的“创建”对话框中输入数据库名,并单击“保存”按钮。
(3).通过命令建立数据库CREATE DATABASE [数据库文件名/?]2. 数据库的打开(1). 利用系统菜单在系统菜单“文件”中选择“打开”命令(或单击常用工具栏上的“打开”按钮),在弹出的对话框中,指定预打开的数据库文件所在文件夹、类型及文件名,然后单击“确定”按钮。
(2). 利用命令OPEN DATABASE <数据库文件名/?> (p84)(3).修改编辑数据库MODIFY DATABASE <数据库文件名/?> (p85)3.删除数据库(1).在“项目管理器”中删除打开项目管理器,选择要删除的数据库,单击“移去”按钮,在出现的对话框中选择“移去”或“删除”按钮。
(2).按[Delete]键删除打开数据库文件所在的文件夹,选定数据库,按[Delete]键。
(3).执行命令删除DELETE DATABASE<数据库文件名>/?[DELETETABLES][RECYCLE]4.表结构的建立在数据库设计器中新建表的方法有两种:(1).在数据库设计器的空白位置单击鼠标右键,选择快捷菜单中的“新建表” 命令,打开“新建表”对话框,选择“新建表”或“表向导”命令。
vf第四章课件
4.4.2 表达式
表达式是Visual FoxPro语言的重要运算 成分,是由操作符和操作数组成的具有一定 含义的式子。操作符就是运算符,操作数包 括:常量、内存变量、字段变量、数组变量 和函数。
在一个表达式中,如果有不同类型的运 算符时,首先进行算术或字符运算,然后是 关系运算,最后才进行逻辑运算。用括号可 以改变运算的顺序,同级运算符的运算顺序 是依次从左到右。
4.2.2 Visual FoxPro主要技术性能
1.程序文件与过程文件技术性能
·源程序文件中程序行的最大数 系统没有限制
受可用内存的限制
·编译后程序的最大容量
为64KB
·过程文件中包含过程的最大数 系统没有限制
受可用内存的限制
· DO调用的嵌套层数的最大值
为128层
· READ嵌套层次的最大层数
·字符字段的最大字符数
为254个
·数值型字段的最大值
为20位
·浮点型字段的最大值
为307位
·自由表中各字段名的字符数最大值
为10个字符
·数据库表中各字段名的字符数最大值
为128个字符
·整数表示的最小数值
为 - 2,147,483,647
·整数表示的最大数值
为 2,147,483,647
·数值计算的精确值位数
6.求最小值函数MIN( )
格式:MIN(表达式1 ,表达式2>[,表达
式3 …] )
功能:返回表达式“表达式1”,“表达式2”,“表 达式3”… 中的最小值。注意,这些表达式必须具有相 同数据类型(可以是字符型、数值型或日期型等)。
4.5.2 字符处理函数
VFP课件(苏大版)第四章
查询中的COUNT( )函数
• 题目3:在SJK数据库中,xs(学生)表xh(学号) 字段的前两位数字的含义为年级。要求设计查询: 按“年级”查询学生人数,输出字段为“年级” 和“人数”,按年级升序排序
•答案:
SELE LEFT(xs.xh,2) AS 年级 ,; COUNT(*) AS 人数 FROM SJK!xs GROUP BY 1 ; ORDER BY 1
3、创建多表查询
如何建立基于多表的查询
• 当需要获取存储在两个或更多表或视图 中的信息时,只要把所有有关的表添加 到查询中,并用公共字段联接它们。 • 多个表可以是库表、自由表或视图的任 意组合。
如何建立基于多表的查询
一.联接的概念
1. 联接和联接条件 –联接(Join),是指查询或视图的一个 数据库操作。通过比较指定字段中的值 联接两个或多个表或视图中的记录。例 如,有一种联接,要求只有在两个表中 联接字段的值相等时,才选择两个表中 的记录。
4.3 SELECT-SQL语句
4.3.1、SQL语言概述
SQL(Structured Query Language, 结构化查询语言)是美国国家标准 局ANSI确认的关系数据库语言的标 准。VFP支持SQL。
Hale Waihona Puke VFP支持如下SQL命令:
1、SELECT-SQL——查询命令 2、ALTER TABLE-SQL——修改表结 构和参照完整性规则 3、CREATE CURSOR-SQL——创建临时表 4、CREATE TABLE-SQL——创建新表 5、DELETE-SQL——逻辑删除记录 6、INSERT-SQL—-追加一条新记录 7、UPDATE-SQL——更新表中的记录
4、创建多表联接
第6讲 第4章表的基本操作4[1].3
Visual Foxpro 程序设计教程
4.3.4 索引文件的使用
1.打开索引文件(续)
(1)表和索引文件同时打开 ②如果第一个索引文件是复合索引文件,由 于包含多个索引标志,无法确定哪个索引标 志起作用,所以在打开后还要确定主索引, 否则对表进行操作时,数据记录仍按物理顺 序排列。
Visual Foxpro 程序设计教程
4.3.3 建立索引文件
1.用命令建立索引(续)
例 就学生表建立结构复合索引文件,其中包含2个 索引: (1)按学号的升序排列,不允许有编号相同的记录。 (2)先按性别升序,性别相同再按入学成绩降序排列。
USE 学生 INDEX ON 学号 TAG sy1 UNIQUE INDEX ON 性别+STR(1000 -入学成绩) TAG sy2
Visual Foxpro 程序设计教程
4.3.4 索引文件的使用
2.确定主控索引
(3)[TAG] <索引标志名> [OF <复合索引文件名>] 用于指定一个已打开的复合索引文件中的一个索引 标志为主控索引。 (4)不带任何短语的SET ORDER TO命令可以取消 主控索引。
Visual Foxpro 程序设计教程
主索引
候选索引 中出现重复值的索引。一个 索引
表可以建立多个候选索引。
存储在.cdx结 构复合索引文 件中,与表文 件同时打开和 关闭。
惟一索引
普通索引
只在索引文件中保留第一 次出现的索引关键字值。
可存储在.cdx 独立复合索引 文件和.idx单 索引文件中
Visual Foxpro 程序设计教程
VFP课件 第四章
4.1.2 查询结果处理
1. 建立分组查询
对利用VFP的分组功能,可以将查询结果依据某 字段把相同数据值的记录放在一组,形成若干组。设 置查询分组功能,既可以在已有的查询文件基础上加 以修改,入分组功能;也可以建立一个新的具有分 组功能的查询。 【例4-3】统计人事管理数据库职工中相同职称职 工的平均基本工资。结果按平均基本工资升序排列。 思路:把相同职称的记录集合到一组中,然后计 算基本工资的平均值。
第四章
查询与视图
本 章 要 点
数据查询和视图是 VFP数据库应用的重要方面,它 可以帮助我们在数据表中方便地进行各种查询,并能把 查询结果保存起来。在本章中,就Visual FoxPro中的数 据查询方法、利用向导和查询设计器建立查询的方法进 行了详细的讨论;对视图在数据库系统中的作用,怎样 通过视图向导和视图设计器设计视图也作了介绍。
2)利用查询向导设计查询文件
现在通过一个实例来说明如何使用查询向导 设计器。 【例4-1】使用“人事管理”数据库中的表 “Rsgl”和“Rsgz”,通过查询设计向导设计一个 查询,要求查询结果包含编号、姓名、职务、基 本工资、应发工资、实发工资,并以基本工资排 序。
2. 利用查询设计器建立查询文件
② 方便数据的管理。视图可以针对特定的用户定 义特定的数据,而不必对所有的用户都开放整个表的 数据,从而增加了查询效率,而且保证了基表中某些 数据的机密性。此外,视图只是一种逻辑对象,不占 用物理空间,可以不必使用大量的存储介质。
③ 简化数据操作。由于很多情况下,对数 据的操作需要涉及到多个表,每次操作起来比较 麻烦,但是如果把这些操作定义到一个视图中去, 就可以大大简化对这种多表的操作,像使用一个 表一样的使用视图。 ④ 方便与其它应用程序联系。使用视图可 以将需要导出的数据集中,从而方便将数据导出 至其他应用程序。
VFP第4章PPT课件
Eg2:查询每个学生的学号与姓名。 select 学号,姓名 from 学生信息
4.2 数据查询
Eg3:显示表中所有专业 ①select 专业 from 学生信息;
② select distinct 专业 from 学生信息
DISTINCT短语的作用是 去掉查询结果中的重复值
式>[AS <别名>]; [,[<别名.>]<列表达式>[AS <别名>]…]; FROM [<数据库名!>]<表名>[,[<数据库名!>]<表名>…]; [INNER | LEFT | RIGHT | FULL JOIN [<数据库名!>]<表名> ; [ON <联接条件>…]]; [[INTO TABLE <新表名>] | [TO FILE <文件名> | TO PRINTER | TO
WHERE、GROUP BY、HAVING、ORDER BY。
4.2 数据查询
1.SELECT 短语:用于说明要查询的数据。 2.FROM 短语:用于说明要查询的数据来自哪个或哪些表,可对单个表
或多个表进行查询。 3.WHERE 短语:用于说明查询条件;如果是多表查询还可通过该子句指
明表与表之间的联接条件,进行联接。 4.GROUP BY 短语:用于对查询进行分组,可利用它进行分组汇总。 5.HAVING 短语:跟随在GROUP BY 之后使用,它是用来限定分组,要求
select 学号 ,姓名,专业 from student
Ex4:查询score表中的所有信息。 方法一:select 学号 ,课程编号,成绩 from score 方法二:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIQ
第二节
索
引
例4:对工资库中基本工资字段按降序索引 。 USE GZ INDE ON -基本工资 TAG GZ3 10 records indexed LIST
第二节
索
引
例5:为SB.DBF建立一个结构复合索引文件,其中包括3个 索引标志: (1)记录以价格降序排列,索引标识为普通索引型。
第二节
索
引
三、用命令方式建立索引文件 ⑴ 建立单索引文件 格式: INDEX ON <关键字表达式> TO <单索引文件名> [FOR <条件>] [UNIQUE] [ADDITIVE] 功能:建立一个扩展名为 .IDX的单索引文件
第二节
索
引
例1: 建立一个独立索引文件(.IDX)示例。
USE RS INDEX ON 工资 TO RS1 LIST (请同学们看演示结果) INDEX ON 婚否 TO RS2 LIST (同学们看演示结果) INDEX ON 性别 TO RS3 LIST (请同学们看演示结果)
①TAG <索引文件名>:建立一个扩展名为 .CDX的复合索 引文件及索引标志,或增加索引标志。
[OF <索引文件名>]:当缺省OF子句时,则建立一个 结构复合索引文件;反之,则建立非结构复合索引文件。 ②<关键字表达式>的类型:通常情况下,不能对备注字段、 通用字段或者图片字段进行索引。
③[COMPACT]:建立压缩的单索引文件。(选学)
第二节
击“确定”按钮。
索
引
⑥若表需要建立多个索引,则可按①-⑤重复操作,反之单 ⑦若系统检验未通过,系统将提示错误所在,并拒绝退出, 等待用户进一步修改。若检验通过,系统将提示是否对表作 永久性更改,单击 “是”按钮,以确认操作。
第二节
例1 教材P73(上机演习)
索
引
例2 以人事表为例演示如何建立多个索引标志(上机演习) 以及表达式生成器的使用。(选学) (由于主索引只能在数据表中建立,我们将在第五章中加以 介绍。)
第一节
排
序
例4: 练习L型字段的排序(演示)
USE RS SORT TO RS2 ON 婚否,出生日期 USE RS2 LIST ( 注意演示结果 )
第一节
排
序
例5: 练习[FIELD<字段名表>]和[FOR <条件>]: (演示)
USE RS SORT TO RS3 ON 部门编号,职称 FIEL 姓名,部门编号,职 称 USE RS3 LIST ( 注意演示结果:RS表中只有三个字段。 )
⑤[UNIQUE]:建立唯一索引型索引文件。 [CANDIDATE]:建立候选索引型索引文件,但需与TAG子句 联用。 (选学)Βιβλιοθήκη 第二节索引
⑥[ADDITIVE]: 所有先前已打开的索引文件保持打开状态。
如省略此子句,则在创建索引文件或表时,将关闭所有先
前已打开的索引文件(结构复合索引文件除外)。(选学) ⑦多重索引:当<关键表达式>中包含一个以上的字段时, 称为多重索引或复合索引。进行复合索引时各字段必须转 化为同一数据类型,字段之间用“+”号连接,一般是把 非字符型字段转化为字符型字段。复合关键表达式中最重 要的字段(称为主关键字)应当放在前面。
第二节
索
引
④[ASCENDING/DESCENDING](选学)
对于.CDX文件,ASCENDING规定按升序创建 .CDX 索引标识, DESCENDING则规定为降序。系统默认按升序排列。
对于.IDX 文件,不能包含DESCENDING 参数,但可以用
SET INDEX 或 SET ORDER 命令将它指定按降序排列。
第二节
四、索引文件的使用(续) 1、打开与关闭索引文件(续)
索
引
③结构复合索引的打开与关闭(本章重点) 结构复合索引的打开:能随着表的打开而自动打开。 但在使用时必须经过激活才起作用。
确定主控索引文件(激活)
格式:SET ORDER TO [TAG] <索引标识名> 通常写成: SET ORDER TO <索引标识名> 或者写成: USE 表名 order <索引标识名>
第二节
索
引
三、利用“表设计器”建立索引(选学)
注意:用“表设计器”只能建立结构化复合索引文件(.CDX 文件)。 方法一:在表设计器的字段选项卡上选定某个字段作为索引 关键字(ON 字句),在其索引列的组合框中选定向上 (向下)的箭头来确定索引顺序为升序(降序)。 例:(演示)
第二节
索
引
方法二:在表设计器的索引选项卡完成。
当指定多个关键字段进行排序时,称多重排序。多重排序的
排序规则:以排在前面的字段优先。即在前一字段相同值范 围内,再按后一字段的值排序。
第一节
排
序
例1:对工资库中记录先按基本工资从小到大,再按 补助工资从大到小排序。 SORT TO GZ1 ON 基本工资,补助工资/D 10 record sort complete. USE GZ1 LIST
关闭结构复合索引:SET
ORDER TO
第二节
四、索引文件的使用(续) 1、打开索引文件(续)
索
引
④非结构复合索引的打开与关闭(选学) 非结构复合索引的打开:不能随着表的打开而自动打开。 用户必须经过将索引文件打开并且激活才起作用。 确定主控索引文件(激活) 上述两步可以用以下命令完成: USE 表名 SET INDEX TO [<非结构复合索引文件名>] ORDER 索引标志名
关键字值 记录的物理位臵
92 3
86
75 74
2
4 1
图4-1 学生表文件
图4-2 索引文件
第二节
索
引
(1)按文件类型(扩展名)分类 分为两类: 独立索引(.IDX)文件:只包含一个关键字表达式的索引文 件。不能随表自动打开,也不能自动重建索引。 复合索引(.CDX)文件:允许包含多个关键字表达式的索引 文件。它又分为: 结构化复合索引:与表有相同的基本名,并随表的打开而 自动打开。 非结构化复合索引:与表有不同的基本名,使用时须用户 专门打开。
第一节
排
序
例2:对RS表按照部门和职称分类,产生一张新表RS1。
USE RS SORT TO USE RS1 LIST RS1 ON 部门编号,职称
( 注意演示结果 )
第一节
排
序
例3:对凭证库按科目代号升序,再按金额降序。
USE PZK SORT TO PZK1 ON 科目代号,金额/D 12 record sort complete. USE PZK1 LIST ( 注意演示结果 )
第一节
三、排序命令说明:
排
序
1、<字段名1>:指定用于排序的字段,称关键字段。 关键字段 为字符型、数值型、日期型、逻辑型字段。备注型或通用型 字段不能用做关键字段。 2、[/A|/D][/C]:用于指定关键字段的排序顺序。
/A:指定按升序排序 /D:指定按降序排序。如缺省此项则按升序排序。 /C:大小写等效。
第一节
三、排序命令说明(续)
排 序
3.ASCENDING:将所有不带/D的关键字段指定为升序排列。 DESCENDING:将所有不带/A的关键字段指定为降序排列。 如缺省此两项,则排序顺序默认为升序。 4.FOR <条件>:对表中满足条件的记录排序。 [范围]:对表中指定范围内的记录排序。
第一节
第二节
索
引
记录的物理顺序和逻辑顺序:
记录按磁盘存储的实际位臵排列称记录的物理顺序。 例: 在排序产生的新表中按记录新的物理顺序排列。
记录按某个索引关键字(或表达式)来建立顺序称记录的逻 辑顺序。在索引产生的索引文件中,保存的是表记录的逻 辑顺序。
一、索引的概念:记录按某个索引关键字(或表达式)来建 立记录的顺序并产生索引文件的过程。
第四章
表的高级操作
表记录的排序
表记录的索引
表记录的查找 表记录的统计 数据工作期的概念和操作
教学课时:6课时 上机课时:6课时
第一节
一、概念:
排
序
排序是根据表中指定字段的值,按一定的规则重新排 列,并将重新排列的记录输出到一个新的表文件中。 二、排序方法 格式: SORT TO <新表名> ON <字段名1> [/A][/D][/C] [,<字段名2>[/A] [/D] [/C]...] [<范围>] [FOR <条件>] [FIELD <字段名表>] [FIELD LIKE/EXCEPT <通配符>] (选学) [ASCENDING/DESCENDING] [NOOPTIMIZE](选学)
第二节
四、索引文件的使用
1、打开与关闭索引文件
索
引
①索引刚建立时,索引文件呈打开状态且成为主控索引文件。
②单索引文件的打开与关闭:
打开方式一:同时打开表及索引文件 格式:USE <表文件名> INDEX <索引文件名表> 打开方式二:先打开表,再打开相应的索引文件 格式: USE <表文件名> ………. SET INDEX TO [<索引文件名表>] 关闭单索引文件:SET INDEX TO
第二节
⑵ 建立复合索引文件
格式:
INDEX ON
索
引
<关键字表达式> TAG <索引标志名>
[OF <索引文件名>] [FOR <条件>] [ASCENDING/DESCENDING] [UNIQUE/CANDIDATE] [ADDITIVE] 功能:建立索引文件或增加索引标志。