数据的查询与统计_第1页
数据的查询与统计_第2页
数据的查询与统计_第3页
数据的查询与统计_第4页
数据的查询与统计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、章节第八章数据的查询与统计教学目的要求通过对这一章的学习,使学生掌握查询设计器与视图设计器的使用,能够建立条件、联接查询和视图,并能够掌握查询与视图的区别。教学重点难点教学重点:1.理解查询与视图的基本概念。2.掌握查询文件的建立、执行和修改方法。3.掌握视图文件的建立、执行和修改的方法。4. 了解查询与视图的区别。教学难点:1.查询的概念及查询的各种输出去向。2.视图的概念及视图文件的作用。3.远程视图的概念及建立的方法。4利用视图更新数据。拟留作业与实训作业:1.建立查询文件2.运行查询文件3.使用查询设计器建立简单查询4.使用查询向导建立简单查询5.使用查询设计器建立条件查询6.使用查询

2、设计器建立联接查询7.使用视图设计器建立视图8.利用视图更新数据。实训:完成实训大纲中实训项目六小结通过本章学习:1、掌握查询文件的建立和运行方法;2、掌握简单、条件、联接查询;3、掌握建立各种视图。渤海大学教案用纸2006 年 3 月- 2 - 教学主要内容教学方法时间分配【学习目标】知识点:1.查询设计器的使用。2.查询向导的使用。3.查询的运行。4.简单查询。5.限制重复记录。技能点 :1熟练掌握用“查询设计器”建立查询。2熟练掌握用“查询向导”建立查询。3. 会建立简单的查询。4.会限制重复记录。第一节创建查询通过上一课的学习,我们对数据库的建立及基本操作有了清楚的了解,但这远不能满足

3、我们实际应用的需要。从本课开始,我们要进一步学习 visual foxpro 6.0 提供的许多功能强大的实用工具,如查询设计器、视图设计器、报表设计器、标签设计器、表单设计器、菜单设计器和项目设计器。本课将介绍如何应用查询设计器或其向导创建查询。在数据库系统中, 数据查询是最常用的基本应用。在 vfp中提供了三种实现查询的方式:最基本,也是最简单的方式是使用传统的foxpro 命令及函数,比如 locate 、 find、seek 、seek ()等。也可以使用 select-sql命令实现查询。 这是一种功能强大的查询命令,另外还可以通过可视化工具- 查询设计器来创建“查询”文件。查询可以

4、是用户从数据表中获取所需要的结果。即设定一些查询条件,并把这些条件存为查询文件,每次查询数据时,调用该文件并加以执行。查询的意义:简化从一个或多个表中检索或收集数据的过程。查询的本质:查询的结果是一个基于表和视图的动态的数据集合。一个查询可以用一条select-sql 语句来完成。查询保存为一个扩展名为.qpr 的文件。文件中保存的是实现查询的select-sql 命令,而非查询的结果。查询必须基于确定的数据源,可以是一个或多个数据库表、 自由表或视图。一、建立查询在创建查询时,通常可以遵循以下六个步骤来创建查询。(1)用“查询向导 ”或“查询设计器 ”创建查询。(2)选择在查询结果中需要的字

5、段。(3)设置查询记录的条件。(4)设置排序及分组条件来组织查询结果。10 分钟(详讲)20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 3 - (5)选择查询输出类别, 可以是报表、表文件、 图表、浏览窗口和表文件等等。(6)运行此查询查询设计器进入“ 查询设计器 ” 窗口有两种方法: 1 、菜单方式步骤如下:(1)在“文件”下拉菜单中单击“新建”命令,或是使用鼠标单击常用工具拦中的“新建”按钮,打开“新建”对话框。(2)选择文件类型单选按钮“查询” ,并单击“新建文件”按钮,打开查询设计器窗口。2、命令方式也可以在命令窗口中直接执行下列命令来启动查询设计器:create query

6、 “查询设计器工具栏 ”各按钮的功能如下:按钮:添加数据库表。按钮:移去数据库表。按钮:添加数据库表间的联接。按钮:显示 sql窗口。按钮:最大化上部分窗口按钮:确定查询去向。选择数据表创建查询的目的无非是为了进行表的查询处理,因此启动查询设计器以后的第一件事就是指定所要查询的表。这些表(一个或多个) 就是查询操作的数据源。1、未打开任何数据库在启动查询设计器后,将会在查询设计器窗口上面立即出现“打开”对话框。选择需要创建查询的数据表(如学生.dbf ),它可以是自由表,也可以是数据库表。单击“确定”按钮后将会关闭“打开”对话框,同时打开“添加表或视图”对话框。之所以弹出“添加表或视图” 对话

7、框,主要是为了让您能够继续加入其他的表,以便进行多表的查询操作。 由于我们目前只是要进行单一表的查询操作, 因此单击“关闭”按钮,关闭这个对话框, 查询设计器窗口将会重新弹出。2、已经打开数据库如果在启动查询设计器前, 已打开一个或一个以上的数据库,则启动查询设计器后,将直接弹出“添加表或视图”对话框。可以从当前数据库或其他已打开的数据库所含的数据表中,选择所要实现查询操作的表,然后单击“关闭”按钮关闭这个对话框。3、添加数据表在进入查询设计器后, 可以随时添加其他的表, 或删除查询设计器中的表。添加表的操作步骤如下:(1)使用鼠标右键单击查询设计器的任意区域,并在弹出菜单中选10分钟(详讲)

