Visual FoxPro排序、索引与查询统计

合集下载

vfp实验6表的索引、排序、统计

vfp实验6表的索引、排序、统计

vfp实验6表的索引、排序、统计
实验六表的索引、排序、统计
一、实验目的
1、理解表的4种索引类型,熟悉单项索引和复合索引的建立和应用;
2、掌握记录排序命令sort to的应用方法;
3、掌握表的常用统计命令;
二、实验内容
注意:数据文件务必存放在 D 盘!
用你的学号在D 盘下建立一个文件夹(如08514101),将文件正确保存到该文件夹中。

为方便文件打开和调试,可以用SET DEFAULT TO 修改系统的文件存放默认路径,如:SET DEFAULT TO D:\08514101
1、打开表xsda.dbf,完成以下操作:
(1)使用单项索引将表中的记录按出生日期降序
..排列显示,生成csrq.idx 文件;
(2)使用复合索引将表中的记录按性别显示不同地区的记录信息,索引标识符为xbjg;
(3)使用复合索引将表中的记录按性别降序显示男女学生的入学成绩信息,索引标识符为xbrxcj;
(4)制定当前索引为xbjg,重新显示操作(2)的结果;
2、利用表xsda.dbf的字段xh、xm、jg、rxcj和zy,生成排序文件zfpx.dbf,排序的文件按总分降序排列(sort to…on);
3、打开xscj.dbf表,分别统计不同科目的平均分,并将统计结果存在不同的变量中;
文件上交:
访问ftp://219.222.113.14,用户名:vfp8,密码:000,将你的文件以“实验
6学号姓名.rar”上传到“上传区”中,如“实验608514101蔡
梦雅.rar”。

Visual Foxpro 6.0 检索、统计与多工作区操作

Visual Foxpro 6.0 检索、统计与多工作区操作
2011-4-14 Visual FoxPro 6.0程序设计 8
2、复合索引文件的建立 、 复合索引文件是由索引标记组成的,每个复合索引文件可包含多 个索引标记,每个索引标记都有标记名,一个索引标记相当于一 个单索引文件。 格式: 索引关键表达式> 标记名> 格式:INDEX ON <索引关键表达式 TAG <标记名 [OF <复合 索引关键表达式 标记名 复合 索引文件名>][FOR <条件 条件>] [ASCENDING | 索引文件名 条件 DESCENDING] [UNIQUE][ADDITIVE] 功能:建立和修改复合索引文件,并打开此索引文件,其缺省的 功能: 文件扩展名为.CDX。 参数描述: 参数描述: <索引关键表达式 、[FOR <条件 、[ADDITIVE]:与上相同。 索引关键表达式>、 条件>]、 索引关键表达式 条件 : TAG <标记名 [OF <复合索引文件名 :创建一个复合索引文件。 标记名> 复合索引文件名>]: 标记名 复合索引文件名 在TAG <标记名>参数中不包含可选的[OF <复合索引文件名>]子 句时,便可以创建结构复合索引文件。
2011-4-14 Visual FoxPro 6.0程序设计 9
如果在TAG <标记名>参数后包含可选项[OF <复合索引文件名>] 子句,则可以创建非结构复合索引文件。 [ASCENDING | DESCENDING]:ASCENDING 指定复合索引文 : 件为升序,这是默认值。DESCENDING 指定复合索引文件为降 序。 [UNIQUE]:对于一个索引关键值,只有第一个满足该值的记录 : 包含在.IDX文件或.CDX标识中。利用UNIQUE子句可以避免显示 或访问记录的重复值。 说明: 说明: ⑴执行上述命令时,系统先检查指定的复合索引文件是否存在, 若存在,在此文件中增加一个索引标记,若不存在,则建立此索 引文件。 ⑵标记名的命名规则与变量名的命名规则相同。 ⑶单索引文件只能按升序排列,而复合索引文件既可以按升序排 列也可以按降序排列,选择DESCENDING为降序,选择 ASCENDING为升序,缺省时约定为升序。

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,写命令或者在数据工作期中操作截图均可。

Visual FoxPro排序、索引与查询统计

Visual FoxPro排序、索引与查询统计
【方法三】在建立索引文件的同时,即打开了该索引 文件,并指定其为主控索引文件。
2020/2/14
目录 6
4-2-3 关闭索引文件
【命令1】USE 【功能】关闭打开的表文件及所有索引文件 【命令2】SET INDEX TO [0] 【命令3】CLOSE INDEX 【功能】关闭打开的所有单索引文件
2020/2/14
有第一个索引文件起作用,该索引称为主控索引
【命令】
SET ORDER TO [<数值表达式>/<索引文件名
>]【功能】指定主控索引
【说明】 [数值表达式]指定该数值号的索引为主控
索引;其值为0或缺省,则关闭已打开的索引,
以原表记录的物理顺序进行处理。
2020/2/14
目录 9
4.3 表记录查询
4-3-1 顺序查询 4-3-2 索引查询
(1)如果找到,则把记录指针指向该记录,并且将 FOUND()函数的值为“真”;
(2)如果没有找到与其相符的记录,则将记录指针 指向表的末尾,且将FOUND()函数的值置为“假 ”,将EOF()函数的值置为“真”。
2020/2/14
目录 12
(3) 如果有多个与关键字匹配的记录,则记录指针 定位于其中的第一条记录上,若查询后续记录, 可用SKIP
2020/2/14
目录 15
4-4-1 统计记录数
【命令】COUNT [TO <内存变量>] [<范围>][FOR <条件>][WHILE <条件
>] 【功能】统计指定范围内满足条件的记录个数 【说明】默认的范围是ALL
使用TO <内存变量>可将统计的结果保 存到指定的内存变量

