内容正文:
项目四 查询与视图
一、教学目标
1.掌握查询和视图的基本知识;
2.掌握查询设计器的基本功能和使用方法;
3.掌握查询文件的创建、运行、修改等操作方法;
4.了解使用SQL语句进行查询的方法;
5.掌握视图设计器的基本功能;
二、课时分配
本项目共4个任务,安排10课时。
三、教学重点
Visual FoxPro系统的一个重要功能是实现数据的查询和数据的更新。因此,把数据收集并存储在表中后,数据的查询和更新操作成为了Visual FoxPro系统中最为常用的操作。
四、教学难点
视图不是一个实际的表,是从表(一个或多个)或其他视图中导出的逻辑虚表,它不需要对应的物理文件就可存在,它存储在数据库中,不能以独立的文件形式存在。
五、教学内容
任务一 创建和运行查询
活动一 使用查询设计器创建查询
可以用两种方法来启动查询设计器:一种方法是在系统菜单中,选择“文件”下拉菜单下的“新建”选项,打开“新建”对话框,然后选择“查询”文件类型,再单击“新建”按钮即可打开查询设计器;另一种方法是在项目管理器中打开查询设计器。
活动二 使用查询向导创建查询
在“向导选取”对话框中选择“查询向导”选项,然后单击“确定”按钮。再根据系统提供的向导逐步设置即可。
活动三 使用SQL语句创建查询
SQL是一条多功能的数据表查询命令,它只能显示记录,不能修改记录。在运行SQL语句前不需预先打开数据表,显示结果完毕后,数据表保持打开状态。
SQL语句基本格式如下:
SELECT <字段列表> [INTO 新表]
FROM [数据库名!]<表名>,[[数据库名!]< 表名>,…]
[WHERE 条件]
[GROUP BY分组表达式]
[HAVING 搜索表达式]
[ORDER BY 排序表达式 [ASC|DESC]]
命令功能:从一个或多个表中查询数据。
参数说明:
字段列表子句:用于指定输出的字段、常量和表达式。要查询所有记录,可用“*”表示
INTO子句:用于将检索的结果存储到一个新的表中。
FORM子句:用于指定在查询结果中所涉及的源表。
WHERE子句:用于指定记录的过滤条件。
GROUP BY子句:其作用是对检索到的记录进行分组。
HAVING子句:也用于指定对记录的过滤条件。但要与GROUP BY子句一起使用。
ORDER BY 子句:用于对检索到的记录进行排序处理。
ASC|DESC:ASC表示按升序排列,DESC表示按降序排列。
在上述格式中给出了部分主要子句,在这些子句中,只有SELECT子句和FROM子句是必选项,其他子句均为可选项。
任务二 设置查询
活动一 “字段”选项卡
例4.9创建一个对学生管理数据库中的xjgl.dbf和xscj.dbf两个表进行查询的查询文件。
第一步:选择字段。
新建一个查询文件,并将xjgl.dbf表和xscj.dbf表添加到查询设计器中。
(1)单击查询设计器的“字段”选项卡,先选择“可用字段”列表框中的“xjgl.姓名”选项,再单击“添加”按钮,将其添加到“选定字段”列表框中,如下图 所示。
图-“字段”选项卡
(2)使用上述方法,将“可用字段”列表框中的 “xjgl.出生日期”、“xjgl.团员否”、“xjgl.爱好”、“xscj.语文”、“xscj.数学”选项添加到“选定字段”列表框中,如下图所示。
图-“字段”选项卡
活动二 “联接”选项卡
单击查询设计器中的“联接”选项卡,进行联接条件的设置,如下图所示。
图-“联接”选项卡
“联接”选项卡中各选项的含义如下:
(1)类型:即表间联接的类型。
(2)字段名:表达式中用于联接的字段的字段名。
(3)否:即取与设定的条件相反的条件。
(4)条件:指定比较的类型和标准。
(5)值:表2中用于联接的字段的字段名。
(6)逻辑:指定联接条件间的逻辑关系,即OR、AND或无。
(7)插入按钮:单击该按钮可在当前位置插入空联接条件。
(8)移去按钮:单击该按钮可删除指定的联接条件。
第二步:设置联接类型。
在“联接”选项卡的“类型”下拉列表框中有四种联接类型:
内部联接:将输出相关联的左右两个表中满足条件的交集记录。
左联接:将输出关联表中左侧表的全部记录,右侧表如没有相关记录,则查询输出结果中的相应字段将用“.NULL.”代替。
右联接:将输出关联表中右侧表的全部记录,左侧表如没有相关记录,则查询输出结果中的相应字段将用“.NULL.”代替。
完全联接:将输出关联表中的全部记录。
“移去”按钮用于删除指定的联接条件。
此例是一个“完全联接”的例子。
活动三 “筛选”选项卡
“筛选”选项卡用于设置查询过滤条件,即选择满足所需条件的记录。执行方法为:单击查询设计器中的“筛选”选项卡,进入筛选条件的设置,并选择或输入本例中所需的值如下图所示