8、渤海大学教案用纸2006 年 3 月- 4 - 择“添加表”命令。(2)屏幕上将再次弹出“添加表或视图”对话框。(3)在“添加表或视图”对话框中选定需要的数据表后,关闭对话框,如图所示:而要删除查询中的数据表时, 可使用鼠标右键单击查询设计器的任意区域,并在弹出菜单中选择“移去表”命令,当前数据表文件将会被移出当前查询文件。利用查询设计器创建查询使用“查询设计器 ”创建查询,具体步骤如下:(a)进入 “查询设计器 ”窗口,添加学生表。(b)选择查询需要的字段(c)设置查询条件(d)保存查询(e)查询的运行利用查询向导创建查询利用“查询向导 ”创建查询的步骤如下:(1)进入 “查询向导 ”进入“

9、查询向导 ”可用下面 3 种方法: 选择【工具】 | 【向导】 | 【查询】命令。 选择【文件】 | 【新建】命令,进入 “新建”对话框,选择 “查询”单选按钮,单击 “向导”按钮。 在“项目管理器 ”窗口中,选择“数据”选项卡,选中“查询”,单击“新建”按钮,出现 “新建查询 ”对话框,单击 “查询向导 ”按钮。(2)选择查询结果中需要的字段(3)设置查询条件(4)设置排序字段(5)设置记录输出范围(6)保存查询二、选择字段指定完查询需要的数据表以后,还要从这些表中选择需要出现在查询结果中的字段。在查询设计器窗口可以使用两种方式完成这一操作。通过字段选项卡1、在查询设计器上选择“字段”选项卡

10、。“可用字段”列表框中所示的是来源表的所有字段,而位于“选定10 分钟(详讲)10 分钟(略讲)10 分钟(详讲)渤海大学教案用纸2006 年 3 月- 5 - 字段”列表框中的则是将会在查询结果中出现的字段。2、在“可用字段”列表框中选定字段名,单击“添加”按钮,该字段被移入“选定字段” 列表框中。 可以反复操作, 选出所有需要的字段。3、如果发现在 “选定字段” 列表中出现了不需要的字段, 可以先选定字段,再单击“移去”按钮,将该字段移回“可用字段”列表中。4、如果希望所有字段皆出现在查询结果中,直接单击“全部添加” 按钮。反之,如果希望将所有字段移触 “选定字段” 列表中,以便稍后再一一

11、挑选的话,可单击“全部移去”按钮。使用鼠标直接拖动可以直接从数据表中将希望出现在查询结果中的字段,拖到查询设计器的“选定字段” 列表中。比如,已经将表学生加入查询设计器中,并希望学号字段出现在查询结果中。 那么只需使用鼠标选取此字段, 然后用鼠标左键将它拖动至“选定字段”列表框中,最后放开鼠标左键即可。在表的字段清单的最上方有一个星号“*”,它代表所有字段,因此如果希望数据表的所有字段都出现在查询结果中,可以直接将此星号拖至“选定字段”列表框中。在“选定字段” 列表框中, 字段由上至下的顺序, 即是字段出现在查询结果中由左至右的顺序。 若是要改变其位置顺序, 用鼠标左键按住字段左端的双箭头按钮

12、上下拖动,就可调整字段出现在查询结果中的次序。例如,在刚才使用的查询设计器里,从可用字段里选择学号、姓名、性别、院系字段到选定字段里。把性别字段和姓名字段调换顺序。三、保存查询文件在我们还没有完成创建一个查询的全部操作之前,可以随时运行查询,以便检查查询的设计情况。如发现设置有误,就可以马上修改,最后保存这个查询。要在查询设计器中运行目前正在创建的查询,可以单击常用工具栏中的“运行”按钮,或是使用鼠标右键打开弹出菜单,并单击“运行查询”命令。假如已经满意查询运行的结果, 而希望将其存为文件以便稍后能够随时使用,可按下ctrl+w 键,或单击常用工具栏的“保存”按钮,或单击查询设计器窗口右上角的

13、关闭按钮。屏幕将弹出“另存为”对话框。、在弹出的对话框中键入查询文件的文件名称(比如 cx1.qpr) ,并单击“保存”按钮,。在键入查询文件的文件名时,不需要添加扩展名,因为vfp会自动替查询文件加上扩展名为.qpr 。例如,保存刚才的查询为 cx1.qpr,并用菜单来运行此查询。四、显示查询结果以扩展名为 .qpr创建的查询文件,是一个由sql命令语句组成的程序文件。只有运行这个查询文件才能获取需要的查询结果。不需要启动查询设计器,可以直接运行。用菜单选项10 分钟(详讲)10 分钟(详讲)渤海大学教案用纸2006 年 3 月- 6 - 1、在主菜单的“程序”下拉菜单中单击“运行”选项。2

14、、在“运行”对话框窗口中选定需要运行的文件。3、单击“运行”按钮,运行查询程序。用命令直接在命令窗口中使用do 命令来运行查询文件,格式如下:do queryfilename 注意: queryfilename 是查询文件的名称,必须加上文件扩展名.qpr 比方说,想要运行一个查询文件查询1.qpr ,请在命令窗口键入命令:do 查询 1.qpr 例如,用命令 do cx1.qpr 来运行 cx1 。编辑查询文件可以随时在查询设计器中打开查询文件,然后在设计器窗口中编辑修改查询文件。也可以用命令打开查询设计器, 编辑一个已经存在的查询文件:需要在命令窗口中键入的命令是: modify quer

15、y queryfilename 注意: queryfilename 是查询文件的名称,加不加文件扩展名.qpr都无所谓。查看查询程序查询是一个 sql语言的程序文件, 用户也可以看到这个程序。 在查询设计器的弹出菜单中单击“查看sql ”选项,或者在“查询”下拉菜单中单击“查看sql ”选项,或者在查询设计器工具栏中单击“sql ”选项,便可以打开一个查询编辑窗口,让您查看系统生成的查询程序内容。例如,用命令打开 c1的查询设计器。 限制重复记录10 分钟(详讲)渤海大学教案用纸2006 年 3 月- 7 - 教学主要内容教学方法时间分配【学习目标】知识点:6.统计和计算。7.确定查询输出的内

