vfp03-1 查询与统计

合集下载

VF中查询与统计报告

VF中查询与统计报告

查询与统计一、实验目的练习VFP查询与统计的相关操作,包括数据排序、界面和命令方式建立索引、查询满足条件的记录,建立表的关联和统计命令的使用。

二、内容与设计思想实验内容:1.数据排序;2.索引的建立;3.顺序查询和索引查询;4.数据工作区;5.统计命令;6.SELECT-SQL查询7.数据完整性。

设计思想:在Visual ProFox中,使用软件提供的界面和命令操作两种方式,对表中的数据进行查询和统计的相关操作。

三、使用环境Windos XP操作系统;Visual ProFox 6.0四、核心代码及调试过程1、做教材习题(p119)的第3题,并打开表设计器,查看已建立的3个索引,写命令;(9分)use sb &&打开sbindex on 编号tag bh descending &&建立以编号降序排列,标识为普通索引 (1)index on 名称+dtos(启用日期) tag mcrq descending unique &&index on val(部门)-val(dtos(启用日期))/100000000 tag bmrq descending candidatemodify structure2、删除第3(3)小题所建立的索引,并用表设计器重新建立之(截图);(6分)delete tag bmrq3、做教材习题(p119)的第4题;(10分)顺序查询:locate for year(启用日期)=1992 and 主要设备=.f.索引查询:index on 主要设备tag zysb for year(启用日期)=1992seek .f.4、做教材习题(p120)第14题;(21分)(1)查询价格小于10万元的设备的启用日期select SB.名称,SB.启用日期FROM SB WHERE SB.价格<100000(2)查询车间使用的设备或者价格不小于10万元的设备的部门名,查询结果输出到表RESULT.DBFSELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB INNER JOIN BMDM ON SB.部门=BMDM.代码;WHERE "车间"$BMDM.名称OR SB.价格>=100000(3)查询1992年启用的设备的名称和部门名SELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB INNER JOIN BMDM ON SB.部门=BMDM.代码;WHERE YEAR(SB.启用日期)=1992(4)查询大修过的设备的编号和名称SELECT SB.编号,SB.名称FROM SB,DX WHERE SB.编号=DX.编号(5)查询有增值的设备的设备名和部门名SELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB,BMDM,ZZ;WHERE SB.部门=BMDM.代码AND SB.编号=ZZ.编号(6)试算出1992年前启用的主要设备的台数SELECT COUNT(SB.编号) AS 1992年前启用设备台数;FROM SB WHERE YEAR(SB.启用日期)<1992(7)试算出大修过的设备中每种设备大修费用的平均值SELECT SB.名称,A VG(DX.费用) AS 平均大修费用;FROM SB,DX WHERE SB.编号=DX.编号group BY DX.编号5、有表GZ.DBF(工资)和ZC.DBF(职称)内容如下:(9分)(表在sever上拷贝使用)1)同时打开GZ和ZC,写命令或者在数据工作期中操作截图均可。

VF辅导:vfp查询(query)

VF辅导:vfp查询(query)

⽣成SQL语句:不论是使⽤向导还是使⽤"查询设计器",其结果都是⽣成⼀条SQL语句.可以通过选择"查询"菜单(或者快捷菜单)中的"查看SQL"菜单项或单击"查询设计器"⼯具栏上的"SQL"按钮,即可看到所⽣成的select-sql语句. ⼀般情况下,⽤查询设计器创建查询的⽬的是通过交互设置,⽣成SQL命令,然后复制下来,粘贴到应⽤程序中或保存到查询⽂件中.如果对select-sql⽐较熟悉,完全可以不使⽤查询. 3.⽣成查询⽂件:查询创建完成后,单击"常⽤"⼯具栏上"保存"按钮或"⽂件"下的"保存"命令,输⼊⽂件名,⽐如Query1,系统⾃动为该⽂件加上扩展名.QPR,即⽣成了查询⽂件Query1.QPR.该⽂件中保存的是SQL语句.运⾏查询:(1).在项⽬管理器打开的情况下,选择查询⽂件,单击"项⽬管理器"上的"运⾏"按钮.(2)在查询⽂件打开的情况下,单击"常⽤"⼯具栏上的"运⾏"按钮或"查询"菜单中的"运⾏查询"命令,即可运⾏查询.(3)在命令窗⼝或应⽤程序中⽤DO命令运⾏查询,例如:do Query1.QPR 例⼀:查询男⼥职⼯⼈数,⼯资总额及平均⼯资,并按平均⼯资降序排序.查询输出必须包括性别,⼈数,⼯资总额和平均⼯资. 分析:本例按性别进⾏分组,即把所有性别相同的记录压缩成⼀个记录.利⽤count(),sum()和avg()函数可以对每⼀组记录进⾏计数,求和及求平均值.另外还有max()是求值函数,min()是求最⼩值函数. 1.新建⼀个查询,选"职⼯档案"表,在"查询设计器"对话框的"字段"选项卡中将下列字段和表达式设置到"选定字段"列表框中, 向"选定字段"列表添加表达式"count(*) as ⼈数"的⽅法:在"函数和表达式"⽂本框中输⼊表达式"count(*) as ⼈数",然后单击右侧的"添加"按钮即可,这⾥,给表达式"count(*)"起了⼀个别名"⼈数". 2.在"排序依据"选项卡中,选择"avg(职⼯档案.⼯资)"作为排序条件,设置为降序排序. 3.在"分组依据"选项卡中,把"可⽤字段"中的"职⼯档案.性别"字段添加到"分组字段"中.这样就完成了本例的查询要求. 4.如果在分组的基础上,还要对查询结果记录进⾏筛选,可以单击在"分组依据"选项卡中的"满⾜条件"按钮,打开"满⾜条件"对话框,例如输⼊"avg(职⼯档案.⼯资)<1000"。

