一.查询:所谓查询,就是从数据库的一个表或关联的多个表中,检索出符合条件的信息,并可对查询结果分组或排序存储于指定的文件中.查询文件的扩展名为.qpr.查询只能从表中提取数据,但不能修改数据.如果既要查询数据,又要修改数据,可使用视图.
二.查询的创建: 创建查询的方法有三种:一是使用查询向导,二是使用查询设计器,三是直接编写select-sql语句.不管用查询向导还是用查询设计器,其结果都是生成一条select-sql语句,在本质上是select-sql命令的可视化设计方法.我们这里介绍使用查询设计器创建查询.
1.使用查询设计器创建查询的基本步骤:
(1).启动查询设计器
(2).添加表
(3).设置表间关联
(4).选择显示字段
(5).设置筛选记录条件
(6).排序,分组查询结果
(7).设置查询输出类型
2.启动查询设计器:
(1)在项目管理器中选择"数据"或"全部"选项卡,选择"查询"文件类型,然后单击"新建"按钮,单出"新建查询"对话框,如图52
Visual FoxPro基础教程完整版
(2)在"新建查询"对话框中单击"新建查询"按钮,弹出"查询设计器"窗口,如图53所示
3.查询设计器介绍:
(1)数据环境:查询设计器的上半部分是数据环境显示区,用于显示所选择的表或视图,可右击其空白处,选"添加表"或"移动表"命令向数据环境添加或移动表.如果是多表查询,还可在表之间可视化的连线建立关系.
(2)"字段"选项卡:在"查询设计器"中,选择"字段"选项卡, 在"可用字段"列表中列出了查询数据环境中选择的数据表的所有字段;在"选定字段"框中设置在查询结果中要输出的字段或表达式;"函数和表达式"框用于建立查询结果中输出的表达式."选定字段"框中行的顺序就是查询结果中列的顺序.
在"可用字段"框和"选定字段"框之间有4个按钮:"添加","全部添加","移动"和"全部移动"按钮,用于选择或取消选定字段.
在"函数和表达式"框中,可以用来输入一个表达式,或单击"…按钮,打开"表达式生成器"对话框,生成一个表达式,单击"添加"按钮,表达式就出现在"选定字段"框中.还可以给选定的字段或表达式起一个别名,方法是在"函数和表达式"框中字段名或表达式后输入"AS 别名",查询结果中就以别名作为该列的标题.
例如,在"职工档案"表中有出生时间字段,为了输出年龄,可以在"选定字段"框中加入下列表达式:
year(date())-year(职工档案!出生时间)+1 AS 年龄
在该表达式中,用当前系统日期的年份减去出生时间的年份,得到了职工的年龄,并给该表达式起了一个别名"年龄"
(3)"联接":进行多表查询时,需要把所有有关的表或视图添加到查询设计器的数据环境中,并为这些表建立联接.这些表可以是数据表,自由表或视图.
当向查询设计器中添加多张表时,如果新添加的表与已存在的表之间在数据库中已经建立永久关系,则系统将以该永久关系作为默认的联接条件.否则,系统会打开"联接条件"对话框,并以两张表的同名字段作为默认的联接条件,如图54所示。
在该对话框中有四种联接类型:内部联接(inner join),左联接(left outer join),右联接(right outer join)和完全联接(full join),其意义下表.系统默认的联接类型是"内部联接",可在"联接条件"对话框中更改表之间的联接类型.
联接类型 | 说明 |
内部联接 | 两个表中的字段都满足联接条件,记录才选入查询结果 |
左联接 | 联接条件左边的表中的记录都包含在查询结果中,而右边的表中的记录只有满足联接条件时,才选入查询结果 |
右联接 | 联接条件右边的表中的记录都包含在查询结果中,而左边的表中的记录只有满足联接条件时,才选入查询结果 |
完全联接 | 两个表中的记录不论是否满足联接条件,都选入查询结果 |
两表之间的联接条件也可以通过"查询设计器"的"联接"选项卡来设置和修改,如图55所示