16、容。8.排序查询的结果。技能点 :1在“字段”选项卡下设置函数和表达式。2熟练在排序依据选项卡下设置字段排序。3. 在杂项选项卡下设置查询输出的内容。二、统计和计算查询的功能之所以强大, 在于它不仅仅只是能够查找指定的内容,同时它还能针对字段的内容进行统计和运算。要对字段的内容进行统计与运算,必须使用查询设计器字段页面中的“函数和表达式”选项。添加统计计算字段1、操作方法利用第四章的统计命令很容易计算数据表中各记录之间的数据(纵向计算),但是要统计一条记录中各字段之间的数据(横向)却比较困难。查询中的“函数和表达式”选项很容易实现这种统计计算。操作如下:当在查询设计器的“字段”选项卡中选定了需

17、要显示的字段以后,可直接在“函数表达式”的文本框中键入相应函数或表达式。如果表达式比较复杂,可以单击文本框右端的按钮打开“表达式生成器”窗口。借助于表达式生成器, 便能够以交互式创建表达式。 创建完需要的表达式后,单击“确定”按钮,此表达式便会出现在“函数和表达式”文本输入框中。当表达式出现在“函数和表达式”文本输入框中后,必须再单击“添加”按钮,以便将此表达式移至“选定字段”列表框中。一般来说,经常在查询中使用到的函数如下所示:min ():在表中计算出指定字段值最小的数据项。max ():在表中计算出指定字段值最大的数据项。count():计算表中的记录数。通常以星号(*)作为参数。avg

18、 ():计算出所有记录指定字段的数据平均值。sum ():计算出所有记录指定字段的数据总和。当 count()、avg ()、sum ()三个函数用 distinct做参数时,计算将忽略该字段值相同的重复记录数。2、操作实例假如需要从表成绩中查询出下列信息:总共有多少条记录。成绩的最高分。成绩的最低分。成绩的平均分。要取得这些信息,遵循下列步骤进行:(1) 打开查询设计器。(2) 指定所要查询的表成绩。35 分钟(详讲)渤海大学教案用纸2006 年 3 月- 8 - (3) 首先是要计算表成绩中总共有多少条记录,因此先在“函数和表达式”文本框中键入函数:count(*),然后单击“添加”按钮,

19、将 count(*)加至“选定字段”列表框中。(4) 再计算成绩的最大值。 在 “函数和表达式” 文本框中键入函数:max (成绩. 成绩),然后单击“添加”按钮,将max (成绩 .成绩)加至“选定字段”列表框中。(5) 还要计算成绩的最小值。 同样将函数 min (成绩 . 成绩)加至 “选定字段”列表框中。(6) 最后计算成绩的平均值。 需要将函数 avg(成绩 . 成绩)加至 “选定字段”列表框中。这时如果单击常用工具栏中的 “运行”按钮,查询结果将会出现在浏览窗口中。最后关闭浏览窗口及查询设计器,并将创建的查询以文件名cx3.qpr保存。修改查询结果中的列标题在查询结果的浏览窗口中,

20、 新增加字段的列标题是由vfp自动替您决定的,但是不幸的是, 此类标题通常不尽人意。 如果希望自行指定列标题,请在所键入的表达式中加入as参数。其语法如下:表达式 as 列标题1、操作方式假定我们希望把cx3中每个添加的列标题都修改一下,让它们分别为:记录总数、最高分、最低分、平均分。我们要分别修改每一个统计项的表达式,使它们分别为:count(*) as 记录总数max (成绩 . 成绩) as 最高分min (成绩 . 成绩) as 最低分avg (成绩 . 成绩) as 平均分利用 as参数所指定的列标题不必包含在一对引号中。2、操作实例要检查表学生中,所有学生的下列字段内容。学生号。姓

21、名。性别。贷款与否。但是贷款与否原来存储的是逻辑值.t. 或.f. ,为了观察得更加清楚,希望贷款与否为 .t. ,则显示“是”,贷款与否为.f. ,则显示“否”。要完成此项操作,遵循下列步骤进行:(1) 打开查询设计器。(2) 指定所要查询的表学生。(3) 当表学生被加入查询设计器后,选取学号、性别和姓名字段,然后使用鼠标将它们拖动至“选定字段”列表框中。(4) 在“函数和表达式”文本输入框中键入表达式: iif(学生. 贷款否,“是”,“否”)as 贷款否然后单击“添加”按钮,将此表达式加至“选定字段”列表框15 分钟(详讲)渤海大学教案用纸2006 年 3 月- 9 - 中。(5) 单击

22、常用工具栏中的“运行”按钮,查询结果将会出现在浏览窗口中。会发现所有的数据记录都显示在浏览窗口中,而且由于贷款是以是与否来显示,更让用户一目了然。三、排序查询结果操作方式为了满足某中查询的需要, 往往要求显示结果以一个或几个字段为基准,重新排列浏览窗口中记录的顺序。要实现这个要求应当打开查询设计器的“排序依据”选项卡。在“选定字段”列表框中,显示将会出现在查询中的字段,而在“排序条件”列表框中的基准字段。因此我们应当根据排序要求顺序,把相应字段从“选定字段”列表框中移入“排序条件”列表框中。当我们选定了多个排序基准字段时,在“排序条件”列表框中各字段的次序也就决定了将来排序的次序。如果对当前的

