第6章查询与视图_第1页
第6章查询与视图_第2页
第6章查询与视图_第3页
第6章查询与视图_第4页
第6章查询与视图_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 查询与视图 Visual FoxPro提供了两类查询和操作数据库的工具,就是查询和视图。 视图兼有表和查询的特点,查询可以根据表或视图定义。 查询和视图的用途不同,但有很多类似之处,都是用来从一个或多个相关联的数据表中提取有用的信息,创建步骤也非常相似。使用“查询设计器”,能方便地生成一个查询,从而获得用户所需要的数据。视图能帮助用户从本地或远程数据源中获取相关数据,而且还可以对这些数据进行修改并更新。 6.1 查询 6.2 视图 6.3 查询文件和视图的特点6.1 查询 查询是将一些符合某些条件的记录筛选出来形成一个子表,而且此子表可以像表一样保存起来以供随时调用。 查询是从指定的表

2、或视图中提取满足条件的记录,然后定向输出查询结果。查询文件的扩展名为.QPR,它的主体是SELECT语句 。 用户不能修改查询结果,且不会影响原来的数据文件。可以在查询中执行计算,并且还可以使用查询作为表单或报表的数据来源。6.1.2 建立查询 1. 1. 利用利用“查询设计器查询设计器”创建查询创建查询 利用“查询设计器”创建查询的基础是SQL SELECT语句。利用查询设计器基本步骤是:打开查询设计器;进行查询设置,即设置被查询的表、联接条件、字段等输出要求和查询结果的去向;执行查询;保存查询设置。 打开查询设计器的方法有很多: (1)菜单方式 选择【文件】菜单下的【新建】命令,或单击选择

3、【文件】菜单下的【新建】命令,或单击“常用常用”工具栏上的工具栏上的“新建新建”按钮,打开【新建】对话框,然后选择按钮,打开【新建】对话框,然后选择“查询查询”,单击,单击“新建文件新建文件”,打开,打开“查询设计器查询设计器”窗口,弹出窗口,弹出“添加表或视图添加表或视图”对话框,添加查询的表或视图。单击【关闭】按钮,进入对话框,添加查询的表或视图。单击【关闭】按钮,进入“查询设查询设计器计器”窗口。打开查询设计器建立查询。窗口。打开查询设计器建立查询。 (2)命令方式 在在“命令命令”窗口中输入窗口中输入CREATE QUERY命令,弹出命令,弹出“添加表或视添加表或视图图”对话框,添加查

4、询的表或视图。单击【关闭】按钮,进入对话框,添加查询的表或视图。单击【关闭】按钮,进入“查查询设计器询设计器”窗口。打开查询设计器建立查询。窗口。打开查询设计器建立查询。 使用查询设计器建立查询 1.打开查询设计器后,都会出现如图6.1所示弹出“添加表或视图”对话框,单击“添加”按钮(如添加自由表可单击其他按钮)添加查询所需的表或视图。图6.1 “添加表或视图对话框”2.当需要添加多个表时,即一个查询时基于多个表时,如果表之间事先没有建立联接,系统会提示是否对表进行联接,例如选择添加了“学生”表和“选课”表,系统弹出如图6.2所示的联接提示。单击“确定”按钮自动建立联接。图6.2 “联接条件”

5、对话框3.当选择了表或视图后,单击“关闭”按钮就进入了如图6.3所示的查询设计器界面。查询设计器界面的各选项卡,与SQL SELECT语句的各短语是相对应的。图6.3 查询设计器“字段”选项卡“联接”选项卡“筛选”选项卡“排序依据”选项卡“分组依据”选项卡“杂项”选项卡通过“查询设计器”完成查询以后,在“查询设计器”中可以查看查询所生成的SQL语句。只要单击“查询设计器”工具栏中的按钮,或者从【查询】菜单中选择【查看SQL】命令,或右击“查询设计器”窗口,在弹出的快捷菜单中选择“查看SQL”菜单项,都将出现一个如图6.10所示的只读窗口,显示查询所对应的SQL语句。图6.10 显示查询所对应的

6、SQL语句 【查询去向】 保存查询文件 2.2.利用查询向导创建查询利用查询向导创建查询 【说明】以下步骤以建立一个含有学生的学【说明】以下步骤以建立一个含有学生的学号、姓名、性别、课程号、成绩的查询,筛号、姓名、性别、课程号、成绩的查询,筛选条件为选条件为 专业专业=”计算机计算机”,按照学号升序排,按照学号升序排序。序。SQL语句如下语句如下: SELECT 学生.学号,学生.姓名,性别,课程号,成绩 FROM 学生,课程; FROM 学生 JOIN 选课 ON 学生.学号=选课.学号; WHERE 专业=”计算机” ORDER BY 学生.学号 (1)在【工具】菜单中,选择【向导】子菜单

