在数据库系统中,数据查询与统计是最常见的两种应用。本章讨论顺序查询和索引查询两种传统查询方法,数据工作期、查询设计器和视图设计器3种界面查询工具,以及统计命令与函数。
本章从排序与索引开始介绍数据查询方法。因为查询与SELECT-SQL命令都涉及统计函数,为便于理解,将统计命令提到它们之前介绍。数据库及数据库表等内容安排在章末。由于视图只能存在于数据库中,将它列于最后。
第三章介绍
排序(1)
排序就是根据表的某些字段重排记录。排序后将产生一个新表,其记录按新的顺序排列,但原文件不变。下列命令可以实现排序:
SORT TO <新文件名> ON <字段名1>[/A|/D][/C]
[,<字段名2> [/A|/D][/C]…]
[<范围>][FOR <条件1>][WHILE <条件2>]
[FIELDS <字段名表>| FIELDS LIKE <通配字段名>|
FIELDS EXCEPT <通配字段名>]
一、索引的概念
1、记录的物理顺序与逻辑顺序
文件中的记录一般按照磁盘存储顺序列出,称为物理顺序。排序后,在新文件中形成新的物理顺序。
索引则不同,不改变记录的物理顺序,而是按某个索引关键字建立记录的逻辑顺序。在索引文件中,所有关键字值按照升序或降序排列,每个值对应原文件的一个记录号,这样就确定了记录的物理顺序。
索引(1)
说明:
1)ON子句的字段名表示排序字段。/A表示升序
(默认);/D表示降序; /C表示不区分字段中字母大
小写。不可选用备注型和通用型字段排序。
2)可在ON子句中使用多个字段实现多重排序,
即按主排序字段,对于字段值相同的记录再按第二排
序字段排,依次类推。
3)缺省<范围>、FOR <条件>和WHILE <条件>
等子句表示对所有记录排序。
4) FIELDS 子句指定新表应包含的字段,默认包
含所有字段。
[例3-1]对SB、DBF分别按以下要求排序(P70)
(1)将非主要设备按启用日期降序排序,要求新表仅包含编号、名称、启用日期等3个字段。
(2)将主要设备按部门降序排序,当部门相同时按价格升序排序。
USE SB
SORT TO rqx ON 启用日期/D FIELDS 编号,名称,启用日期;
FOR NOT 主要设备
USE rqx
LIST
SORT TO bmx ON 部门/D,价格 FOR 主要设备
USE bmx
LIST
2、索引的种类
(1)按扩展名分类:有复合索引和单索引,对应扩展名为CDX和IDX。复合索引文件允许包含多个索引,每个索引都有一个索引标识,代表一种记录逻辑顺序。这种索引文件总以压缩文件方式存储。
复合索引文件有结构的和非结构的两种。若定义复合索引文件时为它取了名字,则为非结构的,否则为结构的。打开非结构复合索引文件需使用SET INDEX命令或USE命令中的INDEX子句。结构复合索引文件的主名与表的主名相同,随表的打开而打开,在添加、更改和删除记录时会自动维护。选用它最省事。
单索引文件只包含一个索引,这种类型是为了FOXBASE+兼容。若将它定义为压缩的,将不能被FoxBASE+使用。
以下仅讨论结构复合索引文件和单索引文件。
(2)按功能来分类:索引除具有建立记录逻辑顺序的作用外,还能控制是否允许相同的索引关键字值在不同记录中重复出现,或允许在永久关系中建立参照完整性。分类如P71表.
二、索引的建立:利用表设计器建立索引较方便,不过是界面操作;本节从命令着手介绍,最后才打开表设计器看一下命令执行结果。
命令格式:
INDEX ON <索引关键字> TO <单索引文件名>
|TAG <索引标识名>
[OF<复合索引文件名>][FOR <条件>] [COMPACT]
[ASCE | DESC]
[UNIQ | CAND] [ADDITIVE]
功能:建立索引文件或增加索引标识。
说明:该命令默认建立普通索引型索引文件,UNIQ表示建立唯一索引型索引文件,CAND表示为候选索引型,但须与TAG子句同时使用。
(1)TO子句适于建立单索引文件,其主名由<单索引文件名>指出。
(PACT子句用来指定单索引文件为压缩的。
(3)OF 选项的<复合索引文件名>用来指定非结构复合索引文件的名字,缺省表示建立结构复合索引文件。
(4)记录逻辑顺序默认为升序,也可用ASCE|DESC表示升和降序。
(5)ADDITIVE表示建立本索引文件时并不关闭先前打开的索引文件。
[例3-2] 建立索引文件示例(P72)
USE SB
INDEX ON 名称 TO mcidx
LIST
INDEX ON -价格
精品PPT课件----第三章 查询与统计课件 来自淘豆网m.daumloan.com转载请标明出处.