23、字段次序不满意,可以利用鼠标上下拖动每条字段左端的双箭号按钮改变其上下次序。位于“排序条件”列表框中的字段的左端都有一个向上箭头符号,这意味着按照升序排序查询结果。假如希望按照降序排序查询结果,请先选定某个基准字段,然后再在“排序选项”选择框中选定“降序”单选项即可。操作实例比如希望查询结果按照某个字段排序,可以使用“排序依据”选项。比如,希望查询结果中的数据记录能够先按学生院系降序排列;而同一个院系中,男生在前, 女生在后; 若性别相同时, 依据姓名从低到高的顺序排列记录。要达成上述需求,遵循下列步骤进行。(1) 打开查询设计器。(2) 依次将学号、姓名、院系与性别这四个字段拖动至“选定字段

24、”列表框中。(3) 打开“排序依据” 选项卡。请按照下列顺序将“选定字段”列表框中的下列字段加入“排序条件”列表框中。(4) 为条件“院系”选择降序。(5) 为条件“性别”选择降序。(6) 为条件“姓名”选择升序。(7) 单击常用工具栏的 “运行”按钮,查询结果会出现在浏览窗口中。(8) 关闭浏览窗口及查询设计器, 并将所创建的查询以文件cx4.qpr保存。四、显示名列前茅或垫底者vfp的查询有一项极为重要但却是经常被人所遗忘或未发觉的功能,那就是它能够很容易地找出数据表中名列前茅或垫底者。比方说在成绩表中要求查询:成绩最高的前 10 名学生。成绩最低的后 10 名学生。成绩最高的前 30%

25、的学生。15 分钟(详讲)20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 10 - 成绩最低的后 30% 的学生。操作方法要实现这样一些查询要求, 首先必须对数据表的一个或一个以上的字段排序索引。排序索引分为升序与降序,如果需要显示最高数据,应当排降序;否则应当排升序。具体操作可以按下列步骤进行:(1) 打开查询设计器,并添加所要查询的表。(2) 选取希望出现在查询结果中的字段。(3) 指定排序的基准字段。(4) 切换至“杂项”选项卡页面,取消复选框“全部”选定状态。(5) 如果要指定显示记录数,则在“记录个数”选项的文本框中输入数值,或用其微调按钮选定数值。 如果是要显示多少百分比

26、的数据记录,则先要选定复选框“百分比”,在输入具体的数值。操作实例实例 1:利用查询显示表成绩中,成绩最高的前10 个记录。操作步骤如下:(1)打开查询设计器,并添加所要查询的表成绩。(2)使用鼠标依次将学号、课程编号与成绩字段拖至“选定字段”列表框中。(3)选择“排序依据”选项卡,将成绩字段设置为排序依据字段,并选择降序。(4)选择“杂项”选项卡,取消复选框“全部”的选中状态,在“记录个数”文本框中键入数值10。(5)单击常用工具栏中的“运行”按钮。会发现成绩最高的前10 个记录以被列出在浏览窗口中。(6) 关闭浏览窗口及查询设计器, 并将所创建的查询以文件名cx5.qpr 保存。实例 2:

27、利用查询显示表成绩中,成绩最高的前30% 的记录。操作步骤如下:(1) 打开查询设计器,并添加所要查询的表成绩。(2) 使用鼠标依次将学号、 课程编号与成绩字段拖动至 “选定字段”列表框中。(3) 选择“排序依据”选项卡,将成绩字段设置为排序依据字段,并选择排降序。(4) 选择“杂项”选项卡,取消复选框“全部”的选中状态。 在“记录个数”文本框中键入数值30,并选定复选框“百分比”。(5) 单击常用工具栏中的“运行”按钮。会发现成绩是高的前30%的记录被显示在查询浏览窗口中。(6) 关闭浏 览窗 口及 查询 设 计 器, 并 将 所创 建的 查询以 文件cx6.qpr 保存。五、练习练习国二上

28、级模拟系统里第5 套的简单应用题。15分钟(略讲)渤海大学教案用纸2006 年 3 月- 11 - 在 score_manager数据库中查询学生的姓名和年龄 (计算年龄的公式是:2003-year (出生日期),年龄作为字段名),结果保存在一个新表new_table1中。5 分钟(略讲)5 分钟(略讲)25 分钟(详讲)35 分钟(详讲)渤海大学教案用纸2006 年 3 月- 12 - 教学主要内容教学方法时间分配【学习目标】知识点:9.条件查询。10. 联接查询。技能点 :1在“筛选”选项卡下设置查询筛选条件。2在“联接”选项卡下设置多表查询的联接条件。第三节条件查询一、指定查询条件我们常

29、常是要通过查询显示某些符合特定条件的数据记录,而很少需要所有的数据记录,要指定查询的条件,在查询设计器窗口选择“筛选”选项卡。1、各选项的含义在“筛选”选项卡页面上应当按行给出对数据表记录的筛选条件,一行是一个条件,可以设置多个条件: 而且各条件之间可以是与的关系,也可以是或的关系。设置筛选条件的过程,实际就是在“筛选”页面上各栏参数的过程。各栏的含义和操作方式如下:(1) “字段名”栏。单击该栏的文本输入框,再单击输入框右端的下拉按钮,在下拉列表框中选择需要出现在查询条件中的字段名。如果不是针对某一个字段创建查询条件,而是需要先利用包含某一个字段的函数计算,然后再用其结果创建筛选条件;则请单

30、击列表框中的选项,它将会打开表达式生成器帮助你创建表达式。(2) “实例”栏。给定筛选操作的条件值,可以直接在文本输入框中输入。键入条件值可以使用下面一些技巧。 1在键入字符串时, 除非此字符串值恰巧与来源表中某一个字段的名称相同,否则不必用引号引起来。 2在键入日期值或日期时间值时,一定要在其前后加上大括号,且必须采用严格日期格式,否则vfp会将它视为字符串。 3如果在“条件”栏中选择了 between操作符,在输入条件值时,请以逗号或关键字 and分隔下限值与上限值。 比如下面两种写法是允许的。3000,4000 3000 and 4000 4如果在“条件”栏中选择了in 操作符,在输入条

