您的位置: 网站首页 > 程序开发 > Visaul FoxPro程序设计 > 第6章 查询与SQL命令 > 【6.3 使用查询设计器建立查询】

6.3 使用查询设计器建立查询

 

6.3  使用查询设计器建立查询

查询设计器是一种可视化的、完全交互式的建立查询的工具。查询设计器不仅可供用户通过完全交互式的、可视化的界面进行直观操作,建立单表或多表的.opr类型的查询文件而且也可以选择不同的输出方式,形成不同类型的多种文件,提供多种资源。同时,使用查询设计器建立查询会自动生成相应的Select-SQL语句。

下面以实例的形式来说明如何使用设计器建立查询文件。

在“学生资料”数据库中,有“学生档案表”(xsda.dbf)和“学生成绩表”(xscj.dbf)数据库表,通过查询设计器设计来建立查询文件,要求查询结果包含班级、平均成绩、最高成绩和最低成绩字段,以平均成绩的降序排序。

6.3.1  打开查询设计器

同样,打开或者新建查询,可以通过以下三种方法来操作。

1)命令方式打开。

在命令窗口输入“Create Query”命令,进入如图6-19所示的“添加表或视图”和“查询设计器”窗口。

2)在“项目管理器”打开。

选择“项目管理器”中的“数据”选项卡,在该选项卡中选择“查询”,然后单击“新建”按钮,将弹出“新建查询”对话框,单击“新建查询”图形按钮,进入如图6-19所示的“添加表或视图”对话框和“查询设计器”窗口。

3)利用菜单打开。

单击菜单“文件”“新建”命令,在弹出的“新建”对话框中选择“查询”单选按钮,再单击“新建文件”图形按钮。这时,如事先没有打开数据表,首先进入“打开”对话框,选择需要打开的数据表,然后将进入如图6-19所示的“添加表或视图”对话框和“查询设计器”窗口。如事先已打开了数据表,则直接进入“查询设计器”窗口。

6-19  “添加表或视图”对话框与“查询设计器”窗口

6.3.2  添加表或视图

在如图6-19所示的“数据库”下拉列表框中选择“学生资料”;在“数据库中的表”列表框中选择指定数据库中的表,然后单击“添加”按钮,将选定的表添加到“查询设计器”中作为查询的对象(如果查询文件涉及多个表可以依次选择并添加)。

注意:“其他”按钮用于选择不在数据库中的其他表作为查询对象的数据表。在“选定”设置区中,用于指定查询对象的类型(表或视图)作为查询源。

本例在“数据库中的表”列表框中首先选择“xscj”,单击“添加”按钮,可以看到“xscj”数据表被添加到查询设计器中。再选择“xsda”数据表,单击“添加”按钮,将弹出如图6-20所示的“联接条件”对话框,确定两个数据表的联接条件。

6-20  “联接条件”对话框

在本例中,将自动选择“编号”作为联接条件(如果两个数据表有多个公共字段,用户就要选择某个公共字段作为联接条件),然后单击“确定”按钮,这时 xsda”数据表被添加到“查询设计器”窗口中,并以“编号”字段将“xscj”数据表和“xsda”数据表建立了关联;最后单击“添加表或视图”对话框的“关闭”按钮,其“查询设计器”窗口便被激活为当前窗口,如图6-21所示。

6-21  “查询设计器”窗口

6.3.3  设计查询

1)设计查询的输出字段。

在如图6-21所示的“查询设计器”窗口中,“字段”选项卡用来确定查询结果的输出字段或字段表达式。如果要选定的字段是表中的字段,在“可用字段”列表框中用鼠标双击查询结果需要的字段,该字段就“添加”到“选定字段”列表框中;如果要选定的是表达式,单击“函数和表达式”右侧的图标按钮,在弹出的“表达式生成器”窗口中设置表达式,或者在“函数和表达式”下方的文本框中直接输入表达式,然后单击“添加”按钮,表达式便添加到“选定字段”列表框中,如图6-22所示。

本例选择学号、班级、课程名称、课程性质字段及AVG(成绩)、MAX(成绩)、MIN(成绩)表达式。

6-22  设计查询的字段窗口

在设置平均成绩、最高成绩和最低成绩时,每个表达式分别如下:

