您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VFP >> 辅导 >> 正文    
  VFP基础教程第五章创建查询和视图VFP教程 【注册男护士专用博客】          

VFP基础教程第五章创建查询和视图VFP教程

www.nanhushi.com     佚名   不详 

 

5.1 创建查询

1. 查询的概念

查询:就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。

查询文件:

即保存实现查询的SELECT-SQL命令的文件。查询文件保存时,系统自动给出扩展名 .qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为 .qpx

查询结果:

通过运行查询文件得到的一个基于表和视图的动态的数据集合。查询结果可以用不同的形式来保存。查询中的数据是只读的。

查询的数据源:可以是一张或多张相关的自由表、数据库表、视图。

2. 用查询设计器创建查询

基本步骤

打开查询设计器 → 添加创建查询所基于的数据表 → 定义输出内容 → 设置联接、筛选、排序、分组条件 → 选择查询结果的输出形式 → 保存查询文件 →运行查询。

1)打开查询设计器

方法1

文件菜单或工具栏上单击新建查询新建文件 → 进入查询设计器

方法2

当所用到的数据表已在项目中时,从项目管理器窗口中单击数据查询新建新建查询 → 进入查询设计器

方法3从命令窗口中输入命令:

create query 查询文件名 & 创建新查询

modify query 查询文件名 & 修改已存在的查询

(2) 定义查询的输出内容
单击字段选项卡 → 从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的… 按钮,打开表达式生成器,构造出所需的表达式)→ 单击添加按钮 → 所需字段自动出现在选定字段框中。
(3) 设置查询的筛选条件
筛选条件决定将哪些记录显示出来。
在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式:
1) 字符串可以不带引号(当与源表中的字段名相同时才用引号);
2) 日期型数值要用{ }括起来; 
3) 逻辑型数据两侧要带 .号,如 .T.,.F.
(4) 设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。
设置方法:
单击排序依据 → 从选定字段框选中字段 → 选择升序或降序 → 单击添加。
(5) 设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记录,目的是为了完成基于该组记录的计算,比如:求平均值、总和、统计个数、其中的最大值、最小值等。

用于分组的字段不一定是选定输出的字段,但分组字段不能是一个计算字段。
可以用 满足条件… 来对分组结果进行进一步筛选。
(6) 对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果的记录范围。
(7) 选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且其中的数据是只读的。
设置其他输出类型的方法: 
打开查询菜单 → 选择查询去向 → 在查询去向对话框中选择一种。一般多选择表或报表。 
(8)运行查询
在查询设计器打开的状态下,单击常用工具栏上的 !按钮或从查询菜单中选择运行查询。其他情况下,可从项目管理器中选中查询文件并单击运行按钮,或从程序菜单中选择执行命令,或从命令窗口中输入: DO 查询文件名。
(9) 创建多表查询
打开查询设计器 → 将所需的多个相关表添加进来 → 设置联接条件 → 按上面(2)至(8)步进行。 
3. 用查询向导创建查询
(1) 创建标准查询: 
打开待查询的数据表 → 从文件菜单中单击新建 → 在新建对话框中选择查询并单击向导 → 选择查询向导 → 从单张或多张相关的表中进行字段选取 → 设置筛选条件 → 设置排序次序 → 选择查询结果的保存方式 → 给出查询文件名并选择保存位置 → 查询结果显示在查询窗口中。
注意:查询此时得到的数据是只读的,不可以更新。 
(2)交叉表查询
打开待查询的数据表 → 从文件菜单中单击新建 → 在新建对话框中选择查询并单击向导 → 选择交叉表向导 → 从单张表中选取字段 → 设计布局 → 加入总和信息 → 选择查询结果的保存方式 → 给出查询文件名并选择保存位置 → 查询结果显示在查询窗口中。
注意:不是任何表都适宜采用交叉表的形式。


(3)用SELECT-SQL命令创建查询
常用的格式:
SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], …
FROM 数据库名! 表名1 [,数据库名! 表名2 ] [, 数据库名! 表名3 ]
[TO FILE 文本文件名 | into table | into cursor 表文件名 ] 
[ WHERE 选定条件] 
[GROUP BY 分组字段名 ]
[HAVING 分组中的满足条件 ]
[ORDER BY 排序字段名1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]]
示例:
浏览学生中的查询学生 student.qpr :
SELECT 表xs.xh as 学号, 表xs.xm as 姓名, 表xs.xb as 性别, ;
表xs.csrq as 出生日期, 表xs.bj as 班级名称;
FROM 数据test!表xs;
WHERE 表xs.bj =cs1;
ORDER BY 表xs.xh;
INTO TABLE xs
浏览成绩中的按课程查询 sub_cj.qpr :
SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ;
MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分;
FROM 数据test!表xs, 数据test!表cj, 数据test!表kc;
WHERE 表cj.xh = 表xs.xh;
AND 表kc.kcm = 表cj.kcm;
AND 表cj.kcm = sc1;
GROUP BY 表xs.bj;
ORDER BY 表xs.bj;
INTO TABLE sub_cj

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。