vf排序索引统计多表操作

vf排序索引统计多表操作

四、数据表的计算
USE E:\excise\type.dbf BROWSE
五、数据表的复制
数据表结构的复制 命令:COPY STRUCTURE TO <数据表名> [FIELDS
<字段表>][[WITH]CDX|[WITH]PRODUCTION] 例如: USE E:\excise\book1.dbf INDEX ON B_number TAG B_number candidate INDEX ON Type TAG Type LIST STRUCTURE &&(可观察book1的结构) COPY STRUCTURE TO E:\excise\book2.dbf WITH CDX
3.数据表的联接
命令
JION WITH <工作区号>|<别名> TO <文件名>]
[FOR条件] [FIELDS<字段名表>]
例如
sele 1
use book1
sele 2
use brower
JOIN WITH book1 TO ts FOR B_number=A.b_number
FIELDS b_number, A.b_name, lend_date, back_date
use ts
ቤተ መጻሕፍቲ ባይዱlist
【小结】
本章主要介绍了对VFP中的数据表的操作, 主要知识点如下:
数据记录的排序与索引 数据表的查询 数据表的计算 数据表的复制 数据表的关联、连接
谢谢!
2.数据表的关联
所谓关联,就是当前数据表记录指针的 移动,能引起别的数据表按某种条件相 应地移动记录指针。

重要资料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子句中的字段名表示排序的关键字段。

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

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

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

在关键字表达式中,主关键字排在前面,次关键字排在后面。

VisualFoxPro6.0数据库及其操作

VisualFoxPro6.0数据库及其操作
⑴ 菜单:选择“文件/新建”菜单 命令,或按工具栏“新建”按钮,在 “新建”对话框中选择“项目”项
⑵ 命令:CREATE PROJECT [<项目 文件名>]
3.打开项目文件
⑴ 菜单:选择“文件/打开”菜单 命令,或按工具栏的“打开”按钮,在 “打开”对话框中选择项目文件(*.PJX)
⑵ 命令:
MODIFY PROJECT [<项目文件名>]
项目(.PJX)
文档

数据 代码 其他
铜陵学院数学与计算机系
VFP项目组织简图
项目(.PJX)
文档

数据 代码 其他
查询(.QPR) 数据库(.DBC) 自由表(.DBF)
备注(.FTP) 库表(.DBF)
索引(.IDX)
铜陵学院数学与计算机系
1. 建立工作目录: 组织和管理磁盘中 的各类文件
2.建立项目文件
铜陵学院数学与计算机系
数据 类型
备注型:不定长的字符型文本,如用 于存放个人简历等。备注型数据类型 的固定长度为4个字节,但实际长度 仅受磁盘存储空间限制,并且所保存 的数据信息实际上并不存放在表文件 中,而是存放在与表文件同名,扩展 名为.FPT的文件中。
通用型:用于标记电子表格、文档、图 片等OLE对象。通用型数据类型的固定 长度也为4个字节,但实际长度仅受磁 盘存储空间限制,并且所保存的数据 信息也是存放在与表文件同名,扩展 名为.FPT的文件中。
日期型: 由年、月、日构成的数据类型,如 表XSDA中的“出生日期”字段的数据类型 可以设置成日期型。
日期时间型: 由年、月、日、时、分、秒 构成的数据类型,如学生上课的时间。
铜陵学院数学与计算机系
数据 类型

第5章 数据排序、检索、统计和多表操作

第5章 数据排序、检索、统计和多表操作

【说明】[COMPACT]表示重索引时把索引文件转换成压缩格式。
Visual FoxPro程序设计教程/第2章 数据库基础知识 18/60
5.3
数据检索
5.3.1 定位查询命令 1.LOCATE命令 【命令】LOCATE [<范围>][FOR<条件>|WHILE<条件>] 【功能】在指定的范围内找到满足条件的记录。 【说明】 (1)这是一种顺序查询方式,根据条件中的数据逐条比较记 录,不管当前记录在哪儿,总是从首记录开始向下查找。 (2)找到满足条件的记录后,记录指针指向该记录(为当前 记录),没有找到,指针指向末记录后。 (3)[<范围>] 缺省相当于ALL;[FOR<条件>]缺省,命令执 行后,指针指向首记录。 (4)若满足条件的记录有多条,指针定位于第一条,可用 CONTINUE命令指向下一条满足条件的记录。
use 学生成绩
index on 数学 tag sx index on 性别 tag xb
Visual FoxPro程序设计教程/第2章 数据库基础知识
13/60
2.用表设计器建立复合索引 在表设计器中,只要设置了索引就自动创建了结构复合索引 文件,操作步骤如下: 步骤一:打开表后,选择“显示”菜单下的“表设计器”, 选择“字段”选项卡,选择排序字段的升序或降序。 步骤二:选“索引”选项卡,对索引字段选择:主索引/候选 索引/唯一索引/普通索引。
sort to px1 on 数学/d use px1 list -------------------? 显示什么内容?与前面有什么不同?
Visual FoxPro程序设计教程/第2章 数据库基础知识 5/60
【例5-1】

