VFP中巧用查询设计器设计复杂查询

来源 :成才之路 | 被引量 : 0次 | 上传用户:nsitbay
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   SQL是结构化查询语言Structured Query Language的缩写,其中查询是SQL语言的重要组成部分。SQL已经成为关系数据库的标准数据语言。Visual FoxPro也将其融入到自身的语言中,可以直接以命令方式交互使用,也可以嵌入到程序中以程序方式使用。这些使用方式,为用户提供了灵活的选择余地。尽管SQL的使用方式不同,但SQL语言的语法基本是一致的。SQL的核心是查询,它的查询命令也称作SELECT命令。实际上,查询就是预先定义好的一个SQL SELECT 语句,在不同的需要场合可以直接或反复使用,从而提高效率。在Visual FoxPro中也可以利用查询设计器设计查询,同时系统会生成相应的SELECT查询语句代码。
  
  一、 使用SELECT命令构造查询
  
  SELECT查询命令的使用非常灵活,它的基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可以嵌套执行,用它可以构造各种各样的查询。下面给出一些查询的例子来分析SELECT语句。其中需要用到相关的数据表如下:
  仓库(仓库号C 3,城市C 10,面积N 3),其记录如下:
  WH1  北京  370WH2  上海  500
  WH3  广州  200WH4  武汉  400
  职工(仓库号 C 3,职工号 C 2,工资 N 4),其记录如下:
  WH2  E1  1220 WH1   E3  1210
  WH2  E4  1250 WH3   E6   1230
  WH1  E7  1250
  订购单(职工号 C 2,供应商号 C 2,订购单号 C 4,订购日期 D),其记录如下:
  E3  S7  OR67  2001/06/23
  E1  S4  OR73  2001/07/28
  E7  S4  OR76  2001/05/25
  E6  Null OR77  Null
  E3   S4  OR79  2001/06/13
  E1  Null OR80  Null
  E3  Null OR90  Null
  E3  S3  OR91  2001/07/13
  供应商(供应商号 C2,供应商名 C20,地址 C10),其记录如下:
  S3振华电子厂  西安
  S4华通电子公司 北京
  S6607厂     郑州
  S7爱华电子厂  北京
  连接查询:例1:找出工资多于1230元的职工号和他们所在的城市。
  SELECT 职工号,城市 FROM 职工,仓库;
  WHERE(工资>1230)AND(职工.仓库号=仓库.仓库号)
   结果是: E4 上海  E7 北京
   短语FROM后的两个关系表,肯定有一种联系。这里的“职工.仓库号=仓库.仓库号”就是连接条件。
  嵌套查询:例2:找出至少有一个仓库的职工工资为1250元的城市。
   SELECT 城市 FROM 仓库 WHERE 仓库号 IN;
   (SELECT 仓库号FROM 职工 WHERE 工资=1250)
  结果是:北京 上海
  从其形式与结果中可以看出,这类查询所要求的结果出自一个关系,但相关的条件却涉及多个关系。查询外层中的元组时,其条件依赖相关的内层关系中元组的属性值。
  分组与计算查询:例3:检索出至少有两个职工的每个仓库的平均工资。
  SELECT 仓库号,COUNT(*),AVG(工资) FROM职工;
  GROUP BY 仓库号HAVING COUNT(*)>=2
  结果是:WH1 2 1230   WH2 2 1235
  上例中,如果不用分组,将会对整个关系表进行计算查询。而充分利用分组查询,可以按元组某一属性值进行分组计算,方便我们提取分类数据。使用SELECT语句构造查询的用法较多,除上述提到的基本方法外,还有利用空值查询、别名与自连接查询、内外层互相关嵌套查询、使用量词和谓词查询及超链接查询等。这里就不一一列举了,只有在平时多加运用,才能熟练掌握其用法。
  
  二、 利用查询设计器设计查询
  
  由于SQL SELECT语句的语法格式长且复杂,学生们用它构造查询的时候,都有些棘手。但我们用“查询设计器”可以方便地设计出查询。当然,我们首先还是要理解SELECT语句的基本语法框架。因为“查询设计器”是以SELECT语句为基础的,其界面上的各选项卡和SELECT语句的各短语是相对应的,把这些相对应的关系弄清楚了,用“查询设计器”便可以轻松地设计出各种各样的查询了。查询设计器界面上各选项卡与SELECT语句各短语的对应关系如下:①“字段”选项卡对应于SELECT短语,指定要查询的数据,这时可以单击“全部添加”选择所有字段,也可以逐个选择字段“添加”;在“函数和表达式”编辑框中可以输入或编辑计算表达式。②“连接”选项卡对应于JOIN ON短语,用于编辑连接条件。③“筛选”选项卡对应于WHERE短语,用于指定查询条件。④“排序依据”选项卡对应于ORDER BY短语,用于指定排序的字段和排序方式。⑤“分组依据”选项卡对应于GROUP BY短语和HAVING短语,用于分组。⑥“杂项”选项卡对应于可以指定是否要重复记录(对应于DISTINCT)及列在前面的记录(对应于TOP短语)等。
  下面通过两个例子,介绍如何利用查询设计器来建立查询。查询要用到的关系表同上。
  例1:利用分组功能统计各仓库年工资额的合计,并按年工资额降序排序。
  步骤如下:①从“字段”选项卡选择并添加“职工.仓库号”字段,并在“函数和表达式”编辑框中输入表达式:SUM(职工.工资*12) AS 年工资合计,然后把它添加到“选定字段”框中。②从“分组依据”选项卡选择“职工.仓库号”字段并把它添加到“分组字段”框中。③从“排序依据”选项卡选择“职工.工资*12”字段,并把它添加到“排序条件”框中。
  此时,运行查询即可得到所需要的统计结果。单击查询设计器工具栏中的显示SQL窗口图标,可以看到系统按照上述操作生成相应如下的SQL SELECT语句代码:
  SELECT 职工.仓库号,SUM(职工.工资*12) AS 年工资合计;
  FROM 职工ORDER BY SUM(职工.工资*12) DESC GROUP BY 职工.仓库号
  上例是用查询设计器建立比较规则的查询。要想设计出复杂的查询,就要好好利用“连接”选项卡和“筛选”选项卡了。下面,以一例子来阐述用查询设计器设计较为复杂的查询。
  例2:检索出和职工E1、E3都有联系的北京的供应商信息。
  首先,把需要用到的表“供应商”和“订购单”添加进来。接着按如下步骤进行:①从“字段”选项卡选择“供应商.供应商号”“供应商.供应商名”“供应商.地址”字段,并把它们添加到“选定字段”框中。②从“连接”选项卡中建立“订购单.供应商号=供应商.供应商号”的内部连接关系。③从“筛选”选项卡中设置如下条件: 供应商.地址=“北京”AND供应商.供应商号 IN (SELECT 供应商号FROM订购单WHERE 职工号=“E1”) AND 供应商.供应商号IN (SELECT 供应商.供应商号FROM 订购单 WHERE职工号=“E3”)。④从“杂项”选顶卡中把“无重复记录”复选框勾上。
  查询设计完毕后,即可运行查询,所得结果是:
  S4 华通电子公司 北京。
  单击查询设计器工具栏中的显示SQL窗口图标,可以看到系统按照上述操作生成相应如下的SQL SELECT语句代码:
  SELECT DISTINCT供应商.*;
   FROM供应商 INNER JOIN订购单ON订购单.供应商号=供应商.供应商号;
  WHERE供应商.地址=“北京”;
  AND供应商.供应商号IN (SELECT 供应商号 FROM 供应商WHERE职工号=“E1”);
  AND供应商。供应商号IN (SELECT 供应商号 FROM 供应商WHERE职工号=“E3”)
  上例中的(SELECT 供应商号 FROM 订购单WHERE 职工号=“E1”)和(SELECT 供应商.供应商号FROM 订购单 WHERE职工号=“E3”),是要在“筛选”选项卡中的“实例”项设计的内容。这也正是设计复杂的查询的关键所在。
  
  三、 结束语
  
  利用查询设计器能方便高效地设计复杂的查询,但这是要建立在对SELECT语句的句法框架有个较好的理解基础上的,同时还要明白其与查询设计器中各选项卡的对应关系。笔者在教学过程中,融入了上述方法,学生们很快便掌握了其方法技巧。在全国计算机等级考试的二级Visual FoxPro程序设计作答中,碰到在程序中需要填入SELECT查询语句时,较复杂的一般不直接写语句,同学们运用该设计方法,能够轻松正确地获得语句代码,填入程序设计答题中,既快捷又不易出现错误,取得了很好的效果。
   [十堰职业技术(集团)学校]