7、中的【查询】命令,弹出“向导选取”对话框。或者选择【文件】菜单中的【新建】命令,在弹出的“新建”对话框中选中【查询】单选按钮。单击【向导】按钮,弹出“向导选取”对话框。 (2)在 “向导选取”对话框中,选择“查询向导”选项,单击“确定”按钮后弹出“查询向导”对话框。进入到“步骤1-字段选取”对话框。 (3)选择需要查询的字段以后,单击“下一步”按钮,弹出“步骤2-为表建立关系”对话框。 (4)单击“下一步”按钮,弹出“步骤3-筛选记录”对话框。 (5)单击“下一步”按钮,弹出“步骤4-排序记录”对话框。 (6)单击“下一步”按钮,弹出“步骤5-完成”对话框。 (7)选中 “保存查询”单选按钮,

8、单击“完成”按钮。弹出“另存为”对话框。在对话框中输入查询文件的名字(如“query1”),单击“保存”按钮保存查询。此时可以在保存的路径下看到查询文件query1.qpr。 【例6.1】创建一个含有订购了商品号为“106”的客户号、姓名的查询,查询的结果按照客户号升序排序。 【例6.2】利用分组功能统计每位同学各自成绩的平均分。 【例6.3】建立一个查询,查询选修了“面向对象程序设计”课程的学生的学号、姓名和该门课程的成绩。6.1.3 使用查询1.修改查询文件保存文件退出查询设计器后,在保存路径的文件夹内会看到扩展名为.QPR的文本文件。修改查询文件中的设置可使用如下方法: 菜单方式。选择【

9、文件】菜单中的【打开】命令,选择需要修改的查询文件。菜单方式。选择【文件】菜单中的【打开】命令,选择需要修改的查询文件。 项目管理器方式。选择项目管理器的【数据】选项卡中的【查询】选项,单击项目管理器方式。选择项目管理器的【数据】选项卡中的【查询】选项,单击“修改修改”按钮。按钮。 命令方式。在命令窗口输入:命令方式。在命令窗口输入:MODIFY QUERY ,进入查询设计,进入查询设计器进行修改。器进行修改。2.运行查询文件(1)在查询设计器中进行查询。 按组合键【按组合键【Ctrl+Q】。】。 单击工具栏中的按钮。单击工具栏中的按钮。 选择【查询】菜单中的【运行查询】命令。选择【查询】菜单

10、中的【运行查询】命令。(2)如果已保存并退出查询设计器,可采用如下方法执行查询文件。 以命令方式执行查询,其命令格式是:以命令方式执行查询,其命令格式是:DO , 查询文件的扩展名.QPR不能省略。 如果在项目管理中添加了查询,可将数据选项卡的查询项展开,选择要运行的如果在项目管理中添加了查询,可将数据选项卡的查询项展开,选择要运行的查询,并单击查询,并单击“运行运行”按钮。按钮。 3.查询去向 建立查询文件后,选择【查询】菜单中的【查询去向】命令,可以打开一个“查询去向”对话框,在其中选择查询结果的输出方式。 具体说明如下: 浏览:在浏览窗口中显示查询结果,这是默认的输出去向;浏览:在浏览窗

11、口中显示查询结果,这是默认的输出去向; 临时表:将查询结果存于一个由用户命名的只读临时表中,该临时表临时表:将查询结果存于一个由用户命名的只读临时表中,该临时表打开后可以查看其内容,关闭后系统自动将其删除;打开后可以查看其内容,关闭后系统自动将其删除; 表:将查询结果存于一个由用户命名的数据表中;表:将查询结果存于一个由用户命名的数据表中; 图形:将查询结果与图形:将查询结果与Microsoft Graph(包含在(包含在VFP中的一个独立的中的一个独立的应用程序)一起应用,进入应用程序)一起应用,进入“图形向导图形向导”对话框,可以定义布局、图对话框,可以定义布局、图形样式等;形样式等; 屏