Visual FoxPro6.0程序设计教程第四章 索引、排序与多表操作

Visual FoxPro6.0程序设计教程第四章 索引、排序与多表操作
说明: <字段名1>:指定主排序字段。如果有多个排序字段,先 按<字段名1>排序,对于字段值相同的记录,再按<字段名 2>排序。 <表文件名>:新建的数据表文件名,默认扩展名 .dbf。 注意:该命令最终的结 [/A][/D][/C]:指明按字段的升序、降序排序和排序时不区 果是生成一个新表!!且 分字母大小写。 使用该命令不需要建索引! Ascending | Descending:对没有用/A或/D指明排序顺序 的字段按升序或降序排序。 For <条件表达式>:对满足条件的记录进行排序。 Fields <字段名表>:指定新文件中所含字段及其顺序。
每次表打开时自动打 索引 开,并且在表修改时 自动更新的索引文件, 通常与表同名,但扩 展名是.CDX
VFP6.0索引文件
结构复合索引文件 复合索引文件(· CDX )
包含多个索引入口的索 引文件,在使用时需明 确指定打开
非结构复合索引文件
4.2 索引
4.2.2 索引的分类
三种索引文件的比较
索引类型
4.1 排序 对表文件进行物理位置的整理
命令格式:Sort To <表文件名> On <字段名1>[/A] [/D] [/C] [,<字段名2 >[/A] [/D] [/C]…] [Ascending | Descending] [For <条件表达式>] [Fields <字段名表>]
4.1 排序
独立 .idx
描述 必须明确的打开, .idx的基本 名由用户定义 必须明确的打开,使用和表名 不同的基本名 使用和表文件名相同的文件名, 和表一起自动打开

Visual_Foxpro命令

Visual_Foxpro命令
DELETE TAG 从复合索引(.CDX)文件中删除标识
INDEX 创建一个索引文件,利用该文件可以按某种逻辑顺序显示和访问表记录
SET ORDER 指定表的主控索引文件或标识
SORT 对当前选定表进行捧序,井将捧过序的记录输出到新表中
三、Visual FoxPro环境设定命令
DISPLAY STATUS 显示VisualFoxPro环境的状态
四、SET 设定命令
SET CONSOLE 激活或废止从程序中向VisualFoxPro主窗口或活动的用户自定义窗口的输出
SET DEFAULT 指定默认的驱动器、目录或文件夹
SET DEVICE 将@…SAY的输出结果定向到屏幕、打印机或文件
SET EXACT 指定比较不同长度两个字符串时,VisualFoxPro使用的规则
SET PRINTER 打开或者关闭向打印机的输出,或将结果输出到一个文件、端口
九、Visual FoxPro程序管理命令
&& 标明程序文件中非执行的内部注释的开始
* 标明程序文件中非执行的注释行的开始
CANCEL 结束当前VisualFoxPro程序的执行
DECLARE 创建一维或二维数组
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一个记录。
MODIFY COMMAND 打开一个编辑窗口,从中可以修改或创建程序文件
PARAMETERS 将调用程序传来的数据赋值给私有内存变量或数组
PRIVATE 在当前程序中隐藏指定的、在调用程序中定义的内存变量或数组
PROCEDURE 用在程序文件中标识一个过程的开始

VF第四章

VF第四章

4.1.3 输入记录 表结构输入或修改完成后单击"确定"按钮或 按CTRL+W,保存表结构;系统提示"现在输入数 据记录吗?",打入Y,表明立即输入记录内容,否 则表明仅仅建立了一空表文件. 特别注意备注和通用型数据的输入,它们的输入 方法和其它类型数据的输入有所不同.
4.2表的显示与维护 4.2表的显示与维护 建立了表以后,需要对表进行维护,这包括表的 修改,记录的增加与删除,表的复制等操作,通过 这些操作保证表的合理性和正确性.为了及时了解 表的变化需要对表进行显示操作.
2.BROWSE 命令格式: 命令格式: BROWSE [FIELDS<字段名1>[<参数>][,<字段名2>[< 参数>]]…] [<范围>][FOR|WHILE <条件>] 条件>] [<范围>][FOR| 范围>][FOR 字段名>] [FREEZE <字段名>] [NOAPPEND] [NODELETE] [NOEDIT | NOMODIFY] 功能:以窗口方式显示记录,同时还能输入和修改记录. 功能:以窗口方式显示记录,同时还能输入和修改记录. 菜单方式
4.2.1 表的打开与关闭 1 表的打开
(1).命令方式 格式: 格式: USE〈表文件名〉[NOUPDATE] [EXCLUSIVE|SHARED] 〈表文件名〉 NOUPDATE] EXCLUSIVE|SHARED] 功能: 功能:该命令用于在指定的工作区打开指定的表. 说明:其中NOUPDATE指定以只读方式打开表,EXCLUSIVE指 说明 定以独占方式打开表,SHARED指定以共享方式打开表. (2). 菜单方式