31、件值时,请用逗号分隔多个项目。例如,中文,金融(3) “条件”栏。单击文本输入框右端的下拉按钮,可以打开下拉列表框;在下拉列表框中选取一个操作符,以便决定表达式的操作性质。下表列出各种比较符的功能。 =:筛选与“实例”栏文本输入框中值相同的数据记录。例如, =50000:筛选出字段内容等于50000的记录。30 分钟(详讲)渤海大学教案用纸2006 年 3 月- 13 - like:可以在“实例”栏文本输入框中使用下列两个sql通配符。 %表示多个任意字符,字符数可以是 0 或 0 个以上。例如, abc%表示开头为 abc长度不限的字符串。下划线符号, 表示一个任意字符。 例如_a_表示第二

32、个字符为a,且长度为 3 的字符串。如果是 _a% 则表示第二个字符为a且前面是一个字符,后面长度不限的任意字符串。例如, like “王% ” :筛选出字段内容以中文字“王”开头而字数不限的所有记录。 =:筛选与“实例”栏文本框中值完全相符的记录。所谓“完全相符”就是不管是大小写及多余的空格都必须一模一样。例如, like“_文_” :筛选出字段内容的第二个字为“文”且长度为三个字的记录。例如,=“季节” :筛选出字段内容为“季节”的数据记录。 : 筛选出字段中数据大于 “实例”栏文本输入框中输入值的记录。例如, 50000:筛选出字段内容大于50000的数据记录。 =: 筛选出字段中数据大

33、于等于 “实例” 栏文本框中输入值的记录。例如, =50000 :筛选出字段内容大于等于50000的数据记录。 : 筛选出字段中数据小于 “实例”栏文本输入框中输入值的记录。例如, 50000:筛选出字段内容小于50000的数据记录。 =: 筛选出字段中数据小于等于 “实例” 栏文本框中输入值的记录。例如, 操作符,最后在“实例”输入框中键入: 80。(5) 单击常用工具栏中的“运行”按钮,查询结果会出现在浏览窗口中,显示的数字即为成绩大于80 的记录数。(6) 关闭浏览窗口及查询设计工具,并将所创建的查询以文件名cx9保存。第四节联接查询到目前为止, 我们所创建的查询都仅仅以单一表作为数据源

34、。但实际系统中,往往要求通过多个表创建查询。将不同主题的数据存放在不同的表中,并根据其间的相关性创建彼此间的联接是关系数据库系统最重要的特点。一、多表查询的特点多表查询操作最大的特点, 一是必须将所要查询的各表依次添加到查询中,应当是先添加父表,再添加子表。二是必须指定表间的联接类型。当在查询设计器中添加两个以上的表时,查询设计器会弹出“联接条件”对话框。系统要求设置两个表之间的联接条件和联接类型。如果在数据库设计器中已经创建了两个表之间的关系,那么查询设计器会自动显示这样的联接条件;如果还没有创建两个表之间的关系,查询设计器自动检查,并以两个表中的同名字段提示为联接条件;但是若两个表中不拥有

35、同名的字段,查询设计器将可能无法提出联接条件,而需要自己按照要求来创建联接条件。20 分钟(详讲)30 分钟(详讲)渤海大学教案用纸2006 年 3 月- 15 - 二、设置联接条件可以随时通过 “联接条件” 对话框来创建或修改两个表之间的联接条件也就是定义关系表达式。操作步骤如下:1、用鼠标双击表间的联接线,打开“联接条件”对话框。2、单击左侧文本输入框右端的按钮,在其下拉列表框中选择父表的联接字段。3、单击右侧文本输入框右端的按钮,在其下拉列表框中选择子表的联接字段。4、在“联接类型”区域中选择单选项,以便决定连接的类型。各选项说明如下:内部联接:查询结果仅包含两表中满足联接条件的记录。左

36、联接:查询结果将包含记录及子表中满足联接条件的记录。右联接:查询结果将包含所有记录及父表中满足联接条件的记录。完全联接:查询结果将包含父表和子表中所有记录。系统默认是“内部联接”类型,单击“确定”按钮。在查询设计器中可以看到两个表之间出现了一条连线,示意两个表之间创建了联接。如果打开“联接”选项卡,还会看到新创建的联接成为其中的一个联接条件。三、编辑联接条件删除联接假如想要删除某一个联接, 只要在查询设计器的 “联接”选项卡中选择想要删除的联接条件,然后再单击“移去”按钮。修改联接假如想要修改某一个联接, 只要在查询设计器的 “联接”选项卡中使用鼠标单击要改变的联接条件最左端第二个按钮(水平双

37、箭头按钮),即会打开“联接条件”对话框,以便进行需要的修改。改变联接类型要改变联接的类型,只要在查询设计器的“联接”选项卡中,使用鼠标单击想要修改的联接条件的“类型”下拉列表, 然后从选择新的联接类型即可。四、查询实例要丛父表学生与子表成绩中,查询出每一位学生的成绩。1、在命令窗口中执行命令;open database 学生管理,打开数据库学生管理。2、打开查询设计器,添加父子两表学生和成绩。3、由于我们已在数据库学生管理中定义这两个表间的关联,因此两个表之间的联接条件会正确地创建好,并出现在“联接”选项卡页面中。4、在“字段”选项卡中,将下列字段移至“选定字段”列表框中。学生. 学号学生.

