建立起了表后,使用Visual FoxPro 9的查询功能即可迅速地在屏幕上查看各记录,而且还可按用户所定义的方式来显示数据记录,这就是"查询"的用途,本文就将讲述创建"查询"的有关操作。
一、使用Query Wizard设计并制作查询
一张表可以包含的字段与记录行可能很多,对于数据记录较丰富的表,在前面所述的"浏览窗口"中逐行浏览观看是费时又费力的工作,而且许多时候是并不会完整地浏览各行记录的,只了解其中的某些字段数据就行了,此时就可以考虑使用Visual FoxPro 9的查询功能,在屏幕上控制显示一个或者多个字段与记录,并且打印输出。为此可启动Query Wizard(查询向导)来快速创建一个"查询",如按下面的步骤来操作即可建立一个这样的查询。
步骤一、参照前面的操作启动Visual FoxPro 9,并打开要查询的表。接着,单击Standard工具栏条中的New按钮。然后在New对话框中打开Query单选按钮,参见图1。
 图1 打开Query单选按钮 | 步骤二、单击Wizard按钮后,参见图2,在Wizard Selection(向导选取)对话框中选定Query Wizard,然后单击OK按钮。
 图2 选定Query Wizard | 此后,屏幕上就将显示Query Wizard,如图3所示。
 图3 单击Open按钮 | 步骤三、打开要查询的表后在Available Fields列表窗中选定要查询的字段,接着单击Add按钮,将它们添加到Selected fields列表窗中,如图4所示。
 图4 将它们添加到Selected fields列表窗中 | 步骤四、单击Next按钮。
下一步操作所用的对话框名为Step 3-Filer Records(步骤三-筛选记录),如图5所示。查询一张数据"表"中的数据记录时,可能会仅看一看某些字段中的记录,这就需要对字段进行筛选,操作时可以使用下列步骤:
步骤五、将光标对准Field字段下拉按钮。单击此按钮,进入Field下拉列表后从中选择"员工名册 年龄"项。
 图5 将光标对准Field字段下拉按钮 | 步骤六、单击Operator下拉按钮,进入Operator下拉列表后从中选择more than(大于)项,如图6所示。然后将光标移入Value(值)文字编辑框中并单击它,让插入点光标出现在它的里面后输入数字:25。最后,单击Next按钮。
 图6选择more than(大于)项 |
在下一步操作中还可以排序查询结果,所使用的对话框如图7所示。Visual FoxPro 9所提供的排序方式是"升序"与"降序",前者将各记录值从小向大排序,后者则相反。操作时可以使用的步骤如下所列。
步骤七、在Available fields列表窗中单击"员工名册.年龄"项。然后,单击Add按钮,将选定的"员工名册.年龄"项加入位于右旁的Selected fields列表窗中。最后,单击Next按钮。
 图7单击Add按钮 |
完成上述操作后,屏幕上将显示Step 4a-Limit Records(步骤4a-限制记录)对话框,如图8所示。此对话用于控制限制查询至第一行,或者最后一行记录,并且预览查询结果。
 图8屏幕上将显示Step 4a-Limit Records(步骤4a-限制记录)对话框 |