12、幕:将查询结果在屏幕:将查询结果在VFP的主窗口中或当前活动输出窗口中显示;的主窗口中或当前活动输出窗口中显示; 报表:将查询结果输出到一个报表文件报表:将查询结果输出到一个报表文件(.FRX)中;中; 标签:将查询结果输出到一个标签文件标签:将查询结果输出到一个标签文件(.LBX)中。中。6.1.4 查询设计器的局限性 查询设计器只能建立一些比较规则的查询,而复杂的查询设计器就设计不出来,而且也不能利用查询设计器进行修改,如有一个用文本编辑器建立的如下内容的查询文件 select 学号学号,课程号课程号,成绩成绩 from 选课选课 out where 成成绩绩=;(select max(成

13、绩成绩) from 选课选课 where 学号学号=out.学号学号);order by 学号学号错误提示错误提示6.2.1 视图的概念 视图是从一个或多个数据表中派生出来的“表”,可以从一个或多个相关联的数据库表中提取有用的信息,也可以用来更新其中的信息,并将更新结果永久保存在磁盘上,它独立存储在数据库中。使用视图可以从表中提取一组记录,改变这些记录的值,并把更新结果送回到数据库表中。 当关闭数据库后,视图中就不再包含数据,但是作为从数据库表派生出来的“表”依然存在,当下次再打开数据库并使用视图的时候,视图会自动从数据库表中获取属于它的数据。 视图是数据库中的一个特有功能,只有在包含视图的数

14、据库打开时,才能使用视图。因此可以把视图看作是一个“虚表”,它动态地反映来源表中的当前数据。6.2.2 创建本地视图注意:注意:创建视图时必须先打开数据库。1.1.使用视图设计器创建本地视图使用视图设计器创建本地视图(1)打开视图设计器的方法: 使用使用CREATE SQL VIEW 命令打开视图设计器。命令打开视图设计器。 选择【文件】菜单的【新建】命令,打开选择【文件】菜单的【新建】命令,打开“新建新建”对话框,选择对话框,选择“视图视图”并并单击单击“新建文件新建文件”按钮可打开视图设计器。按钮可打开视图设计器。 在【数据库】菜单中选择【新建本地视图】命令,打开视图设计器。在【数据库】菜

15、单中选择【新建本地视图】命令,打开视图设计器。 在数据库设计器中单击右键,选择快捷菜单中的在数据库设计器中单击右键,选择快捷菜单中的“新建本地视图新建本地视图”,打开视,打开视图设计器。图设计器。 在项目管理器的在项目管理器的“数据数据”选项卡下展开数据库分支,选择选项卡下展开数据库分支,选择“本地视图本地视图”,单,单击击“新建新建”按钮打开视图设计器。按钮打开视图设计器。(2)视图设计器的界面视图设计器与查询设计器的形式及使用方式都非常相似。视图设计器与查询设计器的不同之处如下: 由于视图是可以用于更新的,因此,视图设计器中多了一个由于视图是可以用于更新的,因此,视图设计器中多了一个“更新

16、条件更新条件”选选项卡,用于更新属性的设置。项卡,用于更新属性的设置。 视图设计器中没有视图设计器中没有“查询去向查询去向”的选项。的选项。 视图设计完成后,在磁盘上没有物理文件存在,视图的结果保存在数据库中;视图设计完成后,在磁盘上没有物理文件存在,视图的结果保存在数据库中;而查询设计器的结果将查询以而查询设计器的结果将查询以.QPR的文件形式保存在磁盘中。的文件形式保存在磁盘中。 (3)视图设计器的使用 视图设计器有七个选项卡,与视图设计器有七个选项卡,与“查询设计器查询设计器”的使用方式几乎完全相同,的使用方式几乎完全相同,“视图设计器视图设计器”只只是多了一个是多了一个“更新条件更新条

17、件”选项卡,其他选项卡选项卡,其他选项卡完全相同,它们的设置方法也与完全相同,它们的设置方法也与“查询设计器查询设计器”一样。一样。 “更新条件更新条件”选项卡用于对视图中的数据进行选项卡用于对视图中的数据进行更新设置。用来设定视图文件中哪些字段可以更新设置。用来设定视图文件中哪些字段可以修改修改 。 为了通过视图能够更新基本表中的数据,需要在上图所示界面左下角选中“发送SQL更新”。下面介绍一下与“更新”有关的几个问题。 “字段名”列表框中列出了在“字段”选项卡中选定的字段。 钥匙图形表示该字段为关键字字段。可在此字段前单击,设定或取消钥匙图形表示该字段为关键字字段。可在此字段前单击,设定或

