VFP 6.0数据库基本操作(2)

2019-06-17 09:37

DIR *.* CLOS DATA

索引文件的打开

① 建立索引文件时自动起作用

② 打开库文件后,再打开索引文件

USE RSDAK BROW

SET INDE TO GZ_03 && 打开索引文件 BROW && 观察与刚才的区别

USE

③ 打开库文件的同时打开索引文件

USE RSDAK INDE GZ_03 &&打开库的同时打开索引文件 ? RECN ( ) &&当前记录号是否为1:_______ GO BOTT ? RECN ( )

&&当前记录号为:_______,记录号是否为最大?_______ GO TOP

? RECN ( ) &&当前记录号为:_______ LIST

? RECN ( ) && 当前记录号为:_______

索引文件的关闭

SET INDE TO &&只关闭打开的索引文件 或 USE && 关闭库文件的同时关闭索引文件

多重排序

① 对RSDAK.DBF 数据库先按XB 字段升序,性别相同的再按 CSRQ 字段升序排列,建立多重排序文件 RSDAK_XBCSRQ.DBF :

USE RSDAK

SORT TO RSDAK_XBCSRQ ON XB,CSRQ

LIST && 是否有排序效果_________ USE RSDAK_XBCSRQ

DISP ALL &&注意观察排序效果

USE

② 对 RSDAK.DBF 数据库先按 GZ 字段降序,工资相同的再按 XM 字段升序排列,建立多重排序文件 RSDAK_GZXM.DBF : USE RSDAK

SORT ON GZ /D , XM TO RSDAK_GZXM

LIST && 是否有排序效果_________ USE RSDAK_GZXM

BROW && 注意观察排序效果 USE

多重索引

① 对 RSDAK.DBF 数据库按 “XB”和“BH”字段建立多重索引文件 XBBH.IDX USE RSDAK

INDE TO XBCSRQ ON XB + BH

&&先按性别排序,性别相同的再按编号排序 BROW && 观察索引效果

USE

② 对 RSDAK.DBF 数据库按 “XB”和 “GZ”字段建立多重索引文件 XBGZ.IDX

USE RSDAK

INDE ON XB + STR(GZ) TO XBGZ &&当字段类型不一致时应将非字符型转换为字符型 DISP ALL &&观察索引结果

USE

主索引文件的改变

打开 RSDAK 数据库的同时打开多个索引文件,观察主索引文件所起的作用。 USE RSDAK INDE GZ_03 , GZ_04 , XBBH , XBGZ

BROW &&观察当前起作用的索引文件是__________ SET ORDER TO GZ_04

&&改变主索引,注意主屏幕显示的信息

BROW &&观察当前起作用的索引文件是_______ SET ORDER TO 4

&&再改变主索引,注意主屏幕显示的信息 BROW &&观察当前起作用的索引文件是_________ USE

d) 检索

1、 用条件显示命令进行检索

在命令窗口输入以下命令,注意观察分析结果:

USE RSDAK

LIST FOR XM=’李长贵’ &&列出XM为“李长贵”的记录 LIST FOR XM=’李’ &&列出姓“李”的记录

LIST FOR XM=’李长’ &&列出:_______________的记录 LIST FOR XM=’长贵’ &&结果:_______________

LIST FOR “长”$XM &&列出XM中有“长”字的记录

LIST FOR SUBS(XM, 3 ,2)=”长” &&列出XM中第二个字为“长”的记录。 思考:能否将以上命令中的LIST 改为DISP ?_____________。

2、 用LOCATE 命令进行顺序检索

① 在 RSDAK.DBF 数据库中找出工资超过300 元的第一条记录 USE RSDAK LOCATE FOR GZ>300 DISP

② 继续查找工资超过 300 元的所有记录

CONTINUE DISP

反复执行上述两条命令,直到屏幕显示“END OF LOCATE SCOPE ”时表示检索范围结束。

③ 在RSDAK.DBF 库中找出所有1970 年及以后出生的人员,并观察 FOUND( ) 函数的返回值: USE RSDAK LOCATE FOR YEAR(CSRQ) >= 1970

? FOUND() && 查询记录是否找到 ? EOF() DISP CONT DISP

连续输入CONT 命令,直到检索范围结束。再输入: ? FOUND()

? EOF() && 找不到时记录指针指向______________

USE

3、 索引检索

① 先对 RSDAK.DBF 数据库按 GZ 建立索引,再查找工资等于255.20 元的记录: USE RSDAK

INDE TO RSDAK_GZ ON GZ

FIND 255.20 && 在RSDAK.DBF 中找 工资为 255.20 的记录 DISP

SKIP && 找下一条满足条件的记录

DISP

连续输入SKIP 和 DISP 命令,直至显示的记录不符合条件,可结束查找 ? EOF() && 找不到时记录指针指向__________