38、姓名成绩. 课程编号渤海大学教案用纸2006 年 3 月- 16 - 成绩. 成绩5、单击常用工具栏中的“运行”按钮,每一位学生的成绩就清楚地显示在浏览窗口中。练习:国二上机模拟练习: 21 套、22 套。20 分钟(详讲)15分钟(略讲)渤海大学教案用纸2006 年 3 月- 17 - 教学主要内容教学方法时间分配【学习目标】知识点:11. 数据分组。12. 查询输出去向。技能点 :1在“分组依据”选项卡下设置查询分组条件。2 设置查询的输出去向。第五节数据分组小计一、一般分组操作方式利用函数可以获得查询结果中某一字段“所有”记录的统计值, 但是如果希望分类统计, 比方说,想要计算出各个院系

39、学生的人数,或计算出每个学生各科的平均成绩等诸如此类的计算,则必须利用分组小计功能实现。在查询设计器中,打开“分组依据”选项卡。在 “可用字段”列表框中,显示了所有会出现在查询结果中的字段名,按给定原则选择要作为分组基准的字段,并移入“分组字段”列表框中。可以实现多层次分组统计, 分组层次是由 “分组字段” 列表框中的字段顺序决定的。 第一字段对应首层分组, 第二个字段对应第二层分组, 其余依次类推。可以通过在 “分组字段”列表框中移动字段上下顺序来改变分组的层次。操作实例实例 1:要检查表成绩中,每个学生的平均成绩,操作步骤如下:(1) 打开查询设计器,并添加所要查询的表成绩。(2) 将学号

40、字段拖动至“选定字段”列表框中。(3) 在“函数和表达式” 文本框中输入: avg (成绩. 成绩) as 平均成绩。(4) 使用鼠标单击“添加”按钮将表达式添加至“选定字段”列表框中。(5) 打开“分组依据”选项卡, 。将学号字段移至“分组字段”列表框中。(6) 单击常用工具栏中的“运行”按钮,每个学生的平均成绩会显示在浏览窗口中。(7) 关闭浏览窗口及查询设计器工具,并将所创建的查询以文件名 cx10.qpr 保存。实例 2:要检查表学生中, 各个院系的男生与女生的总人数,操作步骤如下:(1)打开查询设计器,并添加所要查询的表学生。(2)将院系字段拖动至“选定字段”列表框中。(3)在“函数

41、和表达式”文本框中输入:count(*) as 总人数。(4)使用鼠标单击“添加”按钮将表达式添加至“选定字段”列表框中。30 分钟(详讲)渤海大学教案用纸2006 年 3 月- 18 - (5)打开“分组依据”选项卡, 。将院系与性别字段移至“分组字段”列表框中。(6)单击常用工具栏中的“运行”按钮,各个院系的男生与女生的总人数会显示在浏览窗口中。(7)关闭浏览窗口及查询设计器工具,并将所创建的查询以文件名cx11.qpr 保存。实例 3:利用查询显示表学生中人数最多的前2 个系的院系名,人。本例其实是数据分组小计与名列前茅或垫底的查询的综合运用,具体操作步骤如下:(1)打开查询设计器,并添

42、加所要查询的表学生。(2)将院系字段拖动至“选定字段”列表框中。(3)在“函数和表达式”文本框中输入:count(*) as 总人数。(4)使用鼠标单击“添加”按钮将表达式添加至“选定字段”列表框中。(5)打开“分组依据”选项卡, 。将院系字段移至“分组字段”列表框中。(6)打开“排序依据”选项卡,将count(*) as 总人数移至“排序条件”列表框中,然后再确定按降序排列。(8) 打开“杂项”选项卡,取消复选框“全部”的选中状态,并在“记录个数”文本输入框中键入3。(9)单击常用工具栏中的“运行”按钮,人数最多的前院系会显示在浏览窗口中。(10)关闭浏览窗口及查询设计器工具,并将所创建的查

43、询以文件名 cx12.qpr 保存。二、按条件分组操作方式在前面讨论过如何给定查询条件, 然而那个条件是用来限制记录能否输出的依据, 这里讨论的查询条件是限制各分组信息能否输出的依据。所有说是对分组要求的进一步完善。要为某一种分组设置条件, 应当在“分组依据” 选项卡中, 单击“满足条件”按钮,弹出“满足条件”对话框。“满足条件” 对话框和在 “筛选”选项卡下的各部分的功能含义、操作方式方法完全一样。完成组别过滤条件的设置后,单击“确定”按钮离开此对话框, 返回“分组依据”页面。操作实例要检查表成绩中,平均成绩大于80 分的学生,显示他们的平均成绩是多少。要完成此项操作,按下列步骤进行。(1)

44、打开查询设计器,并添加所要查询的表成绩。(2)将学号字段拖动至“选定字段”列表框中。(3)在“函数和表达式”文本框中输入:avg (成绩 . 成绩) as 平均成绩。(4)使用鼠标单击“添加”按钮将表达式添加至“选定字段”列表20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 19 - 框中。(5)打开“分组依据”选项卡, 。将学号字段移至“分组字段”列表框中。(6)单击“满足条件”按钮,在对话框中设置条件表达式。平均成绩80。(7)单击“确定”按钮,返回“分组依据”选项卡页面。(8)单击常用工具栏中的“运行”按钮,平均成绩大于80分的学生的平均成绩会显示在浏览窗口中。(9) 关闭浏览窗

45、口及查询设计器工具,并将所创建的查询以文件名 cx13.qpr 保存。第六节查询结果的输出目的前面的练习中, 查询结果都是输出至浏览窗口中,这是系统默认的输出目的地。事实上可以自行指定要将查询结果送到何处。一、查询去向对话框要指定查询结果的输出目的地可以使用鼠标右键打开弹出菜单,并单击“输出设置”选项,或者在主菜单的“查询”下拉菜单中单击“查询去向”选项,屏幕将会弹出“查询去向”对话框。可以利用这个对话框设置查询结果的输出位置,在窗口中一共有 7 个操作按钮,它们各有不同的功能。其中浏览按钮默认是被选取的,它表示将查询结果输出至类似于browse打开的浏览窗口中。输出至浏览窗口中的查询结果将仅