18、取消某字段为关键字字段。若要通过视图文件修改表,就必须在视图文件某字段为关键字字段。若要通过视图文件修改表,就必须在视图文件中将其设定为关键字字段。中将其设定为关键字字段。 铅笔图形表示字段为可修改字段。若选取某字段为可修改字段,则视铅笔图形表示字段为可修改字段。若选取某字段为可修改字段,则视图数据修改后可自动传回源表中。图数据修改后可自动传回源表中。 “表表”下拉列表框用来要更改的表,可选择其中的一个表或全部表。下拉列表框用来要更改的表,可选择其中的一个表或全部表。 “重置关键字重置关键字”按钮用来设定表的关键字字段及可修改字段为未选定按钮用来设定表的关键字字段及可修改字段为未选定状态,以便

19、重新设定。状态,以便重新设定。 “全部更新全部更新”按钮用来将关键字字段以外的所有字段设为可更新的字按钮用来将关键字字段以外的所有字段设为可更新的字段。段。 “发送发送SQL更新更新”复选框可设定是否用已修改的视图中的数据更改源复选框可设定是否用已修改的视图中的数据更改源表中的对应数据。表中的对应数据。 “SQL WHERE子句子句”用来设定冲突检测方式。用来设定冲突检测方式。 “使用更新使用更新”用来设定使用更新的方法。用来设定使用更新的方法。 【例6.4】使用“视图设计器”建立一个包含学生姓名、平均成绩以及各科总分的视图。 (1)将)将“学生学生”表和表和“选课选课”表添加到表添加到“视图

20、设计器视图设计器”中。中。 (2)在)在“视图设计器视图设计器”的的“字段字段”选项卡的选项卡的“可用字段可用字段”列表框中,选择字段列表框中,选择字段“姓名姓名”并添加到并添加到“选定字段选定字段”列表列表框中。分别在框中。分别在“函数和表达式函数和表达式”编辑框中输入编辑框中输入“AVG(选课选课.成绩成绩) AS 平均成绩平均成绩”和和“SUM(选课选课.成绩成绩) AS 总分总分”,并,并单击单击“添加添加”按钮把它们添加到按钮把它们添加到“选定字段选定字段”列表框中。列表框中。 (3)在)在“分组依据分组依据”选项卡中,从选项卡中,从“可用字段可用字段”列表框中列表框中选择选择“姓名

21、姓名”字段,将其添加到字段,将其添加到“分组字段分组字段”列表框。列表框。 (4)保存视图,单击)保存视图,单击“运行运行”按钮,可浏览视图。按钮,可浏览视图。 2.使用视图向导创建本地视图 用视图向导创建视图与用查询向导创建查询的方法几乎是一样的。可以按照向导的要求步骤,一步一步地建立视图。 启动“视图向导”的方法如下: 在在“数据库设计器数据库设计器”窗口中,选择【数据库】菜单中的【新建本地窗口中,选择【数据库】菜单中的【新建本地视图】命令,进入视图】命令,进入“新建本地视图新建本地视图”对话框,然后单击对话框,然后单击“视图向导视图向导”按钮。按钮。 在相应的数据库文件打开后,选择【文件

22、】菜单的【新建】命令,在相应的数据库文件打开后,选择【文件】菜单的【新建】命令,在弹出的在弹出的“新建新建”对话框中选择对话框中选择“视图视图”单选按钮,然后单击单选按钮,然后单击“向向导导”按钮。按钮。 在在“数据库设计器数据库设计器”窗口中,单击右键,在弹出的快捷菜单中选择窗口中,单击右键,在弹出的快捷菜单中选择【新建本地视图】命令,进入【新建本地视图】命令,进入“新建本地视图新建本地视图”对话框,然后单击对话框,然后单击“视图向导视图向导”按钮。按钮。 以上方法均可打开“本地视图向导”对话框。使用本地视图向导的操作步骤与使用查询向导的步骤基本相同,也分为选择字段、关联表、筛选记录、排序记

23、录和完成5个步骤。 【例6.5】使用“视图向导”建立一个只包含信息学院的老师的教师号、姓名、性别、职称的视图,记录按照教师号升序排序。 建立步骤如下: (1)打开本地视图向导)打开本地视图向导“步骤步骤1-字段选取字段选取”对对话框,选择话框,选择“教师教师”表,然后在表,然后在“可用字段可用字段”列列表框中依次选择表框中依次选择“教师号教师号”、“姓名姓名”、“性性别别”、“职称职称”字段添加到字段添加到“选定字段选定字段”列表框列表框中。中。 (2)由于本例是从单个表派生出的视图,因此,)由于本例是从单个表派生出的视图,因此,单击下一步则跳过为单击下一步则跳过为“步骤步骤2-为表建立关系为