第3章 查询与统计(2)

第3章 查询与统计(2)

3.10.2 向数据库添加自由表 在Visual FoxPro中,每个表可以有两种存在状态:自由表或 数据库表。 使用自由表还是数据库表来保存要管理的数据,取决于管理 数据之间是否存在关系以及关系的复杂程度。如果用户要保存的 数据关系比较简单,使用自由表就够了。 如果要保存的数据需要多个表,表和表之间又存在相互关系, 这时就必须建立一个数据库,把这些表添加进数据库,此时可以 认为这个数据库拥有添加进来的表,但用户数据仍然存储在数据 库表中。数据库表文件与自由表文件一样,其扩展名仍然为.dbf。 有了数据库文件,就可以向数据库添加表了。通常,表只能 属于一个数据库文件,如果想将一个数据库中的表移到其他数据 库,必须先从数据库中移去该数据库表使之变成自由表,然后才 能将其添加到另一数据库中。
向数据库添加表的方法是:在数据库设计器单击数据库设计 器工具栏的“添加表”按钮,在“打开”对话框选择要添加表的 表名,单击“确定”按钮,这样,自由表被添加进数据库中,它 成为数据库表。也可以通过“数据库”菜单或“数据库”快捷菜 单,将表添加到数据库中。 在数据库设计器中先选中一个数据库,然后单击数据库设 计器工具栏的“移去表”按钮,或在“数据库”菜单中选择“移 去”命令,可以移去或删除数据库中的表。
在数据库设计器上有一个浮动的数据库设计器工具栏,可以 利用数据库设计器工具栏快速访问与数据库相关的选项。 在菜单栏中有“数据库”菜单项,其中包含了各种可用的数 据库命令。此外,在数据库设计器中任意空白区域单击鼠标右键, 会弹出一个快捷菜单,其中也包含了可用的数据库命令。 单击数据库设计器的关闭按钮可以关闭数据库设计器。至此, 已经建立了一个数据库文件,不过由于还没有添加任何表和其他 对象,所以只是建立了一个空的数据库。
打开一个数据库文件,同名的.dct数据库备注文件与.dcx索 引文件也一起被打开。 数据库打开后,在“常用”工具栏中可以看见当前正在使用 的数据库名,同时当数据库设计器为当前窗口时,系统菜单上出 现“数据库”菜单项。 Visual FoxPro在同一时刻可以打开多个数据库,但在同一 时刻只有一个当前数据库,所有作用于数据库的命令或函数都是 对当前数据库而言的。 当打开多个数据库时,系统将最后被打开的数据库作为当前 数据库。可以从“常用“工具栏上的数据库下拉列表中选择一个 打开的数据库作为当前数据库,或者使用SET DATABASE命令选择 一个数据库作为当前数据库。

VFP3查询视图

VFP3查询视图

3、创建视图(本地视图)
4、利用视图更新数据表中的数据的操作步骤 文件 打开 数据库 视图设计器 修改
保存
发送SQL更新
字段名
更新条件
三、查询与视图的比较
相同点:创建步骤极其类似,只差更新条件一项 不同点: 1、查询可以运行,视图只能浏览 2、查询不可以更新,视图可以更新
3、查询是独立的文件,视图却是数据库中的一部分
返回目录
I. 在项目中创建四个查询文件,按不同的条件进行
查询,要求将其保存到一个固定位置以便将来使 用;
II. 条件要自定,符合单单、单多、多单、多多等信
息。
III. 可以参考教材提供的信息。
返回目录
1、查询:是一个向数据库发出检索信息的请求,用来提取数 据库中符合条件的记录。
2、查询方式
•单表查询(内容只涉及一张数据表,条件可简可繁) •多表查询(内容涉及多张数据表,条件可简可繁) 3、创建查询(单表查询和多表查询)
操作步骤:
文件
新建
查询
查询设计器
查询
选定字段
二、视图 1、视图与查询极为类似,主要的区别在于视图是可以更 新的,而查询是不可以更新的。 2、视图的种类 •本地视图(数据的更新在本地计算机) •远程视图(数据的更新在远程服务器)
主要内容:
创建查询及视图
创建单表查询 运行查询查看结果 创建多表查询 保存查询并设置查询去向 创建本地视图及使用
上机实践
返回目录
通过学习,让学生掌握创建查询及视图的 方法,并学会运行查询、查看结果及设置查 询去向。 创建单表查询、多表查询、视图的简单使用
对有关的术语、概念的理解
一、查询(.qpr)

VFP_数据的统计与查询

VFP_数据的统计与查询

• 8-6-5 报表方式输出查询结果
可以将查询结果以报表的形式输出,要实现这一操作, 事先必须创建一个报表格式文件(.FRX),而查询结果仅仅 作为报表格式文件的数据源。
• 8-6-5 按邮寄标签形式输出
将查询结果以邮寄标签的形式输出 。必需注意, 您所创建的标签格式文件中,各数据字段必需与查询结 果的输出字段完全匹配,否则将发生错误。
排序依
据选项






