文档介绍:第3章查询与统计
排序与索引
排序:
USE sb
SORT TO bmx ON 部门/D,价格 FOR 主要设备
USE bmx
LIST && 主窗口显示如下
记录号编号名称启用日期价格部门主要设备备注商标
1 037-2 磨床 07/21/90 22 .T. memo gen
2 016-2 车床 01/15/92 21 .T. memo gen
3 016-1 车床 03/05/90 21 .T. Memo gen
4 100-1 微机 08/12/97 12 .T. memo Gen
索引
,主名与表的主名相同,自动维护
索引功能分类表
索引类型
关键字重复值
说明
创建修改命令
索引个数
普通索引
允许
可作为一对多永久关系中的“多方”
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-3] ,其中包括3个索引:
(1) 记录以价格降序排列,索引标识为普通索引型。
(2) 记录以部门升序排列,部门相同时则按价格升序排列,索引标识为普通索引型。
(3) 记录以部门升序排列,部门相同时则按价格降序排列,索引标识为候选索引型。
USE sb
INDEX ON 价格 TAG jg DESCENDING && ,关键字价格,JG为普通索引型索引标识
LIST && 记录已按价格降序排列
INDEX ON 部门+STR(价格,9,2) TAG bmjg ;
&& 关键字为字符表达式“部门+STR(价格,9,2)”,
LIST && 索引表达式运算后升序排列,使记录按部门升序、部门相同按价格升序排列
INDEX ON VAL(部门)-价格/1000000 TAG bmjg1 CANDIDATE ;
&& bmjg1为候选索引型索引标识,
LIST && 索引表达式运算后升序排列,使记录按部门升序、部门相同按价格降序排列
SET ORDER TO TAG jg && , JG 索引序号为3
LIST && 记录按价格降序排列
SET ORDER TO TAG bmjg
LIST && 记录按(2)排列
查询命令
顺序查询:
LOCATE FOR <条件> [<范围>] [WHILE <条件>]
CONTINUE
USE sb
LOCATE FOR 价格<15000 AND NOT 主要设备
DISPLAY && 显示: 记录号编号名称启用日期价格部门主要设备备注商标
4 038-1 钻床 10/12/89 23 .F. Memo gen
CONTINUE
?O(),名称,价格,主要设备&& 显示: 6 复印机 .F.
CONTINUE && 状态条显示:已到定位范围末尾。
索引查询:
SEEK <表达式>
USE sb
INDEX ON 编号 TAG bh
SEEK "038-1" && 不可写为: SEEK 编号="038-1"
?O() && 显示:4
INDEX ON 启用日期 TAG qyrq
SEEK {3/5/90}
?FOUND() &&..,表示找到该日期
INDEX ON 价格 TAG jg
SEEK
数据工作期工作区的查询
部门代码表和增值表
: :
结构: bmdm(代码 c(2),名称 c(6)) 结构: zz(编号c(5), 增