第 5章 查询和视图
5.1 查询和视图设计器
5.2 查询设计
5.4 视图的创建、删除及重命名
5.3 子查询
5.5 使用视图退出
5.6 Rushmore优化技术
5.1 查询和视图设计器
5.1.3 联接选项卡退出
5.1.2 字段选项卡
5.1.1 进入查询和视图设计器
5.1.5 排序选项卡
5.1.4 筛选选项卡
5.1.6 分组依据选项卡
5.1.7 更新条件选项卡
5.1.8 杂项选项卡
5.1.1 进入查询和视图设计器
( 1) 命令方式,CREATE QUERY
CREATE VIEW
说明:对于视图设计器,必须先打开相应的数据库。
( 2) 菜单方式
( 3) 选项卡,
字段选项卡:用来选定包含在查询结果中的字段。
联接选项卡:用来确定数据表或视图之间的联接关系。
筛选选项卡:用来查找一个特定的数据子集。
排序依据选项卡:用来指定查询结果的排序方式。
分组依据选项卡:用来将一组类似的记录生成一个结果记录更新条件选项卡:只存在于视图设计器中,指定更新条件杂项选项卡:指定是否对重复记录进行检索,以及是否对记录做限制。
5.2 查询设计
5.2.3 定向输出查询结果退出
5.2.2 交叉表查询
5.2.1 创建查询
5.2.4 运行查询
5.2.1 创建查询
1,利用“查询向导”建立查询示例 1:使用查询向导在课程表中建立查询。要求查询结果中包含如下字段:教师、课程、教室、时间。
示例 2:使用查询向导在学生表与分数表之间建立查询,查询结果中包含如下字段:学号、姓名、班级、课程号、成绩。
2,使用“查询设计器”建立查询
( 1)菜单方式示例 1:使用查询设计器对课程表进行查询。要求查询结果中包含如下字段:教师、课程、教室、时间。
示例 2:使用查询设计器对学生表和分数表进行查询,查询结果中包含如下字段:学号、姓名、班级、课程号、成绩。
2,使用“查询设计器”建立查询
( 1)菜单方式示例 3,使用查询设计器对学生表、分数表和课程表进行查询,查询结果中包含如下字段:学号、姓名、班级、课程、成绩、教师。
( 2)命令方式
CREATE QUERY [<文件名 >/?] [NOWAIT]
MODIFY QUREY [<文件名 >/?] [WINDOW <窗口名 >] [IN
SCREEN] [NOWAIT] [SAVE]
说明,1) WINDOW <窗口名 >指定一个窗口,“查询设计器”将采用该窗口的特性。
2) IN SCREEN强制性地把“查询设计器”在主窗口打开。
3) NOWAIT打开“查询设计器”后,继续程序的执行,只在程序中有效。
4) SAVE激活另一窗口后,保持“查询设计器”的打开状态,只在程序中有效。
5.2.2 交叉表查询交叉表以电子数据表的格式显示数据,只用于一个数据表中有关数据的查询,可以使用查询向导进行。
5.2.3 定向输出查询结果定向输出查询结果可以确定查询结果的输出格式。打开查询设计器窗口后,可以使用“查询”菜单中的“查询去向”指定格式:
1)浏览:将查询结果输出到浏览窗口。
2)临时表:将查询结果存入一个临时的数据表中,关闭此数据表时,查询结果丢失。
3)表:将查询结果存入一个数据表中,关闭此数据表时,查询结果保留。
4)图形:将查询结果以图形方式输出。
5)屏幕:将查询结果输出到屏幕上。
6)报表:将查询结果输出到报表中。
7)标签:将查询结果输出到标签中。
5.2.4 运行查询运行查询可以得到查询结果 。
1) 在,查询设计器,处于打开状态时,使用,查询,菜单的
,运行查询,选项 。
2) 命令,DO <查询文件名 >
5.4 视图的创建、删除及重命名
5.4.3 重命名视图退出
5.4.2 修改视图
5.4.1 创建视图
5.4.4 删除视图
5.4.1 创建视图
1) 视图向导
2) 视图设计器
3) 命令方式,CREATE SQL VIEW <视图名 > [REMOTE] AS
<SELECT指令 >
示例,CREATE SQL VIEW ST1 AS SELECT * FROM 教学管理 !学生表
5.4.2 修改视图
1) 命令方式,MODIFY VIEW <视图名 >
示例,OPEN DATABASE 教学管理
MODIFY VIEW ST1
2) 数据库设计器视图 不能单独存在,必须依赖于某一数据库而存在,并且只有在打开相关的数据库后,才能创建和使用视图。有远程视图和本地视图。
5.4.3 重命名视图命令格式,RENAME VIEW <原视图名 > TO <新视图名 >
示例,将,教学管理,数据库中的 ST1视图重新命名为 ST2。
RENAME VIEW ST1 TO ST2
5.4.4 删除视图
1) 命令格式,DELETE VIEW <视图名 >
说明:在删除视图之前,包含此视图的数据库必须是打开的,而且必须是当前数据库 。
示例,将,教学管理,数据库中的 ST2视图删除 。
OPEN DATABASE 教学管理
DELETE VIEW ST2
2) 菜单方式,,数据库,菜单的,移去,选项
5.5 使用视图退出
5.5.2 显示视图的结构
5.5.1 视图的打开、关闭及显示
5.5.1 视图的打开、关闭及显示
1) 命令方式,USE [<视图名 >]
BROWSE
说明:使用 USE命令前,应先打开包含此视图的数据库 。
示例,OPEN DATABASE 教学管理
USE 视图 2
BROWSE
USE
2) 菜单方式,,数据库,菜单的,浏览,选项
5.5.2 显示视图结构命令,USE <视图名 > NODATA
说明:此命令只显示视图的结构,而不加载任何数据内容
5.6 Rushmore优化技术
1) Rushmore优化技术 是一种高效的数据存取技术,可以加快对数据的操作速度 。
2) Rushmore优化技术主要包括 三个方面,一是进行了逻辑表达式的优化处理;二是采用了 B-树索引结构;三是采用了索引压缩技术,
节省存储空间。
3) Rushmore优化技术既可用在 单表查询 中,也可用在 多表查询中 。
当 访问单个数据表时,可以在出现 FOR 子句的任何地方利用
Rushmore 技术;当访问多个数据表时,SELECT - SQL 查询取代了所有的 Rushmore 优化技术。
4)使用 FOR子句 的命令,AVERAGE,COPY TO ARRAY,COUNT、
CALCULATE,BROWSE,DELETE,DISPLAY,REPLACE,INDEX,SORT、
CHANGE,EXPORT,RECALL,LIST,SUM,COUNT,COPY TO,LOCATE、
SCAN,JOIN WITH,EDIT,LABEL,TOTAL,REPORT
5.6 Rushmore优化技术
5) 基本可优化表达式,Rushmore 技术取决于 FOR 子句或 SQL
WHERE 子句中是否出现基本可优化表达式。一个基本可优化表达式可以是整个表达式,也可以是表达式的一部分,并且可以对基本表达式进行各种组合构成复杂的可优化表达式。
6) 基本可优化表达式的 形式,
<索引表达式 > 关系运算符 <常量表达式 >
或者 <常量表达式 > 关系运算符 <索引表达式 >
说明,<索引表达式 >是一个在建立索引文件时,ON子句中指定的索引表达式;,关系运算符,是下列关系操作符之一,<,>,=、
<=,>=,<>,#,== 或 !=;,常量表达式,可以是任何常量及运算符组成的合法表达式 。
5.6 Rushmore优化技术
7) 基本表达式的优化组合,
基本表达式 操作符 基本表达式 查询结果可优化 AND 可优化 全部可优化可优化 OR 可优化 全部可优化可优化 AND 不可优化 部分可优化可优化 OR 不可优化 不可优化不可优化 AND 不可优化 不可优化不可优化 OR 不可优化 不可优化
—— NOT 可优化 全部可优化
—— NOT 不可优化 不可优化
5.6 Rushmore优化技术
8) 复杂表达式的组合优化,
表 达 式 操作符 表 达 式 结 果全部可优化 AND 全部可优化 全部可优化全部可优化 OR 全部可优化 全部可优化全部可优化 AND 部分可优化 部分可优化全部可优化 OR 部分可优化 部分可优化全部可优化 AND 不可优化 部分可优化全部可优化 OR 不可优化 不可优化
—— NOT 全部可优化 全部可优化部分可优化 AND 部分可优化 部分可优化部分可优化 OR 部分可优化 部分可优化部分可优化 AND 不可优化 部分可优化部分可优化 OR 不可优化 不可优化
—— NOT 部分可优化 不可优化不可优化 AND 不可优化 不可优化不可优化 OR 不可优化 不可优化
—— NOT 不可优化 不可优化
5.6 Rushmore优化技术
9) 使用 Rushmore优化技术时,注意以下几点,
如果使用了 Scope范围子句,必须 是 ALL 或 REST,不能是 NEXT 或
RECORD 范围子句 。
Rushmore技术对指定了 UNIQUE的索引和被 SET FILTER语句过滤的索引将不起作用 。
不要用 SET ORDER TO语句指定主索引文件 。
通过设置 SET DELETED OFF可以改进 Rushmore技术的性能 。
当内存较少时,数据检索将继续进行,但不被优化 。
对单条命令,禁止 Rushmore使用 NOOPTIMIZE选项 。
SET OPTIMIZE命令可以在全局范围内对所有受益于 Rushmore的命令禁止或允许使用 Rushmore。 命令格式为:
SET OPTIMIZE ON/OFF
说明,SET OPTIMIZE OFF禁止使用 Rushmore,SET OPTIMIZE ON允许使用 Rushmore,默认设置是 ON。
5.1 查询和视图设计器
5.2 查询设计
5.4 视图的创建、删除及重命名
5.3 子查询
5.5 使用视图退出
5.6 Rushmore优化技术
5.1 查询和视图设计器
5.1.3 联接选项卡退出
5.1.2 字段选项卡
5.1.1 进入查询和视图设计器
5.1.5 排序选项卡
5.1.4 筛选选项卡
5.1.6 分组依据选项卡
5.1.7 更新条件选项卡
5.1.8 杂项选项卡
5.1.1 进入查询和视图设计器
( 1) 命令方式,CREATE QUERY
CREATE VIEW
说明:对于视图设计器,必须先打开相应的数据库。
( 2) 菜单方式
( 3) 选项卡,
字段选项卡:用来选定包含在查询结果中的字段。
联接选项卡:用来确定数据表或视图之间的联接关系。
筛选选项卡:用来查找一个特定的数据子集。
排序依据选项卡:用来指定查询结果的排序方式。
分组依据选项卡:用来将一组类似的记录生成一个结果记录更新条件选项卡:只存在于视图设计器中,指定更新条件杂项选项卡:指定是否对重复记录进行检索,以及是否对记录做限制。
5.2 查询设计
5.2.3 定向输出查询结果退出
5.2.2 交叉表查询
5.2.1 创建查询
5.2.4 运行查询
5.2.1 创建查询
1,利用“查询向导”建立查询示例 1:使用查询向导在课程表中建立查询。要求查询结果中包含如下字段:教师、课程、教室、时间。
示例 2:使用查询向导在学生表与分数表之间建立查询,查询结果中包含如下字段:学号、姓名、班级、课程号、成绩。
2,使用“查询设计器”建立查询
( 1)菜单方式示例 1:使用查询设计器对课程表进行查询。要求查询结果中包含如下字段:教师、课程、教室、时间。
示例 2:使用查询设计器对学生表和分数表进行查询,查询结果中包含如下字段:学号、姓名、班级、课程号、成绩。
2,使用“查询设计器”建立查询
( 1)菜单方式示例 3,使用查询设计器对学生表、分数表和课程表进行查询,查询结果中包含如下字段:学号、姓名、班级、课程、成绩、教师。
( 2)命令方式
CREATE QUERY [<文件名 >/?] [NOWAIT]
MODIFY QUREY [<文件名 >/?] [WINDOW <窗口名 >] [IN
SCREEN] [NOWAIT] [SAVE]
说明,1) WINDOW <窗口名 >指定一个窗口,“查询设计器”将采用该窗口的特性。
2) IN SCREEN强制性地把“查询设计器”在主窗口打开。
3) NOWAIT打开“查询设计器”后,继续程序的执行,只在程序中有效。
4) SAVE激活另一窗口后,保持“查询设计器”的打开状态,只在程序中有效。
5.2.2 交叉表查询交叉表以电子数据表的格式显示数据,只用于一个数据表中有关数据的查询,可以使用查询向导进行。
5.2.3 定向输出查询结果定向输出查询结果可以确定查询结果的输出格式。打开查询设计器窗口后,可以使用“查询”菜单中的“查询去向”指定格式:
1)浏览:将查询结果输出到浏览窗口。
2)临时表:将查询结果存入一个临时的数据表中,关闭此数据表时,查询结果丢失。
3)表:将查询结果存入一个数据表中,关闭此数据表时,查询结果保留。
4)图形:将查询结果以图形方式输出。
5)屏幕:将查询结果输出到屏幕上。
6)报表:将查询结果输出到报表中。
7)标签:将查询结果输出到标签中。
5.2.4 运行查询运行查询可以得到查询结果 。
1) 在,查询设计器,处于打开状态时,使用,查询,菜单的
,运行查询,选项 。
2) 命令,DO <查询文件名 >
5.4 视图的创建、删除及重命名
5.4.3 重命名视图退出
5.4.2 修改视图
5.4.1 创建视图
5.4.4 删除视图
5.4.1 创建视图
1) 视图向导
2) 视图设计器
3) 命令方式,CREATE SQL VIEW <视图名 > [REMOTE] AS
<SELECT指令 >
示例,CREATE SQL VIEW ST1 AS SELECT * FROM 教学管理 !学生表
5.4.2 修改视图
1) 命令方式,MODIFY VIEW <视图名 >
示例,OPEN DATABASE 教学管理
MODIFY VIEW ST1
2) 数据库设计器视图 不能单独存在,必须依赖于某一数据库而存在,并且只有在打开相关的数据库后,才能创建和使用视图。有远程视图和本地视图。
5.4.3 重命名视图命令格式,RENAME VIEW <原视图名 > TO <新视图名 >
示例,将,教学管理,数据库中的 ST1视图重新命名为 ST2。
RENAME VIEW ST1 TO ST2
5.4.4 删除视图
1) 命令格式,DELETE VIEW <视图名 >
说明:在删除视图之前,包含此视图的数据库必须是打开的,而且必须是当前数据库 。
示例,将,教学管理,数据库中的 ST2视图删除 。
OPEN DATABASE 教学管理
DELETE VIEW ST2
2) 菜单方式,,数据库,菜单的,移去,选项
5.5 使用视图退出
5.5.2 显示视图的结构
5.5.1 视图的打开、关闭及显示
5.5.1 视图的打开、关闭及显示
1) 命令方式,USE [<视图名 >]
BROWSE
说明:使用 USE命令前,应先打开包含此视图的数据库 。
示例,OPEN DATABASE 教学管理
USE 视图 2
BROWSE
USE
2) 菜单方式,,数据库,菜单的,浏览,选项
5.5.2 显示视图结构命令,USE <视图名 > NODATA
说明:此命令只显示视图的结构,而不加载任何数据内容
5.6 Rushmore优化技术
1) Rushmore优化技术 是一种高效的数据存取技术,可以加快对数据的操作速度 。
2) Rushmore优化技术主要包括 三个方面,一是进行了逻辑表达式的优化处理;二是采用了 B-树索引结构;三是采用了索引压缩技术,
节省存储空间。
3) Rushmore优化技术既可用在 单表查询 中,也可用在 多表查询中 。
当 访问单个数据表时,可以在出现 FOR 子句的任何地方利用
Rushmore 技术;当访问多个数据表时,SELECT - SQL 查询取代了所有的 Rushmore 优化技术。
4)使用 FOR子句 的命令,AVERAGE,COPY TO ARRAY,COUNT、
CALCULATE,BROWSE,DELETE,DISPLAY,REPLACE,INDEX,SORT、
CHANGE,EXPORT,RECALL,LIST,SUM,COUNT,COPY TO,LOCATE、
SCAN,JOIN WITH,EDIT,LABEL,TOTAL,REPORT
5.6 Rushmore优化技术
5) 基本可优化表达式,Rushmore 技术取决于 FOR 子句或 SQL
WHERE 子句中是否出现基本可优化表达式。一个基本可优化表达式可以是整个表达式,也可以是表达式的一部分,并且可以对基本表达式进行各种组合构成复杂的可优化表达式。
6) 基本可优化表达式的 形式,
<索引表达式 > 关系运算符 <常量表达式 >
或者 <常量表达式 > 关系运算符 <索引表达式 >
说明,<索引表达式 >是一个在建立索引文件时,ON子句中指定的索引表达式;,关系运算符,是下列关系操作符之一,<,>,=、
<=,>=,<>,#,== 或 !=;,常量表达式,可以是任何常量及运算符组成的合法表达式 。
5.6 Rushmore优化技术
7) 基本表达式的优化组合,
基本表达式 操作符 基本表达式 查询结果可优化 AND 可优化 全部可优化可优化 OR 可优化 全部可优化可优化 AND 不可优化 部分可优化可优化 OR 不可优化 不可优化不可优化 AND 不可优化 不可优化不可优化 OR 不可优化 不可优化
—— NOT 可优化 全部可优化
—— NOT 不可优化 不可优化
5.6 Rushmore优化技术
8) 复杂表达式的组合优化,
表 达 式 操作符 表 达 式 结 果全部可优化 AND 全部可优化 全部可优化全部可优化 OR 全部可优化 全部可优化全部可优化 AND 部分可优化 部分可优化全部可优化 OR 部分可优化 部分可优化全部可优化 AND 不可优化 部分可优化全部可优化 OR 不可优化 不可优化
—— NOT 全部可优化 全部可优化部分可优化 AND 部分可优化 部分可优化部分可优化 OR 部分可优化 部分可优化部分可优化 AND 不可优化 部分可优化部分可优化 OR 不可优化 不可优化
—— NOT 部分可优化 不可优化不可优化 AND 不可优化 不可优化不可优化 OR 不可优化 不可优化
—— NOT 不可优化 不可优化
5.6 Rushmore优化技术
9) 使用 Rushmore优化技术时,注意以下几点,
如果使用了 Scope范围子句,必须 是 ALL 或 REST,不能是 NEXT 或
RECORD 范围子句 。
Rushmore技术对指定了 UNIQUE的索引和被 SET FILTER语句过滤的索引将不起作用 。
不要用 SET ORDER TO语句指定主索引文件 。
通过设置 SET DELETED OFF可以改进 Rushmore技术的性能 。
当内存较少时,数据检索将继续进行,但不被优化 。
对单条命令,禁止 Rushmore使用 NOOPTIMIZE选项 。
SET OPTIMIZE命令可以在全局范围内对所有受益于 Rushmore的命令禁止或允许使用 Rushmore。 命令格式为:
SET OPTIMIZE ON/OFF
说明,SET OPTIMIZE OFF禁止使用 Rushmore,SET OPTIMIZE ON允许使用 Rushmore,默认设置是 ON。