24、表建立关系”对对话框,直接到话框,直接到“步骤步骤3-筛选记录筛选记录”对话框。此例对话框。此例要显示记录的条件为:教师要显示记录的条件为:教师.部门部门=”信息学院信息学院”。 (3)单击下一步,选择排序字段和排序方式。)单击下一步,选择排序字段和排序方式。 (4)单击下一步,在)单击下一步,在“步骤步骤4a-限制记录限制记录”对对话框中通过指定一定百分比的记录,或者选择话框中通过指定一定百分比的记录,或者选择一定数量的记录,来进一步限制视图中的记录。一定数量的记录,来进一步限制视图中的记录。此例选择全部记录此例选择全部记录 。 (5)单击)单击“下一步下一步”按钮,弹出按钮,弹出“步骤步骤

25、5-完成完成”对话框。对话框。 (6)单击)单击“完成完成”按钮,在按钮,在“视图名视图名”对话框对话框中输入视图名称:信息学院教师视图。中输入视图名称:信息学院教师视图。6.2.3 创建远程视图 Visual FoxPro 支持远程视图,通过远程视图可以操作其他平台或远程的数据库。远程视图通过“连接”连接到远程数据库。 创建远程视图,必须首先建立连接远程数据库的“连接”,“连接”是Visual FoxPro数据库中的一种对象。它是根据数据源创建并保存在数据库中的一个命名连接,为了方便在创建远程视图时按其名称进行引用。从Visual FoxPro内部是可以定义数据源和连接的。 注意:数据源一般

26、是数据源一般是ODBC数据源,为了定义数据源,为了定义ODBC数数据源,必须首先安装据源,必须首先安装ODBC驱动程序。利用驱动程序。利用ODBC驱驱动程序可以定义本地数据库的数据源,也可以定义远动程序可以定义本地数据库的数据源,也可以定义远程数据库的数据源。程数据库的数据源。 可以用如下方法建立连接: 用用CREATE CONNECTION命令打开命令打开“连接设连接设计器计器”对话框,或完全用命令方式建立连接。对话框,或完全用命令方式建立连接。 选择【文件】菜单中的【新建】命令,打开选择【文件】菜单中的【新建】命令,打开“新建新建”对话框,选中对话框,选中“连接连接”单选按钮并单单选按钮并

27、单击击“新建文件新建文件”按钮打开连接设计器建立连接。按钮打开连接设计器建立连接。 在项目管理器的在项目管理器的“数据数据”选项卡中将要创建连选项卡中将要创建连接的数据库分支展开,选择接的数据库分支展开,选择“连接连接”选项,单选项,单击击“新建新建”命令按钮打开连接设计器创建连接。命令按钮打开连接设计器创建连接。 连接建立好后就可以建立远程视图了,建立远程视图的方法与建立本地视图的方法是基本一样的。6.2.4 使用视图 视图不仅可以用来和更新数据,还可以通过调整视图的属性来提高性能。视图的使用类似于表,可以: 在所属的数据库打开后,使用在所属的数据库打开后,使用USE命令打开或关闭视命令打开

28、或关闭视图。图。 在显示浏览窗口修改视图中的记录。在显示浏览窗口修改视图中的记录。 使用使用SQL语句操作视图。语句操作视图。 在文本框、表格控件、表单或报表中使用视图作为数在文本框、表格控件、表单或报表中使用视图作为数据源。据源。 视图在使用时,将作为临时表在当前工作区打开,而在另一工作区同时打开基本表。对视图来说,适用于表的命令基本都可以用于视图。6.3 查询文件和视图的特点 6.3.1 6.3.1 查询文件与视图的区别查询文件与视图的区别 (1)结果的输出形式: 查询是用查询是用SQL SELECT语句从表和视图中提取满足条件的记录输出到语句从表和视图中提取满足条件的记录输出到指定的目标,如表、图表、报表、浏览器等,在查询设计器中可以选指定的目标,如表、图表、报表、浏览器等,在查询设计器中可以选择【查询】菜单中的【查询去向】命令,或单击查询设计器工具栏中择【查询】菜单中的【查询去向】命令,或单击查询设计器工具栏中的的“查询去向查询去向”按钮为查询指定输出方式或去向。按钮为查询指定输出方式或去向。 视图的结果仅为一般的表文件数据。视图的结果仅为一般的表文件数据。 (2)能否更新数据: 查询不能更新数据,不具备数据回存的性质,仅供输出查看。查询不能

温馨提示

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

最新文档

评论

0/150

提交评论