当前位置:首页 >> 图片/文字技巧 >>

VFP第4章 查询和视图


第4章 查询和视图 本章提要
?查询和视图概述 ?查询的创建和使用 ?SELECT-SQL语句 ?视图的创建和使用

第4章 查询和视图 学习目标
?理解查询的有关概念 ?掌握查询的创建方法 ?掌握修改和使用查询的方法 ?了解简单的SELECT-SQL命令 的用法

4.1 查询和视图概述
?

?

?

查询的定义:“查询”是指向一个数据库 发出检索(查找)信息的请求,它使用一些 条件提取特定的记录。 查询的数据源:“数据源”就是检索信息 的数据来源,可以是自由表、数据库表或 视图(类型);单张表或多张表(数量)。 查询文件:创建查询后会在磁盘上生成一 个扩展名为.qpr的查询文件;运行查询文 件后还会生成一个编译好的扩展名为.qpx 的文件。

4.1 查询和视图概述
?

?

查询结果:通过运行查询文件可得到一个 基于表和视图的动态数据集合,这就是我 们想要的查询结果。查询结果可以不同的 形式来保存,查询结果是只读的。 查询本质:SELECT-SQL命令的可视化设计 方法。

【注】查询文件(.qpr)中保存的是实现查询的 SELECT-SQL命令,并不是查询结果。查询和视 图设计器在本质上都是SELECT-SQL命令的可视 化设计方法。

4.2 查询的创建和使用
4.2.1 使用查询设计器建立查询

【例4.1】查询成绩在80分以上(含80分)的 课程代号、课程名、学生学号和成绩,且要 求结果按课程代号升序排序,课程相同时按 成绩的降序排序。 ? 打开查询设计器
添加表或视图 ? 输出字段 ? 设置筛选条件 Like、Is Null、Between、In ? 设置排序依据 ? 运行查询 DO ×××.QPR
?

4.2.1 使用查询设计器建立查询

【例4.2】基于课程表(kc)和成绩表(cj),查询 每门课选课人数、平均成绩、最高分和最低分, 查询输出字段包含课程代号、课程名、选课人 数、平均成绩、最高分和最低分,且按平均成 绩降序排列。
?

打开查询设计器
设置分组依据 ? “杂项”设置 ? 输出查询结果 ? 关于多表联接 INNER|LEFT|RIGHT|FULL JOIN
?

4.2.2 使用向导创建交叉表查询(*)

【例4.3】在学生成绩表中,一个学生的各门课 程的成绩分布在多行上,如能将一个学生的各 门课程的成绩放在一行上,并在最后一列有一 个总分(如下表),这就要用交叉表查询来实现。
学号 040402001 040402002 ?? 课程1 87 62 课程2 69 87 课程3 67 69 课程4 80 81 课程5 75 91 课程6 65 74 总分 443 464

? ? ? ?

步骤1:字段选取 步骤2:定义布局 步骤3:加入总结信息 步骤4:完成

4.3 SELECT-SQL语句
4.3.1 概述 ? CREATE TABLE-SQL ? CREATE CURSOR-SQL ? ALTER TABLE-SQL ? INSERT-SQL ? UPDATE-SQL ? DELETE-SQL ? SELECT-SQL

4.3.2 SELECT-SQL命令 利用查询设计器所做的设计,实质是创建了一个 SELECT-SQL命令。可以查看或编辑修改该命令: 在查询设计器打开状态下,执行菜单命令“查看 SQL” ; ? 通过命令 Modify Command ×××.qpr 创建、编辑 和修改SELECT语句。 ? 用TYPE ×××.qpr命令在主窗口中显示Select语句。 查询设计器实质上是系统提供的一个帮助用户编写 SELECT-SQL命令的可视化工具。其基本语法为: SELECT [ALL|DISTINCT][TOP n[PERCENT]] …
?

FROM … [INNER|LEFT|RIGHT] JOIN … ON … [WHERE] [GROUP BY] [ORDER BY] [HAVING] [INTO|TO]

SELECT-SQL语句主要组成部分





查询子名
FROM子句

查询设计器
添加表或视图

指定数据源表

指定输出字段
数据源的记录筛选 指定结果顺序 定义记录的分组

SELECT子句
WHERE子句 ORDER BY子句 GROUP BY子句

字段
联接 筛选 排序依据 分组依据及满足条件 查询去向

确定源表间的联接 JOIN…ON…子句

筛选结果记录
指定输出类型 指定有无重复记录 指定结果的范围