4
• 8-5-1 一般分组
范例三
利用查询显示表Fox man中平均薪水最 高的前 3 个部门。
查 询 结 果
• 8-5-2 按条件分组
设置组别过滤条件可以限制各分组信息能否输 出。有关设置在分组依据选项卡。
在“分组依据”选项卡中,单击“满足条件”按钮, 将打开 “满足条件”对话框。
范例
查询 条件
查询 结果
• 8-5-1 一般分组
利用函数可以获得查询结果中某一字段“所有”记录的 统计值,但是如果希望分类统计,比方说,您想要计算出 各个部门的员工人数,或计算出各个部门的平均薪水等诸 如此类的计算,则必须利用分组小计功能实现。在查询设 计器中的“分组依据”选项卡进行相关设置。
• 8-5-1 一般分组
子表
的联
接字 指定 段 连接 的类
• 8-2-3 指定字段出现在查询结果中由左至右的顺序
改 变 顺 序
• 8-2-4 检查查询设计情况与保存查询文件
保存 查询 文件
• 8-2-5 显示查询结果
1. 用菜单选项
查 询 程 序
• 8-2-5 显示查询结果
2. 用命令
直接在命令窗口中使用DO命令来运行

VFP-实验2-3数据表记录的查找、统计及文件操作

VFP-实验2-3数据表记录的查找、统计及文件操作

VFP_实验2-3数据表记录的查找、统计及文件操作一、表结构的操作1.创建表结构命令1:CREATE[路径][表名]例子:在A盘创建GZ数据表。

CREATEAGZ命令:CREATE[新表名]FROM[旧表名]例子:在A盘由GZ1创建GZ3数据表。