VF课件第5章 数据排序 检索 统计和多个表的操作

VF课件第5章 数据排序 检索 统计和多个表的操作

5.4
数据统计
1.计数命令 COUNT [<范围>] [FOR<条件>][TO <内存变量>] 2.求和/求平均命令 SUM/AVERAGE [<数值表达式>][<范围>][FOR<条件>] [TO <内存变量表>/ARRAY<数组>] 3. 计算命令 CALCULATE <表达式> [<范围>] [FOR<条件>] [TO <内存 变量表>/ARRAY<数组>] AVG() CNT() MIN() MAX() SUM()
第5章 数据排序、检索、统计和多表操作
提 要
分类排序 索引排序 数据检索 数据统计 多表操作
5.1 分类排序 数据表的排序就是把数据表中的记录按照某个或某些 字段值的大小顺序重新排列,排列依据的字段称为关键字 段,排序后生成一个新的表文件。 命令格式: SORT TO <新文件名> ON <字段1> [/A]/[/D][/C] [,<字段 2>……] [<范围>][FIELDS <字段表>]
4. 分类汇总命令 TOTAL ON <关键字段名> TO <汇总文件名> [<范围>] [FOR <条件>] [FIELDS <字段名表>] 综合练习:对表学生成绩.DBF做如下操作 (1)统计每个学生的平均分和总分. (2)输出最低平均分和最高总分. (3)统计总分220分以上的人数 (4)追加一个记录,显示各科平均成绩。
2.索引的建立 INDEX ON<索引关键字表达式> TO <单索引文件名> /TAG<索引标识> [FOR<条件>][COMPACT] [ASCENDING/DESCENDING] [UNIQUE/CANDIDATE][ADDITIVE]

VisualFoxPro6.0命令手册

VisualFoxPro6.0命令手册

VisualFoxPro6.0命令手册Visual FOXPRO中的常用命令目录一、数据库的建立、打开、关闭和删除二、数据表和视图的建立、打开、关闭和删除三、数据表和表结构的编辑、修改四、数据表中数据操作(查询、插入、删除和修改等)五、文件管理(文件和文件夹的复制、创建和删除)六、数据的复制与传送七、排序与索引八、查找和定位九、统计计算十、程序控制十一、其它命令结构FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。

如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]常用子句范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录;NEXT n 表示从当前记录开始的以下n条记录;RECORD n 表示第n号记录;REST 表示从当前记录到最后一条记录。

FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。

FOR条件:对满足条件的记录进行操作。

WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。

以下命令中,大写的英文词为关键词,必须原样照写。

“常用子句”指以下几个可选子句:[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]命令中的“列表”,指用“,”分隔的各项。

如“字段名列表”就是将各个字段名用逗号分隔。

部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名 Viewname 视图名 arrayname 数组名提示:加下划线的为本课程要求掌握的命令。

一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。

计算机二级visual foxpro 课件8 排序和索引

计算机二级visual foxpro 课件8 排序和索引