46、供浏览之用,也就是它是只读的, 无法在其中进行添加、修改与删除的处理。这是默认的输出位置。二、查询结果保存在数据表中临时表单击“临时表”按钮,可将查询结果输出至一个由用户命名的虚拟临时只读数据表中。系统一旦退出,临时表就会消失。若需要查看其内容,先在“查询”下拉菜单中单击 “运行查询” 选项,再在“显示”下拉菜单中单击“浏览”功能实现。表单击“表”按钮,可将查询结果输出至一个由用户命名,在外存上创建的数据表中,不同的查询结果放在多个表中。若需要查看其内容,先在“查询”下拉菜单中单击“运行查询”选项,再在“显示”下拉菜单中单击“浏览”功能实现。三、用图形表现查询结果单击“图形”按钮,将可以利用m

47、icrosoft graph使查询结果以商业统计分析图的形式显示。 不过当单击此按钮后, 系统并不会立即生成图形。事实上,只是在运行查询时才会提供向导,临时生成所需要的图形。例如,计算出学生的平均成绩,并根据运算结果绘制出一个垂直方向的立体直方图。(1) 打开查询设计器,并添加所要查询的表成绩。(2) 将学号字段拖动至“选定字段”列表框中。(3) 在“函数和表达式”文本框中输入:avg (成绩 . 成绩) as 平均成绩。10 分钟(详讲)20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 20 - (4) 使用鼠标单击“添加”按钮将表达式添加至“选定字段”列表框中。(5) 打开“分组依

48、据”选项卡,将学号字段移至“分组字段”列表框中。(6) 打开“查询去向”对话框,单击“图形”按钮,然后再单击“确定”按钮。(7) 单击常用工具栏的“运行”按钮。这时系统将会启动图形向导,向导的第一步将会出现在屏幕画面上,只要根据向导一步一步地操作,就可以创建需要的图形。(1) 从“可用字段”列表框中将“平均成绩”字段拖至“数据系列”列表框中。(2) 再将学号字段拖动至 “坐标轴” 文本框中。 单击“下一步”按钮,将弹出新的向导画面。(3) 选择所要绘制的图形样式, 选择垂直方向的立体直方图。 单击 “下一步”按纽,又会弹出新的向导画面。(4) 键入该图形的标题文本,并决定是否要加上图例,最后单

49、击“完成”按钮,这时会弹出“另存为”对话框。(5) 输入一个文件名,并单击“保存”按钮后,为成绩表绘制直方图的工作才算真的完成了,并创建了一个表单文件。接下来, vfp将自动在表单设计器中打开新创建的表单文件。可以在表但设计工具中对表单及其中的立体直方图进行更进一步的格式化操作,直到其外观完全符合需求为止。(6) 完成表单中的操作后,单击常用工具栏中的“运行”按钮,将可清晰地见到查询结果的图形的输出全貌。(7) 关闭表单、表单设计器及查询设计器,并将新建查询以文件名cx.14保存。四、在屏幕上输出画面如果要将查询的结果输出至目前打开的窗口或桌面上,单击 “屏幕”按钮。vfp允许在将查询输出至活

50、动窗口或桌面的同时,也可将查询结果输出至打印机或一个文本文件中。以下是各个选项的用途说明。无:表示仅将查询结果输出至活动窗口或桌面。到打印机: 表示除了将查询结果输出至活动窗口或桌面外,也将查询结果输出至打印机打印出来。到文本文件: 表示除了将查询结果输出至活动窗口或桌面外,也将查询结果输出至一个文本文件。 可以直接在文本输入框中键入文本文件名,或单击“到文本文件”按钮打开对话框,选择一个已经存在的文本文件来保存。如果不指定文件的扩展名, 系统将采用默认的扩展名 .txt。不输出列标头: 或许希望输出查询结果时, 不要显示出各个字段的标题,那么就应当选中此复选框。屏幕之间暂停: 在默认状态下,

51、 此复选框会被选定, 表示当查询结果的行数过多, 在一页面无法显示完毕时, vfp会在每显示一页后暂停,并提示按任一键继续显示。如果不需要这种功能,希望一次显示完毕,可取消此复选框的选定。10 分钟(略讲)渤海大学教案用纸2006 年 3 月- 21 - 五、以报表方式输出查询结果如果希望查询结果以报表的形式输出,单击“报表”按钮。要实现这一操作,实现必须创建一个报表格式文件,而查询结果仅仅作为报表格式文件的数据源。vfp提供了多种创建报表的工具,如报表设计器,各种报表向导等, 若是配合查询设计器的查询结果及经过报表设计器创建的报表格式文件,能够轻易制作出复杂性较高的报表。必需注意,所创建的报

52、表格式文件中,各数据字段必需与查询结果的输出字段完全匹配,否则该报表格式文件将无法使用。六、按邮寄标签形式输出如果希望查询结果以邮寄标签的形式输出,单击“标签”按钮。要实现这一操作,实现必须创建一个标签格式文件,而查询结果仅仅作为标签格式文件的数据来源。必须注意,所创建的标签格式文件中,各数据字段必需与查询结果的输出字段完全匹配,否则将发生错误。练习:国二上机模拟练习系统:第2 套。10 分钟(详讲)渤海大学教案用纸2006 年 3 月- 22 - 教学主要内容教学方法【学习目标】知识点:1. 了解视图的特点2. 熟练使用视图设计器的使用3. 掌握本地视图的操作4. 掌握多表视图的操作技能点