② 先对 RSDAK.DBF 数据库按XM 建立索引,再查找姓名为“李长贵”的记录和第一个姓“李”的记录:

USE RSDAK

INDE TO RSDAK_XM ON XM

FIND 李长贵 && 找叫“李长贵”的记录 DISP

FIND 李 && 找姓 “李”的记录 DISP USE

③ 在 RSDAK.DBF 数据库中查找职称为讲师的第一条记录: USE RSDAK

INDE TO RSDAK_ZW ON ZW SEEK “讲师”

DISP

④ 打开RSDAK.DBF 库及 RSDAK_XM.IDX 索引文件,观察用 SEEK 命令查询内存变量的情况:

USE RSDAK INDEX RSDAK_XM QQ=”李长贵” SEEK QQ DISP

WW=”李”

SEEK WW DISP

连续键入SKIP ,DISP 命令,直到显示的记录不符合条件,可结束查找。

若键入:

MZ=”长贵” SEEK MZ

则屏幕显示: no FIND.

思考:为什么找不到:__________________________________

e) 统计与汇总

数据统计(请注意观察主屏幕上的输出信息) ① 记录数统计

USE RSDAK

COUNT &&统计总记录数

COUNT FOR GZ>300 &&统计基本工资在300元以上的人数 COUNT FOR ZW=”讲师” .AND. GZ > 300 TO A1

&&统计职称为讲师且工资超过300元的人数,并将结果保存在 A1中 ? A1

② 数据求和

SUM && 对所有数值型字段纵向求和

SUM BT + JJ && 求 BT + JJ 的总和 SUM GZ,BT,JJ TO B1,B2,B3 FOR ZW=”助教”

&& 统计职务为助教的所有人员的GZ,BT,JJ总和 ? B1,B2

③ 求平均值

USE RSDAK

AVER &&对所有数值型字段求平均值 AVER GZ,BT TO C1,C2 FOR XB=”男”

&& 求性别为男所有人员的平均工资和补贴数

? C1,C2 USE

分类求和

① 对 RSDAK.DBF 数据库中所有数值型字段按性别字段分类求和(汇总),生成名为 XB1.DBF的新数据库文件。

USE RSDAK

LIST STRU &&记下数字型字段的宽度:

INDE TO GZ_XB ON XB

&&分类汇总前应对数据库按关键字进行排序或索引 TOTAL ON XB TO XB1 &&按XB 进行分类汇总 USE XB1

LIST &&观察分类求和的结果

LIST STRU &&观察汇总后的库结构并注意其中的数值字段宽度是否自动增加了______ USE

② 对RSDAK.DBF 的 BT 及 JJ 两字段按性别分类求和,生成名为XB2.DBF的新数据库。 USE RSDAK INDE GZ_XB

TOTAL ON XB TO XB2 FIELD BT,JJ USE XB2 LIST USE

三、 意事项

a) 区分排序与索引。

b) 区分比较FIND与SEEK,LOCATE。 四、 思考题

a) 只打开文件时,记录指针指向几号记录? b) 排序和索引有何区别?

c) 只打开库文件时,记录指针指向第________号记录;

d) 打开库文件的同时打开索引文件,记录指针是否指向1号记录?最后一条记录是否为记录号最大胡记录?

e) 排序和索引有何区别? f) 用LOCATE 命令进行检索,要索引吗?

g) 如果不索引,FIND 与 SEEK 命令能否正常使用?,如果对一字段建立了索引,而用 FIND 或 SEEK 检查另一字段,能否成功?

实验九、库文件操作与常用函数 一、 实验目的及要求

a) 掌握数据库库结构的复制 b) 掌握库文件操作的常用命令

c) 熟悉VFP 6.0的常用函数的功能及初步了解数据库的关联 二、 实验内容及步骤 a) 数据库的复制 ① 整库复制

DIR &&看当前目录下的库文件情况

USE GZ01

COPY TO GZLS &&将GZ01库中所有内容复制到库GZLS.DBF中 DIR &&看是否增加了GZLS.DBF 库文件 USE GZLS LIST

DELE FILE GZLS.DBF &&欲删除GZLS.DBF,能删除吗?为什么? USE &&关闭GZLS.DBF

DIR &&看GZLS.DBF是否还在

ERASE GZLS.DBF &&删除GZLS.DBF DIR &&看GZLS.DBF是否删除

② 部分复制 复制部分字段

USE GZ01

COPY TO GZLS1 FIEl XM,KS,JBGZ

&&将GZ01中的XM,KS,JBGZ三个字段及其内容复制到GZLS1库中 USE GZLS1 LIST USE

按记录范围复制部分记录 USE GZ01 GO 5


VFP 6.0数据库基本操作(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:健康评估各章习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: