首页 > 范文大全 > 正文

Visual Foxpro中巧用查询设计器设计复杂查询

开篇:润墨网以专业的文秘视角,为您筛选了一篇Visual Foxpro中巧用查询设计器设计复杂查询范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】在visual foxpro中使用SQL SELECT查询语句可以方便地从数据关系表中检索出所需要的数据。在实际教学过程中,由于SQL SELECT语句的语法格式长且复杂,学生们不易掌握该语句的用法。虽然在不需要掌握该语句语法的情形下,我们可利用查询设计器同样可以设计出查询,但在目前的教科书上讲到的只是一些基本的规则的查询,对于复杂查询无能为力。本文论述了Visual Foxpro中用SELECT语句建立查询的几个基本形式,同时也介绍了使用查询设计器设计复杂查询的方法。

【关键词】Visual Foxpro;SQL;SELECT;查询设计器 查询

SQL是结构化查询语言Structured Query Language的缩写。其中查询是SQL语言的重要组成部分。SQL已经成为关系数据库语言。Visual Foxpro也将其融入到自身的语言中,可以直接以命令方式交互使用,也可以嵌入到程序中以程序方式使用。这些使用方式为用户提供了灵活的选择余地。尽管SQL的使用方式不同,但SQL语言的语法基本是一致的。SQL的核心是查询,它的查询命令也称作SELECT命令。实际上,查询就是预告定义好的一个SQL SE-LECT语句,在不同的需要场合可以直接或反复使用,从而提高效率。在Visual Foxpro中也可以利用查询设计器设计查询,同时系统会生成相应的SELECT查询语句代码。

一、使用SELECT命令构造查询

SELECT查询命令的使用灵活,它的基本形式由SE-LECT-FROM-WHERE查询块组成,多个查询块可以嵌套执行,用它可以构造各种各样的查询。下面给出一些查询的例子来分析SELECT语句。其中需要用到相关的数据表如下:

仓库(仓库号C3,城市C10,面积N3),其记录如下:

WH1北京370WH2上海500

WH3广洲200WH4武汉400

职工(仓库号C3,职工号C2,工资N4),其记录如下:

WH2E11220WH1E31210

WH2E41250WH3E61230WH1E71250

订购单(职工号C2,供应商号C2,订购单号C4,订购日期D),其记录如下:

E3S7OR672001/06/23E1S4OR732001/07/28

E7S4OR762001/05/25 E6NULLOR77NULL

E3S4OR792001/06/13 E1NULLOR80NULL

E3NULLOU90NULLE3S3OR912001/07/13

供应商(供应商号C2,供应商名C20,地址C10),其记录如下:

S3RD振华电子厂西安S4华通电子公司北京

S6607厂郑州 S7爱华电子厂北京

联接查询:例1:找出工资多于1230元的职工号和他们所在的城市。

SELECT职工号,城市FROM职工,仓库;

WHERE(工资>1230)AND(职工.仓库.仓库号)

结果是:E4上海E7北京

短语FROM后的两个关系表肯定有一种联系。这里的“职工.仓库号=仓库.仓库号”就是联接条件。

嵌套查询:例2:找出至少有一个仓库的职工工资为1250元的城市。

SELECT城市FROM仓库WHERE仓库号IN;(SELECT仓库号FROM职工WHERE工资=1250)

结果是:北京上海

从其形式与结果中可以看出,这类查询所要求的结果出自一个关系,但相关的条件却涉及多个关系,查询外层中的元组时,其条件依赖相关的内层关系中元组的属性值。

使用SELECT语句构造查询的用法较多,除上述提到的基本方法外,还有利用分组与计算查询、空值查询、别名与自联接查询、内外层互相关嵌套查询、使用量词和谓词查询及超联接查询等,这里就不一一列举了。只有在平时多加运用才能熟练掌握其用法。

二、利用查询设计器查询

由于SQL SELECT语句的语法格式长且复杂,学生们在用它来构造查询的时候,都有些棘手。但我们可用“查询设计器”可以方便地设计出查询。当然,我们首先还是要理解SELECT语句基本语法框架。因为“查询设计器”是以SELECT语句为基础的,其界面上的各选项卡和SELECT语句的各短语是相对应的,把这些相对应的关系弄清楚了,用“查询设计器”便可以轻松地设计出各种各样的查询了。查询设计器界面上各选项卡与SELECT语句各短语的对应关系如下:“字段”选项卡对应于SE-LECT短语,指定要查询的数据,这时可以单击“全部添加”选择所有字段,也可以逐个选择字段“添加”;在“函数和表达式”编辑框中可以输入或编辑计算表达式。“联接”选项卡对应于JOINON短语,用于编辑联接条件。“筛选”选项卡对应于WHERE短语,用于指定查询条件。“排序依据”选项卡对应于ORDER BY短语,用于指定排序的字段和排序方式。“分组依据”选项卡对应于GROUP BY 短语和HAVING短语,用于分组。“杂项”选项卡对应于可以指定是否要重复记录(对应于DISTINCT)及列在前面的记录(对应于TOP短语)等。下面通过一个例子来介绍如何利用查询设计器来建立查询。查询要用到的关系表同上。

例、利用分组功能统计各仓库年工资额的合计,并按年工资额降序排序。

从“字段”选项卡选择并添加“职工.仓库号”字段,并在“函数和表达式”编辑框中输入表达式:SUM(职工.工资*12)AS年工资合计,然后把它添加到“选定字段”框中。从“分组依据”选项卡选择“职工.仓库号”字段并把它添加到“分组字段”框中。从“排序”选项卡选择“职工.工资*12”字段并把它添加到“排序条件”框中。此时运行查询即可得到所需要的统计结果。单击查询设计器工具栏中的显示SQL窗口图标可以看到系统按照上述操作生成相应如下的SQL SELECT语句代码:

SELECT职工。仓库号,SUM(职工.工资*12)AS年工资合计;FROM 职工ORDER BYSUM(职工.工资*12)DESCGROUP BY职工.仓库号。这是用查询设计器建立比较规则的查询。要想设计出复杂的查询,就要好好利用“联接”选项卡和“筛选”选项卡了。“联接”选项卡和“筛选”选项卡的使用在此不再细述。

利用查询设计器能方便高效地设计复杂的查询,但这是要建立在对SELECT语句的框架有个较好的理解基础上的,同时还要明白其与查询设计器中各选项卡的对应关系。笔者在教学过程中,融入了上述方法,学生们很快便掌握了其方法技巧。在全国计算机等级考试的二级Visual Foxpro程序设计作答中,碰到在程序中需要填入SE-LECT查询语句时,较复杂的一般不直接写语句,同学们运用该设计方法,能够轻松正确地获得语句代码,填入程序设计答题中,既快捷又不易出现错误。