53、:1. 熟练使用视图设计器的使用2. 掌握本地视图的操作3. 掌握多表视图的操作第七节建立视图一、视图的概念视图兼有“表”和“查询”的特点,与查询相类似的地方是,可以用来从一个或多个相关联的表中提取有用信息;与表相类似的地方是。 可以用来更新其中的信息, 并将更新结果永久保存在磁盘上。可以用视图使数据暂时从数据库中分离成为自由数据,以便在主系统之外收集和修改数据。使用视图可以从表中提取一组记录,改变这些记录的值, 并把更新结果送回到基本表中。可以从本地表、其他视图、存储在服务器上的表或远程数据源中创建视图,所以 visual foxpro的视图又分为本地视图和远程视图。使用当前数据库中 vis

54、ual foxpro 表建立的视图是本地视图, 使用当前数据库之外的数据源(如 sql server )中的表建立的视图是远程视图。比如可以从 sql server 或其他 odbc 数据源中创建视图,并选择“发送更新”选项,在更新或更改视图中的一组记录时,由visual foxpro 将这些更新发送到基本表中。视图是操作表的一种手段,通过视图可以查询表,也可以更新表。视图是根据表定义的,因此视图基于表,而视图可以使应用更灵活,因此它又超越表。视图是数据库中的一个特有功能,只有在包含视图的数据库打开时,才能使用视图。二、视图的建立可以用“视图设计器”建立视图,同样由于视图的基础是 sql se

55、lect语句,所以只有真正理解了 sql select 才能设计好视图。建立视图的方法可以使用以下方法建立视图: 1、用 create view 命令打开视图设计器建立视图。 2、 选择“文件”菜单下的“新建” ,或单击“常用”工具栏上的“新建”按钮,打开“新建”对话框,然后选择“视图”并单击“新建文件”打开视图设计器建立视图,如图所示。 3、在项目管理器的“数据”选项卡下将要建立视图的数据库分支展开,并选择“本地视图”或“远程视图” ,然后单击“新建”命令按钮打开视图设计器建立视图。 4 、 如果熟悉 sql select ,还可以直接用建立视图的 sql 命令 create view as

56、 建立视图时间分配10 分钟(略讲)20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 23 - 2. 视图设计器视图设计器和查询设计器的使用方式几乎完全一样。主要有以下几点不同: 1、查询设计器的结果是将查询以qpr 扩展名的文件保存在磁盘中;而视图设计完后,在磁盘上找不到类似的文件,视图的结果保存在数据库中。 2、 由于视图是可以用于更新的,所以它有更新属性需要设置,为此在视图设计器中多了一个“更新条件”选项卡,如图6.9 所示。 3、在视图设计器中没有“查询去向”的问题。读者可以对照一下图6.2 的查询设计器界面和图6.9 的视图设计器界面,它们的使用方式几乎是一样的,稍后将在6.

57、2.3 中专门介绍在“更新条件”选项卡中设置更新属性的方法,及视图与数据更新的一些问题。三、远程视图与连接为了建立远程视图,必须首先建立连接远程数据库的“连接”, “连接”是 visual foxpro数据库中的一种对象。定义数据源和连接从 visual foxpro内部可定义数据源和连接。数据源一般是 odbc 数据源,开放数据库互连odbc 是一种连接数据库的通用标准。为了定义odbc 数据源必须首先安装odbc 驱动程序。利用odbc驱动程序可以定义远程数据库的数据源,也可以定义本地数据库的数据源。连接是 visual foxpro数据库中的一种对象,它是根据数据源创建并保存在数据库中的

58、一个命名连接,以便在创建远程视图时按其名称进行引用,还可以通过设置命名连接的属性来优化 visual foxpro与远程数据源的通信。当激活远程视图时,视图连接将成为通向远程数据源的管道。建立连接可以用如下方法建立连接: 1、用 creae connection命令打开“连接设计器” ,或完全用命令方式建立连接,但命令格式较复杂,一般不使用。20 分钟(详讲)渤海大学教案用纸2006 年 3 月- 24 - 2、选择“文件”菜单下的“新建” ,或单击“常用”工具栏上的“新建”按钮,打开“新建”对话框,然后选择“连接”并单击“新建文件”打开连接设计器建立连接。 3、在项目管理器的“数据”选项卡下

59、将要建立连接的数据库分支展开,并选择“连接”,然后单击“新建”命令按钮打开连接设计器建立视图。连接设计器的界面如图6.10 所示。一般只需要选择“数据源”就可以了,并且可以单击“验证连接”命令按钮验证一下是否能够成功地连接到远程数据库。如果连接成功则可以单击工具栏上的“保存 ”按钮将该连接保存,以备建立和使用远程视图时使用。默认保存为“连接 1” 。注意:这里选择的数据源是用0dbc 数据源管理器建立的0dbc 数据源,一般可以在 windows的控制面板中打开odbc 数据源管理器建立数据源。单击“新建数据源”命令按钮也可以打开odbc 数据源管理器。设计远程视图连接建立好后就可以建立远程视

60、图了。建立远程视图和建立本地视图的方法是基本一样的,只是在打开视图设计器时略有区别。建立本地视图时,由于是根据本地的表建立视图,所以直接进入“添加表或视图”界面和“视图设计器”的界面。而建立远程视图时,一般是要根据网络上其他计算机或其他数据库中的表建立视图,所以需要首先选择“连接”或“数据源”,然后再进入上述界面。另外还有一点要特别注意,即利用数据源或连接建立的远程视图的sql 语法要符合远程数据库的语法,例如 sql server的语法和 visual foxpro 的语法就有所区别。四、视图与数据更新视图是根据基本表派生出来的,所以把它叫做虚拟表,但在 visual foxpro 中它已经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论