其他文献
孙兴慜世界杯结束不到半年,亚洲国脚们又开始忙碌。新年第一周,亚洲杯就在阿联酋开幕,可是真正拿得出手的亚洲球星们还在欧洲踢联赛呢。在欧洲踢球的亚洲国脚这些年越来越多,亚洲足球先生这一荣誉却被诟病没有说服力,就因为只能选“土鳖”,即效力于亚洲联赛的球员。而亚洲杯的含金量如何呢?从阵容看没问题,大牌“海归”都会打;从战意看也没问题,因为亚洲杯的名次决定着世预赛定档;至于状态嘛,“海归”可不能保证了,因为
去过西湖的人,都不会忘记那把雨中的伞。那把让许仙和白娘子生出倾心之爱的伞。  那把伞,就是西湖绸伞。  西湖,因为一把绸伞,衍生出亘古未有的美丽,伞和湖结下的不解之缘,让一个地方、一座城市充满了谜一样的诱惑。无论风雨阴晴,一把把在西湖边撑开的伞,总是那样姿态纷呈,千娇百媚,引人遐想,教人痴迷。  凭借灵巧的造型,鲜艳的色彩,美妙的传说,西湖绸伞无可置疑地,成为江南旖旎风光中最曼妙、最灵性、最醒目的
夏承焘先生解释辛弃疾《永遇乐·京口北固亭怀古》中的“可堪回首,佛狸祠下,一片神鸦社鼓”,谓“辛弃疾写‘佛狸祠下三句,表示自己的隐忧:如今江北各地沦陷已久,不迅速谋求恢复的话,民俗安于异族的统治,忘记了自己是宋室的臣民”(《唐宋词欣赏》,百花版)。刘永济先生释此数语亦曰:“盖江北各地沦陷已久,民俗安于外族之统治,故于‘佛狸祠下’迎神赛会,如此热闹。”(《唐五代两宋词简析》,上海古籍版)  夏刘皆以长
〔关键词〕选课指导;高一学生;理性决策  〔中图分类号〕G44 〔文献标识码〕B 〔文章编号〕1671-2684(2019)32-0045-03  【活动背景】  高中生各种认知能力不断完善,思维能力更加成熟,个性倾向性进一步发展,逐渐能对事物做出理性的价值判断。但是他们又具有突出的从众心理,表现在具体的行为上,容易出现盲目从众的现象,理性思考的程度不足。高一学生刚刚步入高中阶段,面临着新
〔关键词〕幸福感;心理健康教育;回顾  在推进素质教育的进程中,心理健康教育越来越显示出其独特性和不可替代性,已经成为学校教育内涵发展的重要内容。  北京市东城区是一个有着深厚文化底蕴和优良教育传统的城区。在教育改革的新形势下,如何使心理健康教育更加符合以人为本的教育精神,如何实施心理健康教育,提升学生的主观幸福感,为孩子终身发展奠定基础,东城区进行了有益的尝试和探索。    一、建立东城区高效的
〔关键词〕说谎;心理理论;实验研究  一、引言  “说谎”,词典上给予的定义是“假话骗人”,是一种蓄意和深思熟虑后对真实情况加以隐瞒或歪曲的行为。在家长和老师看来,儿童说谎是个比较严重的问题,然而在我们的日常生活中说谎却是经常发生的现象,伴随着儿童的成长。儿童说谎的问题真的有成人想象得那么严重吗?该如何消除儿童说谎的问题呢?下面这个实验会从一个独特的角度提供有益的启发。  二、实验介绍  1. 实
香港是一个季风吹拂的城市,每当夏秋时节,总会有风暴掠过,遇到台风过境,大家都要观风球,辨风势,安排行程。当然,风源都不是发端于这座城市,而是从海洋上生成后一路吹来。文化的情势大抵也是如此,无论西方文化,还是东方文化,都从外面吹来,不是西(欧美)风就是东(华文)风,出版业也未能免俗。声名显赫的三联书店,八十年代初期在香港则大抵是一个图书发行机构,主要代理发行大陆的出版物,一个规模不大的编辑部主要刊行
我经常在网上看到关于大龄未婚群体“焦虑”的一些报道。在我身边,与这些话题有关的讨论不绝于耳:北上广的“相亲角”,动不动就“几亿人还单身”,随口可见“拯救大齡未婚女青年”以及充斥在各种角落的“大龄单身恐惧症”……  在这些话题里,大龄未婚群体似乎成了某种弱势群体,需要外界帮助。作为心理咨询师,我的咨询室里也经常有大龄未婚人群来寻求心理安慰,但了解后会发现,这部分人咨询的问题少数是婚恋问题,大部分是承
〔摘要〕班级管理看似平凡,实则蕴含着丰富的学问。走进学生的心灵深处,及时洞察学生的内心世界,班主任就能科学治班,克服盲目性,增强自觉性,这对班级管理大有裨益。  〔关键词〕班级管理;接纳;共情  〔中图分类号〕G44 〔文献标识码〕B 〔文章编号〕1671-2684(2017)34-0063-02  怎样创建一个优秀的班集体,是每一位班主任都在探索的问题。在学校里,我们常常遇到这样一个问题:在客观
土传病害是指由土传病原物侵染引起的植物病害,浸染病原包括真菌、細菌、线虫等。其中真菌为主,分为专性寄生与非专性寄生两类。专性寄生是植物维管束病原真菌,如枯萎病、黄萎病等造成萎蔫、枯死。非专性寄生是外生的侵染真菌,如腐霉菌引起的苗腐和猝倒,丝核菌引起的苗立枯病等。土传病害多发生在温室、大棚和多年重茬地块,辽宁省危害最严重的是瓜果类疫病、根腐病、枯萎病、绵腐病、绵疫病、菌核病、蔓枯病、苗期猝倒病、立枯