二、 索引
1、为什么要讲索引? 、为什么要讲索引? 排序要产生一个表,数据量大时占用存储空间;排序不能自动更新, 排序要产生一个表,数据量大时占用存储空间;排序不能自动更新,这对工 作带来不便。必须达到既能排出大小,又不重新产生新表的效果。 作带来不便。必须达到既能排出大小,又不重新产生新表的效果。 2、什么是索引? 、什么是索引? 索引是关键表达式按大小顺序排列与记录号对应的对照表. 索引是关键表达式按大小顺序排列与记录号对应的对照表 每一个对照表有一个名称,称为索引名。 每一个对照表有一个名称,称为索引名。 3、索引的类型 、 索引按其关键表达式的性质和对照表特点,可分为四种类型。 索引按其关键表达式的性质和对照表特点,可分为四种类型。
命令:SORT ON <字段名 字段名1>[/A][/D][/C] [,<字段名 命令 字段名 , 字段名 2>[/A][D][/C]…] TO <新表名 新表名> [范围 条件 字段名清单 范围][条件 字段名清单] 新表名 范围 条件][字段名清单 功能:对当前表中规定范围内符合条件的记录 按给定的字段值按由小到大的 功能 对当前表中规定范围内符合条件的记录,按给定的字段值按由小到大的 对当前表中规定范围内符合条件的记录 升序或由大到小的降序排列,生成指定名称的新表文件, 升序或由大到小的降序排列,生成指定名称的新表文件,新表文件中含有由 FIELDS指定的字段。 指定的字段。 指定的字段 参数说明:/ASC表示按升序排列,为系统的默认值; 表示按升序排列,为系统的默认值; 参数说明 表示按升序排列 /DESC表求降序排列; 表求降序排列; 表求降序排列 /C表示不区分大小写字母。 表示不区分大小写字母。 表示不区分大小写字母 后面带多个字段时, 后面带多个字段时 称为多重排序,首先按第一个字段值( 多重排序: 多重排序 当ON后面带多个字段时,称为多重排序,首先按第一个字段值(称 为主关键字)进行排序,遇到第一个关键字段等值的情况下, 为主关键字)进行排序,遇到第一个关键字段等值的情况下,再按 第二个关键字段排序,依此类推。 第二个关键字段排序,依此类推。 例: 1.对BOOKS.DBF,按数量从高到低排序 对 , 2.对BOOKS.DBF,按作者降序排序,作者相同的,按借出数量升序排序 按作者降序排序, 对 按作者降序排序 作者相同的,

数据库(VFP)实验报告-排序、索引、查询、数据工作期

数据库(VFP)实验报告-排序、索引、查询、数据工作期
记录以出生日期的降序排列,并且为候选索引。
index on 出生日期 tag csrq desc candidate
6、重新打开student表,确定第4题建立的索引为主控索引,并显示表数据信息
set index to xb
7、确定第5(3)题索引为主控索引,并显示表数据信息
setorder to tag csrq
数据库(VFP)实验报告-排序、索引、查询、数据工作期
实验名称:排序、索引、查询、数据工作期
实验目的:通过实验练习,掌握排序与索引的命令知识和上机操作方法,掌握顺序查询与索引查询的概念知识和上机操作命令使用,掌握数据工作期的使用。
实验原理(预习内容):
实验器材(软件):Visual FoxPro
实验结果分析与小结:
sort to student4 on 系别 /D for 出生日期>{^1985/01/01}
use student4
list
3、将学生按系别排序,当系别相同时则按姓名升序排序生成新文件student5
sort to student5 on 系别,姓名
4、建立系别是升序排列的单索引文件,并显示索引后的结果。
select 1
use repto xh
select 2
use student
set relation to 学号 into reportcard
list 学号,姓名,reportcard.高等数学
使用命令建立employee表和contribution表之间的关联,浏览出每个职员的姓名、每次捐款的时间及捐款金额
打开employee表,求出所有职工工资的平均值,并将结果保存到内存变量a中
use employee

FoxPro基础公开课课件——数据库的排序、索引与查询和数据统计

FoxPro基础公开课课件——数据库的排序、索引与查询和数据统计

7.6.3 记录的查询
1.顺序查询 顺序查询也叫直接查询。即按照用户
给定的条件,对数据库的记录中逐个查询, 直到找到满足条件的第一个记录为止。 2.快速查询
快速查询也叫索引查询,是针对索引文 件进行的查询,特点是查询速度快。
图7.21 表达式生成器 对话框
图7.22 查找 对话框
7.7 数据统计
7.7.1 统计
统计是指对库文件中记录的个数进行计数。 命令方式
命令格式:COUNT [〈范围〉] [ FOR 〈条件〉] [TO 〈内存变量〉] 命令功能:统计当前数据库中指定范围内 满足条件的记录的个数。
7.7.2 求和
命令方式 命 令 格 式 : SUM [ 〈 范 围 〉 ] [FOR 〈 条 件 〉 ] [〈字段名表〉] [TO〈内存变量〉] 命令功能:将数据库中指定记录的数值字段纵向 求和,并可将结果存入内存变量中。
7.7.3 求平均值
命令方式 命令格式:AVERAGE[〈范围〉] [FOR〈条件〉] [〈字段名表〉] [TO〈内存变量表〉] 命令功能:求数据库中指定综合计算
命令方式
命令格式:CALCULATE〈函数名表〉[〈范围〉] [FOR〈条件〉] [TO〈内存变量名表〉] TO ARRAY〈数组名〉]
7.6.2 数据库索引
• 1.索引的概念:在数据库中,索引是一种按照关 键字表达式使数据库中的记录有序地进行排列的 技术,它可以改变记录的逻辑顺序。
• 2.索引文件的类型: (1)单索引文件 (2)复合索引文件 • 3.索引文件的建立: (1)菜单方式 (2)命令方式
命令格式:INDEX ON〈索引关键字表达式〉 TO〈索引文件名.IDX〉 | TAG 〈索引标识符〉 [OF〈复合索引文件名.CDX〉] [FOR〈条件〉]

Visual FoxPro常用命令

Visual FoxPro常用命令

表的设计与操作1、表结构的设计:字段名、字段类型、字段宽度、小数位、NULL值NULL值:它不同于零、空字符串或者空白,而是一个不存在的值。