限制记录就是根据一定百分比的记录,或者选择一定数量的记录来进一步限制视图中的记录数目。例如,若要查看前 10 个记录,可以在Step 4a-Limit Records对话框的Amount(数 用户可以看看这是不是所要的,若不是,还可以在结束Query Wizard的操作前做些修改。上述操作预览的结果将如图9所示。此后,若单击"浏览窗口"的"关闭"按钮,屏幕上就将返回Query Wizard。
 图9 预览的结果 |
步骤七、单击Next按钮。
上述操作完成后,一个查询就设计好了。它将让用户查询"员工名册"中的姓名、年龄等记录,并且按大年龄向低年龄排序结果。下一步操作所使用的对话框为Step 5 - Finish(步骤5-完成),如图10所示,单击它的Finish按钮,就可以命名并保存所设计的查询。
 图10 下一步操作所使用的对话框为Step 5 - Finish |
Step 5 - Finish对话框提供了三个单选按钮:Save query(保存查询)、Save query and run it、(保存并运行查询)、Save query and modify it in the Query Designer(保存查询并在查询设计器中修改它)。从中选择打开一个并单击Finish按钮后,屏幕上还将显示Save As对话框,让用户指定保存所设计的查询文件名与磁盘位置。
完成这些操作后,上面所设计的查询就将使用指定的文件名保存在磁盘中,其扩展名为qpr,此后运行它就能在任何一个时候看到查询的结果了。
二、应用"查询"
按上述操作所设计查询将如同一张"自由表",用户可以运行它、观看查询的结果,也可以将它加一个项目中,以便由Project Manager控制使用它。
为了运行一个"查询",请按下列步骤进行操作:
步骤一、从Program(程序)下拉菜单中选择Do(做)命令,如图11所示。
步骤二、在Do对话框列表中选定一个查询文件名,并单击Do按钮。
完成上述操作后,查询结果就会显示在一个浏览窗口中。此窗口与前面观察的表的"浏览窗口"外观一致,而且也能按"浏览"与"编辑"方式显示,以及做如分裂窗口、变换网格线、移动指针等操作。
注意:不可以在"查询"的浏览窗口中修改数据记录。
 图11 从Program(程序)下拉菜单中选择Do(做)命令 |
三、将"查询"加入"项目"中
将一个"查询"加入某一个"项目"后就能更好的管理与运用它。而且在随后将用户设计的数据库管理系统作为商品推销时,这样做是非常必要的。请按下列步骤进行操作:
步骤一、进入Project Manager对话框,向下拖动列表框边缘处的滚动条,让Queries列表项显示出来,如图12所示。
 图12 让Queries列表项显示出来 |
步骤二、单击列表中Queries,让它处于选定状态,接着单击Add按钮。
步骤三、在Open对话框中选定要添加的查询文件后,单击OK按钮。
此后,上面所设计的"查询"就成了当前的组成部分项目,并将保存在Project Manager对话框中Queries文件夹里。此后,若在此文件夹里选定它,接着单击Run(运行) 按钮,就能快速运行"查询",并在"浏览窗口"中看到查询的结果。
注意:上述将一个"查询"加入某一个"项目"的操作,也可以用于将一张"自由表"加入进某一个"项目"中。
四、使用Query Designer设计"查询"
使用Query Designer(查询设计器)除了可以完成在Query Wizard中的操作外,还可以指定选择记录的条件,比如在字段内指定值或在表之间定义临时关系的连接条件,以及对查询进行分组并设计分组依据。
注意:Query Designer是一个值得初学者花费大量精力来掌握的重要东西。这能快速从表中提取指定的信息,而且还能预定输出的形式。
为了使用Query Designer,首先要运行它,为此可以按以下步骤进行操作:
步骤一、打开要查询的表。
在Project Manager对话框中选定表,然后单击Browse按钮浏览它,即可打开它了。在下面的操作中将要使用两张表:"员工名册"与"员工工资",因此需要依次在Project Manager对话框中选定它们并单击Browse按钮。
步骤二、Project Manager对话框中选定Query,然后单击New按钮。进入New Query对话框后单击它的New Query按钮,如图13所示。
 图.13 单击New Query按钮 |
步骤三、在Add Table or View(添加表或视图)对话框的列表中选定要查询的第一个表,如图14所示,接着单击Add按钮。
 图14 选定要查询的第一个表 |
完成一步操作后,所选定的表就将被添加进Query Designer上半部的表字段列表中,如图15所示。
 图15 选定的表就将被添加进Query Designer上半部的表字段列表中 |
步骤四、关闭Add Table or View对话框。
完成上述操作后,Query Designer就将如图15那样显示在屏幕上,此后即可从"字段"列表窗口中选择所要查询的字段,下一节就将说明相关的操作步骤。
五、在Query Designer选择查询字段
在Query Designer对话框中,选择查询字段的操作方法与Query Wizard对话框是不一样的,下列操作就将说明这一点。
步骤一、在Available fields(可用字段)列表窗中选定"员工名册.姓名"字段。然后,单击Add按钮,将选定的字段添加进Selected fields列表中,如图16所示。
 图16将选定的字段添加进Selected fieldsd列表中 | 步骤二、重复上面的操作,将"员工名册.职务"字段也添加进Selected fields列表中。
这样,所要查询的字段就选定了。在操作中,可以从Available fields(可用字段)列表窗中将字段名称拖至Selected fields列表中;或者单击选择Add All(全部添加按钮,选定并添加所有的字段。
注意:这里不可以选择"通用"或者"备注"型字段。如果打算将已经选择的字段移出Selected fields列表,可以在此列表中的单击选定它,然后单击Remove(移去)按钮,若单击Remove all(全部移出)按钮则移出此列表中的全部字段。
六、在Query Designer中加入表与字段
在Visual FoxPro 9中可设计一个浏览两张以上表的"查询",其操作步骤如下所列。
注意:在前面的操作中,可将所要查询的表全部添加进Query Designer中,如果没有这样的话,那就需要按下面的步骤来操作了。
步骤一、参见图17,单击Query Designer工具栏中的Add Table(添加表)按钮。
 图17 在Query Designer工具栏单击Add Table按钮 | 步骤二、进入Add Table or View对话框后,从列表中选定"工资额"项,然后单击Add按钮。
完成这两步操作后,所选定的表就会添加进Query Designer的表列表中。同时,屏幕上还将出现Join Conditions(联接条件)对话框,如图18所示。
 图18 屏幕上还将出现Join Conditions(联接条件)对话框 | 步骤三、在Join Conditions对话框中单击OK按钮,并关闭Add Table or View对话框。
这一步骤操作指定了使用"内部联接"类型。这是默认的类型,用于指定只有满足联接条件的记录包含在查询结果中,是最常使用的联接类型,能通过"姓名"字段创建一种联接不同的表的关联。初学者应当注意"姓名"字段是所要联接的两张表中都有的,而且此字段中的记录内容也一样。
完成上述操作后,Query Designer中将出现一个新的表字段列表窗,它的标题名为"工资额",并列在"员工名册"列表窗的左旁。用户可以从这两个列表窗中拖动字段至Selected fields列表框。若拖动某列表窗中列于开头处的星号(*),还可以选定此列表窗中的所有字段。
步骤四、将"工资额"列表窗中的"工资额"字段拖入Selected fields列表框中。
上述操作所创建的"查询"将查询员工的姓名与工资额,若想同时查询其它字段中的信息,可在Available fields列表中选定它们,然后添加进Selected fields列表中。例如,若想同时看看各员工的职务,就可将"员工名册"表中的"职务"字段加入在Selected fields列表中,如图19所示。
 图19 将"员工名册"表中的"职务"字段加入在Selected fields列表中 | 此后,在Query Designer右击某一处,进入Query Designer快捷菜单后选择Run Query(运行查询)命令,即可预览正在定义的"查询",如图20所示。
 图20 所显示的正是上面所定义的"查询" | 若要设置查询的输出形式,则可从此快捷菜单中选择Output Setting(输出设置)命令,接着在Query Destination(查询去向)对话框中选择一种输出方式即可达到目的,参见图21。例如,单击Table按钮将"查询"输出为一张表,这是一种常用的选项,值初学者试用一下。
 图21 在Query Destination(查询去向)对话框中选择一种输出方式 | 编后语:
本文讲述了创建"查询"的各种方法,内容不难理解。在实际应用中。初学者需要注意掌握Query Designer 工具栏中的各工具的功能(参阅下表),这样才能全面运用Visual FoxPro 9设计查询时可用工具。
工具名 |
中文意思 |
图标 |
功能 |
Add Table |
添加表 |
 |
显示Add Table or View对话框,以便于加入一张表或者"视图" |
Remove Table |
移去表 |
 |
移出一张数表或者"视图" |
Add Join |
添加联接 |
 |
在查询中的两个表间加入联接 |
Show the SQL windows |
显示/隐藏SQL窗口 |
 |
显示正建立查询中的SQL语句 |
Maximize the table view |
最大化表视图 |
 |
最大化Query Designer窗口 |
Query Destination |
查询去向 |
 |
设置查询的输出形式 |
|