清华大学出版社 TSINGHUA UNIVERSITY PRESS 第3章查询与统计
第3章 查询与统计
清华大学出版社 TSINGHUA UNIVERSITY PRESS 31排序与索引 排序 USE sb SORT TO Emx on部门/D价格FOR主要设备 USE bmx LIST &&主窗口显示如下 记录号编号名称启用日期价格部门主要设备备注商标 1037-2磨床07/21/9024129212221 memo ge 2016-2车床01/15/9227132.73211 memo gen 3016-1车床03/05/906204461211Memo 4100-1微机08/12/978810.00121 memo Gen
3.1 排序与索引 排序: USE sb SORT TO bmx ON 部门/D,价格FOR 主要设备 USE bmx LIST && 主窗口显示如下 记录号 编号 名称 启用日期 价格 部门 主要设备 备注 商标 1 037-2 磨床 07/21/90 241292.12 22 .T. memo gen 2 016-2 车床 01/15/92 27132.73 21 .T. memo gen 3 016-1 车床 03/05/90 62044.61 21 .T. Memo gen 4 100-1 微机 08/12/97 8810.00 12 .T. memo Gen
清华大学出版社 7索引 UNIVERSITY PRESS 结构复合索引文件CDx,主名与表的主名相同,自动维护 表31索引功能分类表 索引类型关键字重复值说明 创建修改命令索引个数 普通索引允许 可作为一对多永久关系中的“多方” INDEX 允许多个 唯一索引允许但输出无重为与以前版本兼容而设置 复值 候选索引不允许 可用作主关键字可用于在永久关系中建 INDEX 输入重复值将禁立参照完整性 CREATE TABLE 止存盘 ALTER TABLE 主索引 仅适用数据库表可用于在永久关系中建 CREATE TABLE仅可1个 立参照完整性 ALTER TABLE 建立索引文件或增加索引标识 INDEX ON<索引关键字>TO<单索引文件名>|TAG<索引标识名>OF<复合索引文件名 FOR <R1+>]ICOMPACT) [ASCENDING DESCENDING] [UNIQUE I CANDIDATEJ ADDITIVE 确定主控索引 SET ORDER TO数值表达式><单索引文件名>TAG<索引标识> [ASCENDING DESCENDINGI
索引 结构复合索引文件 .CDX,主名与表的主名相同,自动维护 表3.1 索引功能分类表 索引类型 关键字重复值 说 明 创建修改命令 索引个数 普通索引 允许 可作为一对多永久关系中的“多方” INDEX 允许多个 唯一索引 允许,但输出无重 复值 为与以前版本兼容而设置 候选索引 不允许, 输入重复值将禁 止存盘 可用作主关键字,可用于在永久关系中建 立参照完整性 INDEX CREATE TABLE ALTER TABLE 主索引 仅适用数据库表,可用于在永久关系中建 立参照完整性 CREATE TABLE ALTER TABLE 仅可1个 建立索引文件或增加索引标识 INDEX ON <索引关键字> TO <单索引文件名> | TAG <索引标识名> [OF <复合索引文件名>] [FOR <条件>] [COMPACT] [ASCENDING|DESCENDING] [UNIQUE|CANDIDATE] [ADDITIVE] 确定主控索引 SET ORDER TO [<数值表达式>|<单索引文件名>|[TAG] <索引标识> [ASCENDING|DESCENDING]]
例3)小以我建与一个结构复合索引文件其中包括个索引E (1)记录以价格降序排列,索引标识为普通索引型。 (2)记录以部门升序排列,部门相同时则按价格升序排列索引标识为普通索引型。 (3)记录以部门升序排列,部门相同时则按价格降序排列,索引标识为候选索引型。 USE Sb INDEⅹON价格 taG ig DESCendinG&&建立 SB. CDX,关键字价格JG为普通索引型 索引标识 LIST &&记录已按价格降序排列 INDEX ON部门+STR(价格,2) TAG brig; &&关键字为字符表达式“部门+STR(价格,2)”,索引标识BMG增入 SB. CDX IIST&&索引表达式运算后升序排列使记录按部门升序、部门相同按价格升序排列 INDEX ON VALI部门)-价格/10000 IG bmg1 CANDIDATE &&bmg1为候选索引型索引标识,索引标识增入 SB. CDX IIST&&索引表达式运算后升序排列,使记录按部门升序、部门相同按价格降序排列 SETORDER TO TAG ig&&指定 SB. CDX的索引标识JG为主控索引,JG索引序号为3 LIST &&记录按价格降序排列 SETORDER TO TAG bmjg LIST &&记录按(2)排列
[例3-3] 为SB.DBF建立一个结构复合索引文件,其中包括3个索引: (1) 记录以价格降序排列,索引标识为普通索引型。 (2) 记录以部门升序排列,部门相同时则按价格升序排列,索引标识为普通索引型。 (3) 记录以部门升序排列,部门相同时则按价格降序排列,索引标识为候选索引型。 USE sb INDEX ON 价格 TAG jg DESCENDING && 建立SB.CDX,关键字价格,JG为普通索引型 索引标识 LIST && 记录已按价格降序排列 INDEX ON 部门+STR(价格,9,2) TAG bmjg ; && 关键字为字符表达式“部门+STR(价格,9,2)”,索引标识BMJG增入SB.CDX LIST && 索引表达式运算后升序排列,使记录按部门升序、部门相同按价格升序排列 INDEX ON VAL(部门)-价格/1000000 TAG bmjg1 CANDIDATE ; && bmjg1为候选索引型索引标识,索引标识增入SB.CDX LIST && 索引表达式运算后升序排列,使记录按部门升序、部门相同按价格降序排列 SET ORDER TO TAG jg && 指定SB.CDX的索引标识JG为主控索引, JG 索引序号为3 LIST && 记录按价格降序排列 SET ORDER TO TAG bmjg LIST && 记录按(2)排列
清华大学出版社 3.,2查询命令 RSITY PRESS 顺序查询 LOCATE FOR<条件>[<范围[ WHILE<条件习 CONTINUE USE Sb LOCATE FOR价格<15000 AND NOT主要设备 DISPLAY&&显示:记录号编号名称启用日期价格部门主要设备备注商标 4038-1钴床10/12/895275.0023.F Memo gen CONTINUE ? RECNO O,名称,价格,主要设备&&显示:6复印机10305.01.F. CONTINUE &&状态条显示:已到定位范围末尾。 索引查询 SEEK<表达式> UsE Sb INDEX ON编号 tAG bh SEEK038-1 &&不可写为:SEEK编号="038-1 ?RECNO O &&显示:4 INDEX ON启用日期 TAG gyre SEEK{3/5/90} ?FOUND O &&.显示.T.,表示找到该日期 INDEX ON价格 TAG jg SEEK1000.00
3.2 查询命令 顺序查询: LOCATE FOR <条件> [<范围>] [WHILE <条件>] CONTINUE USE sb LOCATE FOR 价格<15000 AND NOT 主要设备 DISPLAY && 显示: 记录号 编号 名称 启用日期 价格 部门 主要设备 备注 商标 4 038-1 钻床 10/12/89 5275.00 23 .F. Memo gen CONTINUE ?RECNO(),名称,价格,主要设备 && 显示: 6 复印机 10305.01 .F. CONTINUE && 状态条显示:已到定位范围末尾。 索引查询: SEEK <表达式> USE sb INDEX ON 编号 TAG bh SEEK "038-1" && 不可写为: SEEK 编号="038-1" ?RECNO() && 显示:4 INDEX ON 启用日期 TAG qyrq SEEK {3/5/90} ?FOUND() &&.显示.T.,表示找到该日期 INDEX ON 价格 TAG jg SEEK 1000.00