2、表的创建:表结构的创建:CREATE [<表文件名>]文件→新建→表→新建文件表数据的输入:BROWSE (显示→追加方式)APPEND [BLANK]INSERT [BEFORE][BLANK]1、打开与关闭:USE[<表文件名>]2、表文件的显示LIST/DISPPLAY STRUCTURE 显示表结构LIST/DISPPLAY [OFF] [<范围>] [[FIELDS]<字段名列表>][while<条件>][FOR<条件>] 显示记录3、记录指针的定位:绝对移动:Go/GoTo [RECORD] <数值表达式>/TOP/BOTTOM相对移动:SKIP [<数值表达式>]3.3 表的维护:(1)修改表结构:MODIFY STRUCTURE(2)浏览修改:BROWSE [FIELDS<字段名表>][LOCK<数值表达式>][FREEZE<字段名>][NOMENU][NOAPPEND][NOMODIFY][WIDTH<数值表达式>][FOR<逻辑表达式>][PARTITION<数值表达式>][LEDIT][REDIT][NOLINK](3)编辑修改:CHANGE/EDIT [<范围>][FIELDS<字段表>][WHILE<逻辑表达式>][FOR<逻辑表达式>] (4)批量修改:REPLACE [<范围>]<字段1>WITH<表达式1>[ADDITIVE][,<字段2>WITH<表达式2>[ADDITIVE]…][FOR<条件>][WHILE<条件>](5)修改通用型字段:MODIFY GENERAL <通用型字段名表>[NOMODIFY][NOWAIT][IN SCREEN](6)删除:DELETE [<范围>][WHILE<条件>][FOR<条件>](7)恢复删除标记:RECALL[<范围>][WHILE<条件>][FOR<条件>](8)物理删除:PACK(9)删除表中所有记录:ZAP1、文件目录显示命令:DIR [<盘符>][<路径>][<文件名描述>]DISPLAY FILE [<盘符>][<路径>][<文件名描述>]LIST FILE [<盘符>][<路径>][<文件名描述>]2、显示文件内容的命令:TYPE <文件名> 显示ACS码文本文件3、文件的复制:(1)任意类型文件的复制COPY FILE <源文件名>TO<目标文件名>(2)表文件的复制:COPY TO <新表文件名>[<范围>][FIELDS <字段名表>][WHILE<条件>][FOR<条件>](3)表结构的复制:COPY STRUCTURE TO <表文件名>[FIELDS <字段名表>]4、文件的更名:RENAME <源文件名> TO <新文件名>5、文件的删除:ERASE <文件名>/?DELETE FILE [<文件名>/?]6、从其它表中向当前表文件成批添加记录:APPEND FROM <表文件名>[FIELDS <字段名表>][WHILE<条件>][FOR<条件>]3.4 表的排序、索引与查询1、表的排序:SORT TO <表文件名> ON <字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][ASCENDING/DESCENDING][<范围>][WHILE<条件>][FOR<条件>][FIELDS <字段名表>]2、表的索引:建立IDX 索引文件:INDEX ON <关键字表达式> TO <独立索引文件名>[FOR <条件>][UNIQ][COMPACT][ADDITIVE]建立CDX 索引文件:INDEX ON <关键字表达式> TAG <标记名> [OF <复合索引文件名>][UNIQUE/CANDIDA TE] [ASCENDING/DESCENDING][ADDITIVE] [FOR<条件>]1、索引文件的打开与关闭:(1)打开表文件的同时打开索引文件USE <表文件名>/?[INDEX <索引文件名表>/?][ORDER [<算术表达式>/<IDX索引文件名>/[TAG]<标记名>[OF <复合索引文件名>][ ASCENDING/DESCENDING]]]例如:USE D:\AAA\OJS INDEX OJS_JH, OJS_KM, OJS_NY OEDER TAG KM OF OJS_KM(2)打开索引文件SET INDEX TO <索引文件名>例如:USE D:\AAA\OJSSET INDEX TO OJS_JH, OJS_KMSET INDEX TO OJS_NY OEDER TAG NY OF OJS_ NY ADDITIVE(3)在打开的索引文件中设置主控索引SET ORDER TO [<算术表达式>/<IDX索引文件名>/[TAG]]<索引标记名>[OF <复合索引文件名>][ ASCENDING/DESCENDING]]例如:USE D:\AAA\OJSSET INDEX TO OJS_JH , OJH_KM , OJS_NYSET ORDER TO 2 OF OJS_KM(4)关闭索引文件CLOSE ALLCLOSE INDEXES(5)重新索引REINDEX(6)删除复合索引文件中的标记DELETE TAG <标记名> [OF <复合索引文件名1>][,<标记名2>[OF <复合索引文件名2>]]…DELETE ALL [OF <复合索引文件名>]二、表的查询1、FIND <字符串或数值> 只能查字符型和数值型,使用该命令前,必须按<关键字>进行索引2、SEEK <表达式>[ORDER [<索引号>/IDX <索引文件名>]/[TAG]<标识名>[OF <CDX 文件名>]][ ASCENDING/DESCENDING]] 可以处理任何类型的关键字表达式,使用该命令前,必须按<关键字>进行索引3、LOCATE [<范围>] FOR <条件> [WHILE <条件>]CONTINUE 查找下一条记录2、表的统计与汇总计数命令:COUNT [<范围>] FOR <条件> [WHILE <条件>] [TO <内存变量名>]求和命令:SUM [<字段表达式表>][<范围>][TO<内存变量名表>/TO ARRAY <数组名>] FOR <条件> [WHILE <条件>]求平均命令:A VERAGE [<字段表达式表>][<范围>][TO<内存变量名表>/TO ARRAY <数组名>] FOR <条件> [WHILE <条件>]汇总命令:TOTAL TO <新表文件名> ON <关键字>[FIELDS <字段名表>] [<范围>] [FOR <条件>] [WHILE <条件>] 使用该命令前,必须按<关键字>进行排序或索引5、多表使用工作区的选择:select <工作区号/别名>例如:SELECT AUSE D:\VFP\学生表ALIAS XSBSELECT ASELECT 1SELECT XSB表之间的关联:SET RELATION TO [<关键字表达式1>/<数值表达式1> INTO <工作区号>/<别名>[,<关键字表达式2>/<数值表达式2> INTO <工作区号>/<别名>…][ADDITIVE] ]SET RELATION TO 删除当前工作区中所有关系SET RELATION OFF INTO <工作区号>/<别名> 切断当前数据表与特定数据表之间的关联例如:SELECT 2USE D:\VFP\学生表INDEX ON 学号TO学生表_学号SELECT 1USE D:\VFP\成绩表SET RELATION TO 学号INTO BLIST 学号,B.姓名,B.性别,B.班级,成绩表之间的联接:JOIN WITH <工作区号>/<别名> TO <新表文件名> [FIELDS <字段名表>] FOR <联接条件>例如:SELECT AUSE D:\VFP\学生表SELECT BUSE D:\VFP\成绩表JOIN WITH A FOR 学号=A.学号TO 学生成绩FIELDS 学号,A.姓名,A.班级,课程号,成绩USE学生成绩BROW表文件的更新Update on <关键字段名> from <工作区号>/<别名> replace <字段名1> with <表达式1> [,<字段名2> with <表达式2> …][random]。