AVG(语文+数学+政治+外语) AS 平均成绩

MAX(语文+数学+政治+外语) AS 最高成绩

MIN(语文+数学+政治+外语) AS 最低成绩

此时单击主窗口“常用”工具栏的“运行”按钮,则运行结果如图6-23所示。

6-23  运行结果

2)设计查询的筛选条件。

“筛选”选项卡用来设置查询的筛选条件。筛选条件可以由一个字段的关系表达式或多个字段的关系表达式逻辑组合而成,但通用型和备注型字段不能用作筛选条件。

在“筛选”选项卡中,选择“性别”作为筛选字段,选择“=”作为筛选条件,输入“.T.”作为筛选的输入值,如图6-24所示。

6-24  设置查询的筛选条件

3)设计排序准则。

“排序依据”选项卡用于设置排序准则。单击“排序依据”选项卡,在“选定字段”列表框中选择“AVG(语文+数学+政治+外语)AS平均成绩”作为排序项,单击“添加”按钮将其添加到“排序条件”列表框中,并选择“升序”单选项,如图6-25所示。

6-25  设置排序

4)建立分组汇总查询。

分组汇总查询是根据指定字段或字段表达式的值进行分组汇总,将一组指定字段或字段表达式的值汇总起来构成一条记录。

单击“分组依据”选项卡,在“可用字段”列表框中选择“班级”作为分组依据,单击“添加”按钮将其添加到“分组字段”列表框中,如图6-26所示。

6-26  设置分组依据

此时,再次单击主窗口“常用”工具栏的“运行”按钮,则运行结果如图6-27所示。

6-27  运行结果

注意:在“查询设计器”窗口中单击鼠标右键,在弹出的快捷菜单中选择“查看SQL”项,则可以看到相关的Select-SQL命令,如图6-28所示。

6-28  查看SQL语句

6.3.4  指定查询去向

通过上面的设置后,已经按用户的需求查询到了相关的数据。如果需要将查询结果输出到指定的报表或视图中,可以通过以下几种方法进行。

1)形成*.qpr的查询文件。

单击菜单“文件”“保存”命令,在弹出的“另存为”窗口中选择路径,输入文件名,再单击“保存”按钮,即可以形成一个*.qpr的查询文件,如图6-29所示。

6-29  保存为查询文件

在关闭“查询设计器”窗口后,可单击主菜单的“程序”“运行”命令;然后在“运行”对话框中选择“文件类型”为“程序”,双击“数据库技术成绩统计.qpr”;最后单击菜单“显示”“浏览”命令,即可查看运行的结果。

如果是在“项目管理器”窗口中建立的查询,当关闭了“查询设计器”窗口后,则在其“查询”项下多了一个查询文件,此时也可进行浏览、运行、修改等操作,如图6-30所示。

6-30  建立的查询文件

2)形成特定类型的文件。

在“查询设计器”窗口未关闭的情况下,单击菜单“查询”“查询去向”命令,将弹出如图6-31所示的“查询去向”窗口,用户可以根据需要选择浏览、临时表、表、图形、屏幕、报表和标签7种不同的输出方向,形成特定类型的文件。

6-31  选择查询去向

在该窗口中,各个输出方向的含义如下。

1)浏览:查询结果将显示在系统定义的浏览窗口中,“浏览”是默认值。

2)临时表:用户必须输入一个临时表文件名,查询结果将输出到临时表,对于临时表系统不会保存。

3)表:用户必须输入一个表名,如“学生资料查询”,查询结果将形成一个*.dbf的表文件。

4)图形:查询结果将输出到MS Graph程序以绘制图表,这种输出方式要求在查询的字段的选择中只能有一个字符型字段和若干个数值型字段。

5)屏幕:查询结果将显示在屏幕中,同时,对话框中增添了一些选项供用户选择。

6)报表:查询结果将输出到一个报表文件中,同时对话框中增添了一些选项供用户选择。用户必须为报表定义一个文件名,或用“打开报表”按钮选择一个已存在的报表,或在文本框中输入一个已存在的报表名。如果当前需生成一个新的报表文件,可单击文本框右侧的按钮启动报表向导,生成一个报表文件。

7)标签:查询结果将输出到一个标签文件中,同时对话框中增添了一些选项供用户选择。