HAVING子句
INTO子句|TO子句 ALL|DISTINCT TOP n[PERCENT]

杂项

SELECT-SQL命令主要参数说明
?

? ? ?

?
?

?

?

输出字段:指定包含在查询结果中的字段。可以用AS引起一 个类似输出字段标题的别名;也可用*代表数据源中所有字 段;也可以是常量、数据源中的字段、函数或构造的表达式。 FROM:指定数据源。 联接:指定多表查询时的联接类型和联接条件。 INTO:指定查询结果保存何处。如果同时包括INTO和TO子句 则TO子句不起作用。INTO后可跟ARRAY、CURSOR、DBF|TABLE TO FILE ?[ADDITIVE]|TO PRINTER|TO SCREEN: WHERE <条件>:指定筛选条件。可以包含最多两个同级子查 询,子查询要用括号括起来。 GROUP BY:对查询结果进行分组。不能以备注型或通用型以 外字段作为分组依据。 HAVING <条件>:指定查询结果满足的筛选条件。通常和 GROUP BY子句一起使用。

4.3.3 SELECT-SQL应用举例 1. 基于单个表的查询示例
?

基于教师表js,查询所有教师的工号和姓名。 SELECT js.gh,js.xm FROM jxsj!js 基于学生表xs,查询姓陈的学生情况。 SELECT * FROM xs WHERE Like(“陈*”, xm) 或

?

SELECT * FROM xs WHERE xm LIKE "陈%"
?

查询成绩表cj中课程代号为“60001”的学生的学号和 成绩,且要求查询结果按成绩降序排列。 SELECT xh,cj FROM cj WHERE kcdh="60001"; ORDER BY cj DESC

4.3.3 SELECT-SQL应用举例 2. 基于多个表的查询示例
?

?

基于学生表xs和院系专业表yxzy查询学生的学号、 姓名和专业名称。 SELECT xs.xh,xs.xm,yxzy.zymc; FROM xs INNER JOIN yxzy; ON xs.yxzydm=yxzy.yxzydm 基于成绩表cj和学生表xs查询有不及格成绩的学生 的学号和姓名,且有多门课程不及格的学生只显示 一次。 SELECT DISTINCT cj.xh,xs.xm; FROM xs INNER JOIN cj ON xs.xh=cj.xh; WHERE cj.cj<60

4.3.3 SELECT-SQL应用举例 3. 含有合计字段的查询示例
?

?

基于成绩表cj,查询各门课程的最高分,要求输出课 程代码及最高分。 SELECT cj.kcdm AS 课程代码,MAX(cj) AS 最高分; FROM cj GROUP BY cj.kcdm 基于成绩表cj和课程表kc,查询每门课程的课程代码、 课程名称、人数、平均分、最高分和最低分,并把查 询结果保存到kc_maxcj表文件中。
SELECT cj.kcdm AS 课程代码,kc.kcmc AS 课程名称,; COUNT(*) AS 人数,AVG(cj) AS 平均分,; MAX(cj) AS 最高分,MIN(cj) AS 最低分; GROUP BY cj.kcdm INTO TABLE kc_maxcj

4.3.3 SELECT-SQL应用举例 4. 子查询示例
?

基于教师表js和任课表rk,查询已担任课程的教师 的姓名和系名。 SELECT xim.ximing,js.xm; FROM js INNER JOIN xim; ON jx.xdh=xim.xdh; WHERE js.gh IN(SELECT rk.gh FROM rk)

4.3.3 SELECT-SQL应用举例 5. 组合查询示例
?

查询全校师生名单。要求输出字段为:系名、类别 (是教师还是学生)、姓名和性别,并按系名排序。

查询效果

4.3.3 SELECT-SQL应用举例 5. 组合查询示例 ? 基于成绩表cj,查询各个分数段的学生得分人数。要 求结果中包含两个字段:分数段类型和人数,并按分 数段类型降序排序。

4.3 视图的创建和使用
视图是从一个或多个数据表中导出的 “表”。视图是不能单独存在的,它是依赖 于某一数据库而存在的。只有打开与视图相 关的数据库才能创建和使用视图。视图可以 增强数据的共享性和安全性。 由于数据库中数据的来源不同,视图可 分为本地视图和远程视图。

4.4.1 创建本地视图
使用视图设计器 与查询设计器类似 ? 使用 CREAT SQL VIEW 命令 格式: CREATE SQL VIEW 视图名 AS SQL-SELECT语句 例: Creat SQL View xs_view As Select * From aa!xs
?