04 Visual Foxpro中的数据表的排序与建立索引

04 Visual Foxpro中的数据表的排序与建立索引

如果第一个是.idx文件,其中的单 索引项起作用; 如果第一个不是.idx文件,所有索引 项不起作用。这时系统自动给打开的索 引项编号,首先是.idx文件,然后是结构 .cdx文件的索引项,最后是非结构.cdx文 件的索引项。
(2) 指定主控索引项 如果要让索引项起作用,也就是成为 主控索引项,运用以下命令。 格式1:set order to [<expN>] [ascending|descending] 第N号索引项起作用,<expN>是系 统自动为打开的索引项编的号。 格式2:set order to [<.idx文件名>] [ascending|descending]
4.3 数据表的排:按照某种规则
将记录重新排序,并将重 新排列的记录生成一个新 的数据表文件。
逻辑排序:不改变记录的
物理顺序,建立索引文件
索引排序的说明: 通过建立索引文件,进行逻辑排序, 并不改变记录的物理顺序,而是按索引关 键字或索引表达式的值来建立记录的逻辑 顺序。 索引排序所生成的索引表,记载了 记录的关键字值或索引表达式的值,以 及对应的记录号和应有的排列顺序。 索引表和原数据表一起使用,对数 据表操作时,按索引表排序。
4.3.1 物理排序 命令格式: sort on <字段1> [/a][/d][/c] [,<字段 2> [/a][/d][/c]…] to<文件名>[<范围>]
[for <条件>] [while <条件>] [fields<字段
表>][ascending /descending]
1) 缺省范围和条件时,对所有记录排序。 2) /a: 升序,/d: 降序,/c: 不区分字母大小 写。 3) 同时指定/a和/d,/d起作用;缺省则默
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016/5/6 目录 16
4-4-2 求合计
【命令】SUM [<表达式表>][TO <内存变量名表>] [<范围>] [FOR <条件>] [WHILE <条件>] 【功能】将指定范围内满足条件的记录,按指定的表 达式表分别求和 【说明】<表达式表>是由数值型字段组成, 若省略,则对当前表的所有数值型字段求和 TO <内存变量表>:将求和结果按顺序存入 指定内存变量
4-3-2 索引查询
索引查询命令:FIND、SEEK
1、FIND命令
【命令】 FIND <字符串>/<数值常量> 【功能】在表文件的主控索引中查找定位关键字值与 <字符串>或<数值常量>相匹配的第一条记录 (1)如果找到,则把记录指针指向该记录,并且将 FOUND()函数的值为“真”; (2)如果没有找到与其相符的记录,则将记录指针 指向表的末尾,且将FOUND()函数的值置为“假” ,将EOF()函数的值置为“真”。
2016/5/6 目录 17
4-4-3 求平均值
【命令】AVERAGE [<表达式表>][TO <内存变量表>] [<范围>] [FOR <条件>] [WHILE <条件>]
【功能】对当前表中指定范围内满足条件的记 录的数值型字段求算术平均值 【说明】选项用法同SUM 求合计命令
2016/5/6
目录 18
2016/5/6 目录 19
4-4-5 分类汇总
【格式】TOTAL TO <汇总文件名> ON <关键字段> [FIELDS<字段名表>][<范围>][FOR <逻辑表达式1>] [WHILE <逻辑表达式2>] 【功能】按关键字段对当前表文件的数值型字段进行分 类汇总,形成一个新的文件 【说明】当前表必须在关键字上排序或索引 选择FIELDS <字段名表>短语时对指定的数值型字段求 和,否则对所有的字段求和。将当前表文件中关键字段 值相同的记录分成一类,每一类产生一个记录,各记录 中的汇总字段值为汇总后的和,而非汇总字段值为每一 类的第一条记录的值。
引项重新进行索引进行更新。
【命令】
REINDEX
更新索引文件。
【功能】对数据表重新进行索引,
目录
2016/5/6
8
4-2-5 重新指定主控索引
主控索引:虽然打开多个索引文件,但某时刻只
有第一个索引文件起作用,该索引称为主控索引
【命令】
SET ORDER TO [<数值表达式>/<索引文件名>]
【功能】指定主控索引
字符串,则字符串只能和索引表达式的值精确
匹配
2016/5/6 目录 13
2、SEEK命令
【命令】SEEK <索引值> 【功能】索引文件打开情况下,在表文件的 主控索引中查找与<索引值>的值相匹配的 第一条记录 【说明】SEEK命令可查找字符型、数值型、 日期型、逻辑型表达式的值。命令中表达
式必须有定界符,以确定表达式类型.
【说明】 [数值表达式]指定该数值号的索引为主控 索引;其值为0或缺省,则关闭已打开的索引, 以原表记录的物理顺序进行处理。
2016/5/6 目录 9
4.3
表记录查询
顺序查询
4-3-1
4-3-2
索引查询
2016/5/6
目录 10
4-3-1
• 命令方式
顺序查询
【格式】LOCATE FOR <条件>
第四讲
Visual FoxPro排序、索引 与查询统计
2016/5/6
1
本 讲 课 程 学 习 要 点
4.1 表的排序 4.2 表的索引
4.3 表的查询
4.4 统计与计算
2016/5/6 目录 2
4-1
表的排序
【格式】SORT TO <新文件名> ON <字段名1>[/A|/D] [<字段名2>[/A|/D]] [FIELDS <字段名表>] [<范围>][FOR<条件表达式>][WHILE<逻辑表达式>] 【功能】对当前表文件按照指定的关键字段及指定的条 件,排序产生一个新的数据表文件。 . ON <字段名1>:用作排序的关键字段 • /A按升序排序,/D按降序排序,默认是升序; • 可实现多重排序,首先按<字段名1>排序,如果有可 选项<字段名2>,则在<字段名1>之值相同的情况下, 再按<字段名2>的大小进行排序。
2016/5/6 目录 20
统计命令总结
序号
1 2
命令
统计记录数 Count 求和 Sum
语句
3
4
求平均值
综合计算
Average
Calculate
5
分类汇总
Total To …on …
目录 21
2016/5/6
【功能】按指定条件,定位到第一条符合条件的记录
【说明】(1)若找到符合条件的记录,则?FOUND()
函数返回“真” 。如果没有找到,则?FOUND()为
假,并且指针定位到库底。
一般用DISP 显示当前的记录。 (2)若继续查找符合该条件的其余记录,可使用
CONTINUE
2016/5/6
命令。
目录 11
2016/5/6 目录 12
(3) 如果有多个与关键字匹配的记录,则记录指
针定位于其中的第一条记录上,若查询后续记
录,可用SKIP
(4)执行SET EXACT OFF命令后,用FIND命令查找 字符串时,字符串可以是索引表达式值的全部 或是从首字符开始的一个子串。 执行SET EXACT ON命令后,用FIND命令来查找
2016/5/6 目录 5
4-2-2 打开索引文件
【命令1】USE <文件名> INDEX <索引文件名表> 【功能】打开指定的表文件的同时打开相关的索引 文件,并指定左边第一个为主控索引文件。 【命令2】SET INDEX TO [<索引文件名表>]
【功能】在已打开表文件的前提下,打开相关索引文件 【方法三】在建立索引文件的同时,即打开了该索引 文件,并指定其为主控索引文件。
4-4-4 综合计算
【格式】 CALCULATE <表达式表> [TO <内存变量表>] [<范围>][FOR <逻辑表达式1>][WHILE <逻辑表达式2> 【功能】对当前表中指定范围内满足条件的记录进 行指定的综合计算工作。 函数 含义 【说明】表达式如右表 AVG(数值表达式) 求平均值 求记录个数 CNT() 求最大值 MAX(表达式) 求最小值 MIN(表达式) 求合计值 SUM(表达式)
-4-1 4-4-2 4-4-3 4-4-4 统计记录数 求和 求平均值 分类汇总
4-4-5
综合计算
目录 15
2016/5/6
4-4-1 统计记录数
【命令】COUNT [TO <内存变量>] [<范围>][FOR <条件>][WHILE <条件>] 【功能】统计指定范围内满足条件的记录个数 【说明】默认的范围是ALL 使用TO <内存变量>可将统计的结果 保存到指定的内存变量 使用SET DELETE OFF,则加删除标记 的记录将被统计在内
2016/5/6 目录 3
4-2 表的索引
索引操作:
建立索引、打开索引、 关闭索引、更新索引、
重新指定主索引。
2016/5/6 目录 4
4-2-1 建立索引文件
【命令】INDEX ON <关键字段> TO <单索引文件名> [For <条件表达式>][Ascending|Descending] 【功能】对当前表文件按指定的关键字段建立索引文 件。<关键字段>可以是字段名,也可以是表中字 段的合法表达式。若表达式中包含有几种类型的 字段名,常需要使用类型转换函数将其转换为相 同类型的数据 Ascending 按升序索引;Descending按降序索引。 单索引文件不能使用Descending
2016/5/6 目录 6
4-2-3 关闭索引文件
【命令1】USE 【功能】关闭打开的表文件及所有索引文件
【命令2】SET INDEX TO [0]
【命令3】CLOSE INDEX 【功能】关闭打开的所有单索引文件
目录
2016/5/6
7
4-2-4 更新索引文件
如果对数据表记录进行了增删或记录数据发 生了变化,应及时对已有的索引文件中的索
相关文档
最新文档