CREATEAGZ3FROMAGZ1命令3:COPYSTRUCTRUETO[路径][表名]例子:在D盘生成一个与正在使用的表结构相同的新表文件MY COPYSTRUCTRUETOD\MY命令4:CREATETABLE[路径][表名]([字段类型[(字段长度[,精度])]] CTEATETABLEfd((6),g(3)).表结构的显示命令:LISTSTRUCTUREDISPLAYSTRUCTURE例子:显示当前数据表在结构。

LISTSTRUCTURE3.表结构的修改命令:MODIFYSTRUCTURE作用:显示表文件结构,并允许修改此表的结构说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。

例子:修改当前数据表的结构。

MODIFYSTRUCTURE二、表文件的打开和关闭1.打开命令:USE表名[INDEX索引文件名][EXCLUSIVE]USE表名IN[工作号]SELECT<工作号>;USE[表名]ALIAS[表别名]例子:打开A盘GZ1数据表。

USEA\GZ1例子:以独占方式打开当前表文件XXUSEXXEXCLUSIVE.关闭命令:USE例子:关闭当前打开的表。

USE三、记录指针的定位1绝对定位命令:GO[TO]|TOP|BOTTOM说明:定位到第条记录,TOP定位到最上面一条记录,BOTTOM定位到最下端一条记录.相对定位SKIP[+|-]说明:它以当前记录为基准前移(-)或后移(+)个记录,不选任选项,则默认记录指针后移一条记录。

四、表数据的添加1.记录的追加命令:APPEND[BLANK]例子:向当前数据表尾部追加记录。

11.VFP查询统计及扫描循环

11.VFP查询统计及扫描循环

【EX4】设计如图所示表单,在编辑框中显示所有 读者的姓名、办证日期,单位和联系电话。
怎样构成数据表 数据来源于读者.dbf表,
数据输扫入 描循环???打开表
数据表扫描循环的三要素:
循环变量——记录指针,初值对为表中1,的go每t一op条记录 循数环据条处件理——记录指针没有到进文行件逐结条束扫描not eof()
DIMENSION X(4) SCAN FOR 读者.读者姓名=xm
X(1)=图书.书号
X(2)=图书.书名
X(3)=图书.价格
X(4)=借阅日期
INSERT INTO temp FROM ARRAY X
ENDSCAN THISFORM.GRID1.RECORDSOURCE="temp" SET SAFETY ON
处理一个记录 skip endd
扫描循环 scan 处理一个记录
ends
【EX5】设计如图所示表单,在组合框中选择任一 出版社,在编辑框中显示该出版社的图书的书名、 价格和数量。
方法1:
组合框combo1的Interactivechange事件代码:
thisform.edit1.value=“书名 价格 数量" cbs=alltrim(bo1.value) locate for alltrim(出版社)=cbs Do while not eof()
Xm=ALLTRIM(THISFORM.TEXT1.VALUE) IF FILE("TEMP.dbf") DROP TABLE TEMP ENDIF COPY STRUCTURE TO temp fields 图书.书号, 图书.书名, 图书. 价格,借阅日期
DIMENSION X(4) SCAN FOR 读者.读者姓名=xm

vfp数据的检索、统计与多工作区操作

vfp数据的检索、统计与多工作区操作
第五步:在 “索引”下拉 列表框中选择 “无”、“升 序”、“降 序”,建立索 引
第六步:单击【确定】按钮
Visual FoxPro 6.0程序设计
12
(2)利用表设计器的索引选项卡建立索引文件 索引选项卡






排 序 按
在此列表框中 在此输入条 选择索引类型 件表达式
式 生 成

在此框中输 在此文本框中输
2019/7/14
Visual FoxPro 6.0程序设计
9
如果在TAG <标记名>参数后包含可选项[OF <复合索引文件名>]
子句,则可以创建非结构复合索引文件。
[ASCENDING | DESCENDING]:ASCENDING 指定复合索引文
件为升序,这是默认值。DESCENDING 指定复合索引文件为降
3、在项目管理器中建立索引 (1)利用表设计器的字段选项卡建立索引文件
第一步:选择 【数据】选项卡
第二步:选择要 建立索引的表
第三步:单击 【修改】按钮
系统打开表设计器
2019/7/14
Visual FoxPro 6.0程序设计
11
索引选项卡
2019/7/14
第四步:选 择要建立索 引的关键字 段
[ADDITIVE]:若省略ADDITIVE子句,当为一个表建立新的索 引文件时,除结构复合索引文件外,所有其它打开的索引文件都 将会被关闭;若选择此选择项,则已打开的索引文件仍然保持打 开状态。
FOR <条件>:指定一个条件,只显示和访问满足这个条件的表 达式<条件>的记录,索引文件只为那些满足条件的表达式的记录 创建索引关键字。

12 VFP的报表、查询、统计和视图

12 VFP的报表、查询、统计和视图

VFP的报表、查询、统计和视图第一节报表打印 (2)第二节项目管理器和菜单创建 (4)第三节查询的建立和使用 (6)第四节统计 (11)第五节视图的建立和使用 (14)第六节表间关联概述 (17)第一节报表打印例题:作业78 报表打印【实验内容与设计思想】将rsgl-1.dbf复制成rsglbb1.dbf,然后将其制成报表打印成文件rsglbb1.frx,使其预览页面如下图所示:操作方法:利用向导建立报表打印报表报表设计器预览报表分组报表的建立和修改第二节项目管理器和菜单创建作业85 项目管理器和菜单制作【实验内容与设计思想】1、项目管理器用来将一个应用程序的所有文件集合成一个有机的整体,形成一个扩展名为.pjx的项目文件。

它就像一个总的控制中心,管理着VFP中包含的数据库、表单、报表、查询等一切文件。

请建立一个项目管理器“VFP上机实验习题集.pjx”,将你所有做过的作业都集成起来,形成一个有机的整体。

建立项目管理器.swf将文件添加入项目管理器 .swfVFP上机实验习题集.pjx2、利用菜单设计器,设计本项目的菜单系统,把所有的程序、表单、数据库都可以通过本菜单系统打开并自动运行。

建立“人员管理”主菜单VFP上机实验习题集主菜单.MPR第三节 查询的建立和使用概念:查询是在不修改表内容的情况下,对一个或多个表中你希望查询的内容输出到屏幕、表文件或表单中。

操作:1、使用查询向导建立查询,注意字段选择。

使用向导建立查询2、运行查询,将查询结果输出到指定的地方运行查询例题:作业79 使用向导建立查询建一个新表,这个表中既要包括rygi-1.dbf中的所有内容,又要包含bmb.dbf中的字段“负责人”,将查询结果保存到chaxun2.dbf中。

我们将利用查询来完成这个任务。

将查询结果输出到表中.swf作业81 数据库查询【实验内容与设计思想】l、在rygl-2.dbf中查询工资介于2000-4000元之间的人员姓名、性别、学历、职务和工资情况。

VFP课件查询与视图

VFP课件查询与视图

查询结果排序
排序决定了查询输出结果中记录或行的先后顺序,我们可以通
过“排序依据”选项卡设置查询的排序次序,方法同在用查询向
导设计查询介绍的一样,首先从“选定字段”框中选定要使用的
字段2024/2/24
16
并把它们移到“排序条件”框中,然后利用“排序选项”(从 中选择升序或降序)来设置排序条件。本例中设置Student.学号, 升序为排序依据。
选择筛选字段 设置筛选条件 输入筛选实例 是否区分大小写 设置条件逻辑
在字段名下的下拉选择框中选择“Student.性别”,在“条件”
下的下拉选择框中选择“=”,在“实例”下的文本框中输入.T.,
则查询所有的男生。
2024/2/24
15
在“逻辑”下的下拉选择框中选择“AND”,然后再在字段名下 的下拉选择框中选择“Student.学号”,在“条件”下的下拉选 择框中选择“In”,在“实例”下的文本框中输入“9904,9804” (请注意中间的“,”是En状态下输入的)。
单击
单击【预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中,
虽然表中没有年级字段,但可通过“学号”得到年级(学号的前二位为年
级)202。4/2/24
6
——
查 询 向 导




调整排 序顺序
移动按钮
选择排序字段 单击【添加】 选择排序方式 单击
2024/2/24
7
查询向导——限制记录
说明:查询结果中所包含
2024/2/24
14
பைடு நூலகம்
筛选记录
选择表中符合条件的一部分记录而不是全部记录是查询的重要 任务。此例要求从所有学生的信息中选出“学号”前四位为 “9904”和“9804”的所有男生,可以利用查询设计器中的“筛选” 选项卡。“筛选”选项卡可确定用于选择记录的字段和比较准则, 以及输入与该字段进行比较的示例值。

VFP数据统计命令

VFP数据统计命令

数据统计命令一.统计的分类1.横和统计:如计算所有学生的总分REPLACE ALL 总分 WITH 语文+数学+英语2.纵向统计如计算语文、数学、英语的总分(科总);计算语文、数学、英语的平均分(科平均分);计算语文、数学、英语的优秀人数、及格人数。

二.纵向求和(SUM 命令)格式: SUM<数值型字段表> [FOR/WHILE<条件>] [TO<内存变量表>]功能: 对某个数值型字段或其部分纵向求总和说明:[求和列表]:要对哪些内容求和,若无则对所有的数值型字段求和 [to 变量]:将结果保存到指定的变量中,若无,则只显示结果若无[范围],则默认为ALLSUM SX TO CC1? CC1SUM WL FOR BJ=4 TO CC2? CC2练习1:SUM 语文,数学,英语to s1,s2,s3?s1,s2,s3练习2:SUM 语文 to ss for 性别=“男”三.纵向统计(COUNT命令)格式:COUNT [范围] [FOR/WHILE<条件>][TO <内存变量>]功能:统计数据库里满足指定条件的记录条数.COUNT ALL FOR ZF>650 TO AMOUNT? AMOUNT5 显示 AMOUNT 的值练习1: ZF>600的人数?COUNT ALL FOR ZF>600 TO AA2? AA2练习2:COUNT FOR 语文>=85 TO y1? y1练习3:COUNT FOR YEAR(出生日期)=1988 TO n?n四. 纵向求平均(AVERAGE命令)格式: AVER <数值型字段表> [FOR /WITH<条件>] [TO <内存变量表>] 功能: 计算某个或某些数值型字段中,所有或部分记录的算术平均值.averageyy FOR 性别="女" TO AVE? AVE练习1:average 语文,数学,英语to P1,P2,P3练习2:average 语文to PP for 性别=”女”。

重要资料VFP表操作索引、统计、关联、连接等讲解

重要资料VFP表操作索引、统计、关联、连接等讲解

重要资料VFP表操作索引、统计、关联、连接等讲解查询、统计和多表操作表文件中记录的顺序通常是人们在输入数据时按输入的先后次序存储的,并以记录号表示,这个顺序只反映了存放数据的先后顺序。

但在数据处理实际应用中,由于数据库十分庞大,为了高效方便地处理数据,常常需要对记录位置进行重新整理,并按某种指定的顺序对表记录进行处理。

例如,对学生成绩表按学号为序显示输出记录,以便查找;或按总分高低为序输出记录,以便进行比较等等。

对记录位置进行重新整理通常有排序和索引两种方法。

排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。

一、排序表文件的排序操作就是根据表的某个关键字或关键字表达式重新排列表记录的位置。

执行排序操作后将生成一个新的表文件(称为:排序文件)。

新文件的结构和数据可以与源文件完全相同,也可以只取源文件的部分字段。

新文件不改变源文件内容和记录顺序。

【命令】 SORT TO<新文件名>ON <字段名1>[/A] [/D] [/C] [,<字段名2> [/A] [/D] [/C]…] [ASCENDING|DESCENDING][<范围>][FOR<条件>|WHILE<条件>][FIELDS<字段名表>| FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>]【功能】对当前表中指定范围内、满足条件的记录按指定字段升序或降序重新排序,并将排序结果存入新文件名中。

【说明】①排序结果存入由TO <新文件名>指定的表文件中,系统默认文件扩展名为.DBF。

②在ON子句中的字段名表示排序的关键字段。

当使用一个关键字时,叫“单重排序”;使用多个关键字时,叫“多重排序”。

在多重排序中,关键字有主次之分。

主关键字是指能够唯一标识某个记录的关键字;次关键字是指标识具有某种相同属性的某些记录的关键字。

vfp之查询

vfp之查询

输出去向 浏览 临时表 表 图形 屏幕 报表 标签
说明 将查询结果显示在"浏览"窗口中
将查询结果存储在一张命名的临时表 中
将查询结果保存在一张表中 将查询结果用于Microsoft Graph应用 程序 将查询结果显示在VFP主窗口或当前活 动窗口中 将查询结果输出到一个报表文件 将查询结果输出到一个标签文件
查询
• 所谓查询,就是从数据库的一个表或关联的 多个表中(包括视图),检索出符合条件的信息, 并可对查询结果分组或排序存储于指定的 文件中.查询文件的扩展名.qpr.查询只能从 表中提取数据,但不能修改数据.如果既要查 询数据,又要修改数据,可使用视图.查 Nhomakorabea的创建:
创建查询的方法有三种: • 使用查询向导 • 使用查询设计器 • 直接编写select-sql语句 使用查询设计器创建查询的基本步骤: (1) 启动查询设计器 (2)添加表 (3)设置表间关联 (4)选择显示字段 (5)设置筛选记录条件 (6)排序,分组查询结果 (7)设置查询输出类型
• 排序依据:使用"查询设计器",可以对查询结 果中输出的记录排序. • 以下是按第一关键字为性别升序,第二关键 字工资降序进行排序
• 分组依据:用来指定字段,SUM 或 COUNT 之类的合计函数,或把有相同字段值的记 录合并为一组,实现对查询结果的行进行 分组。 .
杂项:可设置一些特殊的查询条件
• 四种联接类型:内部联接(inner join),左联接(left outer join),右联接(right outer join)和完全联接(full join), 系统默认的联接类型是"内部联接",可在"联 接条件"对话框中更改表之间的联接类型. (1)内部联接 两个表中的字段都满足联接条件,记录 才选入查询结果 (2)左联接 联接条件左边的表中的记录都包含在 查询结果中,而右边的表中的记录只有满足联接条 件时,才选入查询结果 (3)右联接 联接条件右边的表中的记录都包含在 查询结果中,而左边的表中的记录只有满足联接条 件时,才选入查询结果 (4)完全联接两个表中的记录不论是否满足联接条件, 都选入查询结果 也可以通过"查询设计器"的"联接"选项卡来设置和修改

VFP-查询

VFP-查询

VFP-查询查询一教学目标:创建查询向导比较运算符及含义教学重点:比较运算符的含义教学难点:比较运算符及含义备课时间:2012年2月5课时数:2课时授课时间:2012年2月13号教学方法:多媒体一、引入同学们都知道学校学生众多,如果我想查找学校的团员同学的信息的话,这个时候可能要在上万的数据里面去统计。

这样是不是很费时?那么在VFP中可以用查询来实现查找我们所需的数据。

二、新课1、查询:扩展名(.qpr)【实现方法】查询向导、查询设计器、SQL--SELECT语句【创建的步骤】命令:create query[<查询文件名>]①使用查询向导或查询设计器开始创建查询②指定查询的数据表③选择在查询结果中须出现的字段④指定查询条件来筛选所需记录⑤设置排序或分组来查询结果⑥保存与运行查询。

⑦设置查询结果的输出方式【实例1】利用查询向导在xsqk表中查询出入学成绩在460分以上的所有男生记录,并按入学成绩升序输出,查询文件名为“qry1.qpr”①单击“文件”-----“新建”----“查询”---“向导”②选取“查询向导”----“确定”③在查询向导里面进行设置。

选取数据源和字段设置筛选的条件【想一想】“与”和“或”的含义与:()或:()排序查询结果设置查询结果所包含的记录数保存查询说明:完成里面有三个选项."保存查询":只保存查询。

“保存并运行查询”:保存查询并且运行查询的结果。

“保存查询并在查询设计器修改”:保存查询并且打开查询的设计器窗口。

【运行查询】:“!”对应的快捷键是CTRL+Q或者命令:do<查询文件名>(必须接上扩展名)【打开查询设计器】modify query[<查询文件名>]【查询去向】运行查询,默认输出到“浏览”窗口,是临时的,一旦关闭浏览窗口,将自动删除。

如希望永久保存,则须设置查询去向。

方法:“查询”菜单----“查询去向”---在弹出的“查询去向“对话框,选择查询结果的输出去向。

VF 第4章 查询与统计

VF 第4章  查询与统计

4.索引查询定位 索引查询定位(2) 索引查询定位
说明: 说明: (1) 在使用 在使用SEEK命令时应先打开索引文件。 SEEK 命令时应先打开索引文件。 命令时应先打开索引文件 命令中的表达式必须和索引表达式的类型相同。 命令中的表达式必须和索引表达式的类型相同。 (2) SEEK命令不仅可以查找字符串和常数,它还可 命令不仅可以查找字符串和常数, 命令不仅可以查找字符串和常数 以查找字符型、数值型、日期型或逻辑型表达式的值。 以查找字符型、数值型、日期型或逻辑型表达式的值。 命令查找字符串常量时, 用 SEEK命令查找字符串常量时, 字符串常量必须放在 命令查找字符串常量时 定界符中。 定界符中。 (3) SEEK命令定位到第一条满足条件的记录,反复 命令定位到第一条满足条件的记录, 命令定位到第一条满足条件的记录 使用SKIP命令可查找下一条满足条件的记录。 命令可查找下一条满足条件的记录。 使用 命令可查找下一条满足条件的记录 索引查询的例子:查找“学生表” 奖学金” 例4.6 索引查询的例子:查找“学生表”中“奖学金” 为100的学生名单 的学生名单
4.1.2 表的数据筛选
在显示表中的记录时, 可以只显示某些记录 在显示表中的记录时 , (选择 ,称为记录筛选;也可以只显示某些字段 选择), 选择 称为记录筛选; (投影 ,称为字段筛选。 投影), 投影 称为字段筛选。 数据筛选的设置可用如下两种方法: 数据筛选的设置可用如下两种方法: (1)”表“→”属性“ 属性“ 表 (2)”窗口 (2)”窗口“→”数据工作期“→”属性“ 窗口“ 数据工作期“ 属性“ 在打开的”工作区属性“窗口中: 在打开的”工作区属性“窗口中:在”数据过 滤器“中设置记录筛选; 字段筛选“ 滤器“中设置记录筛选;在”字段筛选“中设置 字段筛选。 字段筛选。 学生表”设置筛选条件, 例4.2 对“学生表”设置筛选条件,要求显示女 生的名单。 生的名单。 设置上例的输出字段为“ 例 4.3设置上例的输出字段为 “ xh”, “ xm”, 设置上例的输出字段为 , , “xb”。 。

VFP的18个查询

VFP的18个查询

例1:找出C J表中成绩大于80分的记录.例2查询每个学生的总分、均分例3:查询学生的学号,姓名,性别和各门功课的成绩例4:查询学生的学号,姓名,性别及总分,平均分例5:查询学生的学号,姓名,所修各课程名称及成绩,并将查询的结果保存为表C X05.D B F例6:查询每门课程的总成绩和平均成绩,输出课程名,课程代号,总分和平均分例7:查询学生的学号,姓名,性别,总分和平均分,只输出平均分大于80的记录例8:查询每个学生的选课门数,输出学号,姓名,课程数例9:查询每门课程的选修人数,输出课程代号,课程名,选课人数例10:查询信息管理系中所有成绩在480分以上,并且各门课程的成绩不低于70分的学生。

要求在查询的结果中包含学号,姓名,总分,均分,最低分,并按照总分从高到底排列1.查询学生的学号,姓名,系名,总分和平均分,按照系名升序排序,同一个系的学生按照总分降序排序。

2.查询每个系每门课程的总分和平均分,要求输出课程名,课程代号,系名,每个系的平均成绩和总成绩,按课程代号升序排序3.查询各个系每位教师的课时数,要求输出系名,工号,姓名,课时数,并按系名升序排序,同一个系的教师按照工号升序排序4.查询计算机科学系各位教师的课时数,要求输出工号,姓名,系名,课时数,并按工号降序排序,并且将查询信息保存为表,表名为:j s j k x k s s.d b f请用S E L E C T-S Q L写以下题目:1.查询各个系男生的总分和平均分,要求输出系名,性别,总分和平均分2.查询选修“中文W I N D O W S95”课程并且成绩合格(>=60)的学生名单,输出姓名,成绩,课程名,按成绩降序排列3.查询各个学生选修课程的门数及平均分,要求输出学号,姓名,课程数和平均分4.查询每门课程的选修人数及平均分,按K C D H升序排列,输出去向为表,表名为q d a t a.d b f。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果<数值表达式1>的值为0或缺省,则恢复表文件的原 始顺序,使所有打开的索引文件都无效。 【例】打开Spxx.DBF表文件及其相关索引文件,并指定结构 复合索引文件中的商品名称为主控索引。 上一页 USE Spxx INDE Spxxsy ORDER TAG 商品名称 下一页 【例】打开Spxx.DBF表及其相关索引文件,改变主索引文件。 退 出 USE Spxx INDEX Spxx SET ORDER TO 商品名称 SET ORDER TO && 使所有索引均无效 6.索引文件的更新 当表中的记录被修改时,系统会自动地更新所打开的 索引文件,及时反映数据的变化。对于没有打开的索引文 件,索引不能自动更新。为避免使用旧的索引文件导致错 误,应该使用重新索引命令更新已经建立的索引文件。 目 录
ASCENDING|DESCENDING: ASCENDING表示按升序建立索引, DESCENDING表示按降序建立索引。缺省时,按按升序建 立索引。单索引文件不能选立的是唯一索引。 ADDITIVE:表示保留以前打开的索引文件。否则,除结构复 合索引文件外,以前打开的其他索引文件都将被关闭。 上一页 下一页 【例】对Spxx.DBF表文件建立商品编号单索引文件STUD.IDX。 USE Spxx 退 出 INDEX ON 商品编号 TO STUD 【例】对表文件Spxx.DBF,建立一个基于商品编号字段的结 构复合索引文件。 USE Spxx INDEX ON 商品编号 TAG tspbh DESCENDING
目 录
索引查询(SEEK)
目 录 2. 索引查询(SEEK) LOCATE命令用于按条件进行顺序定位,无论索引文 上一页 件是否打开都可使用。 下一页 在打开索引文件后,还可以用FIND、SEEK命令进行快 速检索。 退 出
目 录 2.SEEK命令 【格式】SEEK <表达式> 上一页 【功能】在表文件的主索引中查找关键字值与<表达式>值相 匹配的第一个记录。 下一页 【说明】SEEK命令可以查找字符型、数值型、日期型、逻 退 出 辑型表达式的值。
目 录 内存变量可以直接进行查询,不用进行宏替换。
表达式为字符串时,必须用定界符括起来。日期 常量也必须用大括号括起来。
上一页
如果没有打开索引文件,查找按记录号顺序进 行。若打开了索引,查找按索引顺序进行。 该命令的最大特点是可以在没有进行排序或索 上一页 引的无序表中进行任意条件的查询,这是索引查 询做不到的,但在大型表中查询速度和效率也是 下一页 最低的。 退 出 CONTINUE命令:LOCATE找到第一条满足条件的记录 后,可以用CONTINUE继续查找下一个满足条件的 记录。 CONTINUE命令必须在LOCATE命令之后使用。 【例】在Spxx.DBF中查找商品编号为160003的商品记 录。 USE Spxx LOCATE FOR 商品编号=‘160003’
目 录 [ORDER]子句:指定主索引。选择此选项时,主索引文件将 不是<索引文件名表>中的第一个单索引文件,而是此选项 指定的单索引文件或标识。[ORDER]子句中各选项的含义 如下: 上一页 ●<数值表达式2>指定主索引的编号,若<数值表达式2>的值 下一页 为0,表示不设主索引。 退 出 ●<单索引文件>指定的单索引文件设置为主索引。 ● [TAG] <标识名> [OF <复合索引文件名>]:表示将<复合索 引文件名>中的指定标识作为主索引。[OF <复合索引文件 名>]缺省表示为结构复合索引文件。
目 录 3.索引文件的打开 【格式1】USE <文件名> [INDEX <索引文件名表|?>][ORDER < 数值表达式2> | <单索引文件> | [TAG] <标识名> [OF <复合索 上一页 引文件名>][ASCENDING | DESCENDING]] 下一页 【功能】打开指定的表文件及相关的索引文件 退 出 【说明】:如果<索引文件名表>中的第一个索引文件是单索 引文件,则它是主索引文件,若第一个索引文件是复合索 引文件,则表文件的记录将以物理顺序被访问。 <索引文件名表>:指定要打开的索引文件,索引文件中的文 件扩展名可以省略,但如果存在同名的单索引文件和复合 索引文件,必须带扩展名。
普通索引和唯一索引可以存储在.CDX独立复合索引文件 和.IDX单索引文件中。 2.索引文件的建立 上一页 (1)命令方式 下一页 【格式】INDEX ON <索引关键字表达式> TO <单索引文件> | TAG <标识名> 退 出 [OF <独立复合索引文件名>] [FOR <逻辑表达式>] [ASCENDING | DESCENDING][UNIQUE] [ADDITIVE] 【功能】对当前表文件按指定的关键字建立索引文件。 【说明】<索引关键字表达式>:指定建立索引文件的关键字 表达式,可以是单一字段名,也可以是多个字段组成的字 符型表达式,表达式中各字段的类型只能是数值型、字符 型和日期型和逻辑型。 目 录
TAG <标识名>:此选项只对建立复合索引文件时有效,指定 目 录 建立或追加索引标识的标识名。 OF <独立复合索引文件>:指定独立复合索引文件名。若有此 选项,表示在指定的独立复合索引文件中追加一个索引标 上一页 识,若指定的独立复合索引文件不存在,系统将自动建立 指定的文件。 下一页 FOR <逻辑表达式>:表示只对满足条件的记录建立索引。 退 出
目 录 ● ASCENDING | DESCENDING:表示主索引被强制以升序或降 序索引;缺省此选项,主索引按原有顺序打开。 【格式2】SET INDEX TO [<索引文件名表> ] [ORDER <数值表达 上一页 式> | <单索引文件名> | [TAG] <标识名> [OF <复合索引文件 名>] [ASCENDING | DESCENDING]][ADDITIVE] 下一页 退 出 【功能】在已打开表文件的前提下,打开相关索引文件。 【说明】ADDITIVE:表示保留以前打开的索引文件。否则, 除结构复合索引文件外,以前打开的其他索引文件都将被 关闭。 4.索引文件的关闭 【格式1】USE 【功能】关闭当前工作区中打开的表文件及所有索引文件。
查询与统计
本章要点
目 录
上一页
下一页 退 出
表的索引 查询命令 数据表的统计 多表同时操作
表的索引
目 录 1.索引及索引文件的概述
上一页
下一页 退 出
索引是以索引文件的形式存在的,它根据指定 的索引关键字表达式建立的。索引文件可以看成 索引关键字的值与记录号之间的对照表,关键字 可以是一个字段,也可以是几个字段的组合。 索引文件必须与原表一起使用。这样的查找方 式使顺序查找和随机查找都有较高的效率。 打开索引文件时,将改变表中记录的逻辑顺序, 但并不改变表中记录的物理顺序。 一个表文件可建立多个索引文件,也可同时打 开多个索引文件,但在同一时间内只有一个索引 起作用,这个索引称为主控索引。
目 录
目 录 (2)侯选索引 侯选索引也是一个不允许在指定字段和表达式中出现 重复值的索引。数据库表和自由表都可以建立侯选索引, 一个表可以建立多个侯选索引。 上一页 主索引和侯选索引都存储在.CDX结构复合索引文件中, 下一页 不能存储在独立复合索引文件和单索引文件中。 退 出 (3)唯一索引 系统只在索引文件中保留第一次出现的索引关键字值。 数据库表和自由表都可以建立唯一索引 (4)普通索引 是一个最简单的索引,允许关键字值的重复出现 , 适 合用来进行表中记录的排序和查询,也适合于一对多永久 关联中“多”的一边(子表)的索引。数据库表和自由表 都可以建立普通索引。
目 录 (1)命令方式
【格式】REINDEX 上一页 【功能】重新建立已索引过的索引文件。
下一页 退 出
【例】将表Spxx.DBF的索引文件重新索引。 USE Spxx SET INDEX TO Spxx REINDEX (2)菜单方式
目 录 7.索引的删除 (1)标识的删除 【格式】DELETE TAG <标识名1> [OF <复合索引文件名1>][, <标 上一页 识名2> [OF <复合索引文件名2>]] ... 下一页 或:DELETE TAG ALL [OF <复合索引文件名>] 【功能】从指定的复合文件中删除标识 退 出 【说明】OF <复合索引文件名>:指定复合索引文件名,若缺 省,则为结构复合索引文件。 (2)单索引文件的删除
目 录
上一页
下一页 退 出
Visual FoxPro系统中支持两种不同的索引文件类型,即单 索引文件和复合索引文件。 单索引文件是根据一个索引关键字表达式(或关键字) 建立的索引文件,文件扩展名为.IDX。 复合索引文件是指索引文件中可以包含多个索引标识 的扩展名为.CDX。 每一个索引标识均有一个特殊的标识名(TAG)。
查询命令
目 录
上一页
下一页 退 出
对表记录的查询系统提供了两类查询命令: 顺序查询和索引查询。 查询操作实际上就是起到了条件定位 的作用。
顺序查询
目 录 1. 顺序查询 【格式】LOCATE FOR<逻辑表达式1>[<范围>][WHILE <逻辑表 达2>] 上一页 【功能】在表指定范围中查找满足条件的记录。 下一页 【说明】LOCATE 命令在表指定范围中查找满足条件的第一 条记录。 退 出 <逻辑表达式1>:表示所需满足的条件。 <范围>:指定查找范围,缺省时为ALL,即在整个表文件中 查找。 找到第一条满足条件的记录后,记录指针指向该记录, 并将函数FOUND()(用于检测是否找到满足条件的记录) 置为.T.;否则,记录指针指向<范围>的底部或文件结束标 志,并且将函数FOUND()置为.F,并在状态栏给出提示信息 “已到定位范围末尾”。
相关文档
最新文档