csql="Select * From aa!js"
Creat SQL View js_view As &csql

4.4.2 用视图更新源表数据
?

?

使表可更新 首先要设置“主关键字”,才能设置“可更新 字段”,最后别忘了选择“发送SQL更新”。(最 少设置一个字段作为“主关键字”和“可更新字 段”) 设置关键字段 关键字段是唯一的标识那些已在本地修改过 的表中的更新记录。
? ?

指定可更新字段 控制如何检查更新冲突

4.4.3 创建参数化视图 参数化视图可用来限定视图的作用范围,而使 用参数化视图可以避免每取一部分记录就需要单独 创建一个视图的情况。只要在SQL-SELECT语句中加 一条WHERE子句即可。
【例】基于cj表创建一个参数化视图,根据提供的课 程代号下载该课程的成绩记录。 ? 用“视图设计器” ? 用CREATE SQL-VIEW命令 CREATE SQL VIEW kcdh_view AS SELECT * FROM cj; WHERE cj.kcdh=? 课程代号 【注】参数的类型一定要和选择的字段类型相符,也 就是说输入的类型要和字段类型相一致。

4.4.4 视图的使用 1. 访问视图 ? 使用USE命令并指定视图名来打开一个视图 ? 使用USE命令关闭视图 ? 在“浏览”窗口中,显示视图记录 ? 在“数据工作期”窗口中显示打开的视图 ? 在文本框、表格控件、表单或报表中使用视图为 数据源 (1)视图的打开与浏览(打开视图会自动打开基 表;用USE命令可在多个工作区中打开同一个视图 而不必使用AGAIN子句) (2)关闭视图的基表
2. 视图的修改、重命名与删除 MODIFY VIEW、RENAME VIEW、DELETE VIEW

4.4.4 视图的使用 3. 用数据字典定制视图 由于视图存于数据库中,所以可以为视图创建标 题、视图注释及视图的字段注释、视图字段的默认 值、字段级和记录级有效性规则以及规则信息。
4. 集成视图 集成视图是指在其他视图的基础上再创建视图。


赞助商链接
相关文章:
第4章 查询与视图
查询和 第 4 章 查询和视图 4.1 学习目标 理解查询、视图的概念和查询的本质...VFP中创建查询可以使用查询向导、查询设计器和SELECT-SQL命令。 解析 但无论是...
第五章 查询与视图
免费 第五章 查询与视图2 20页 免费 第五章创建查询与视图 8页 1财富值喜欢此文档的还喜欢 第5章查询和视图 146页 免费 vfp_第四章_查询和视图 42页 2财...
第五章 查询与视图
江苏计算级二级vfp重点 查询与视图江苏计算级二级vfp重点 查询与视图隐藏>> 第五章查询与视图查询与视图有很多类似之处,创建视图与创建查询的步骤也非常相似,视图兼...
VFP查询与视图习题及答案
VFP查询与视图习题及答案_IT认证_资格考试/认证_教育专区。查询与视图习题六 一...语句两种方法建立名称为“补考”的查询,对 第四章上机题中的 XSXK.DBC 数据...
第五章 创建查询和视图
第二章 VFP语言基础 第三章 表的创建和使用 第四章 数据库的创建和使用......查询的数据源:可以是一张或多张相关的自由表,数据库表,视图. 查询的数据源 ...
VFP查询与视图
一、选择题 1、下列关于查询的说法中,不正确的是 A)查询是预先定义好的一个...vfp第5章查询与视图 暂无评价 35页 免费 VFP 课件 第4章 查询与视... 16...
数据库第四章补充练习
第四章一、选择题 1、查询和视图的共同点是 A)有相应的 SQL 语句 选项卡。...视图设计器只比查询设计器多一个“更新条件”选项卡 D)远程视图使用 VFP 的 ...
vfp第5章
VFP课件第5章 56页 1下载券 喜欢此文档的还喜欢 第4章 查询与视图答案 暂无...v​f​p​第​五​章​的​一​些​易​考​点试卷...
第5章VFP视图与查询(书稿)
第5章VFP视图与查询(书稿)_院校资料_高等教育_教育专区。呕心沥血,一个一个字敲的,书稿 第5 章 视图与查询在设计数据库时, 各个数据表的结构是根据整个数据...
第五章 查询与视图
第二章 常量与变量 第三章 数据库及其基本操... 第四章 关系数据库语言S....第五章 查询与视图 二级vfp二级vfp隐藏>> 第五章 查询与视图 第一节:查询的...
更多相关标签: