VF 查询与视图设计精讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图6-15 修改排序依据的设置
⑶ 修改杂项选项卡 单击“杂项”选项卡,单击“全部”复选 框,显示满足条件的所有记录。如图6-16所 示。
图6-16 显示满足条件的所有记录
3.定向输出查询结果
在查询设计器中可以根据需要为查询输出 确定查询去向。如果不选择查询结果的去 向,系统默认将查询结果显示在“浏览” 窗口中;如果要将查询结果指定某个地点, 可以选择输出目的地。选择“查询”菜单 下的“查询去向”,或在“查询设计器” 工具栏中单击“查询去向”按钮,则将打 开一个“查询去向”对话框,如图6-18所示。
图6-8 设置分组依据
图6-9 设置分组后的筛选条件
图6-10 没有设置筛选条件的显示结果
图6-11 设置筛选条件的显示结果
SQL SELECT语句中相当于: GROUP BY 选课成绩.课程号 HAVING AVG(选课成绩.期末分)>=80
6.设置杂项 在上述设置的基础上,如只想显示查询结 果的前两条记录,则在“杂项”选项卡中 取消“全部”复选项前的“√”,并在 “记录个数”数据显示框中输入“2”,如图 6-12所示。运行后显示结果如图6-13所示。
6.1 查询设计
查询可以实现对数据库中数据的浏览、筛 选、排序、检索、统计及加工等操作;利 用查询可以为其他数据库提供新的数据表, 可以从单个表中提取有用的数据,也可以 从多个表中提取综合信息。 然后按需要定向输出查询的结果,查询结 果输出类型有:浏览器、表、临时表、报 表、标签、屏幕等。查询是以扩展名为 QPR的文本文件保存在磁盘上,它的主体 是SQL SELECT语句以及与定向输出有关的 语句。
查询出选修了“G0002”课的学生,这些 学生的期末成绩比选修了“G0006”课的最 高期末成绩还要高的学生的学号和期末成 绩。SQL SELECT语句如下: SELECT 学号, 期末分 FROM 选课成绩 WHERE 课程号="G0002" AND 期末分 >ALL(SELECT 期末分 FROM 选课成绩 WHERE 课程号="G0006") 上述的查询涉及到嵌套查询(子查询), 利用查询设计器是设计不出来的。
⑵ 联接:该选项卡对应于JOIN ON短语,用 于编辑联接条件,从多个表中查询字段信 息。 ⑶ 筛选:该选项卡对应于WHERE短语,用于 指定查询条件。 ⑷ 排序依据:该选项卡对应于ORDER BY短 语,用于指定排序的字段(将需要排序的 字段添加到排序条件框中)和排序方式 (升序或降序)。
⑸ 分组依据:该选项卡对应于GROUP BY短 语和HAVING短语,用于设置分组条件。将 需要分组的字段添加到分组字段框中,如 需要设置HAVING分组条件,单击“满足条 件...”按钮,打开“满足条件”窗口, 设置分组条件。 ⑹ 杂项:在该选项卡中可以指定是否需要显 示重复记录(对应于DISTINCE)以及是否 显示全部记录或只显示前面有多少个记录 (对应于TOP短语)等。
6.1.2 wk.baidu.com立查询
例6-1: 在学生、选课成绩和课程三个表中设 计查询,要求:只查询出学生所修课程号 是以“G”开头的课程,并以课程号分组, 统计出各组的期末分的平均值,并且只显 示期末分>=80的记录,按课程名称的降序 排列,最后输出学号、姓名、课程号、课 程名称等字段和期末平均分计算字段。 1.启动查询设计器,将学生、选课成绩和课 程3个表添加到查询设计器中,并建立这3 个表的联接,打开如图6-2建立查询的设计 器窗口。
数据查询是数据处理中最常用的操作之一, 查询可以从一个或多个表中提取所需要的 数据,可以通过设计相应的查询或视图来 实现,是快速方便地从数据库中提取数据 的一种方法。 查询实际上是指扩展名为.QPR的查询文 件,其主体是SQL SELECT语句,视图则兼 有表和查询的特点,是在数据库表的基础 上建立的一个虚拟表,视图不能独立存在 而是被保存在数据库中。查询和视图的设 计可以用相应的设计器来实现,也可以使 用SQL语言实现。
6.2 视图设计
6.2.1 视图的概念 视图是一种虚表,兼有“表”和“查询” 两者的特点。视图具有表的属性,视图的 打开与关闭、设置属性、修改结构以及删 除等,都与表的操作相同。视图又具有查 询的特点,可以从一个或多个相关联的表 中提取信息,与查询不同之处在于视图可 以更新数据源表,而查询不能。视图可以 用来更新其记录的值,并将更新结果送回 到基本表(即源表)中并永久保存在磁盘 上。
创建计算字段“期末平均分”
图6-4 表达式生成器
添加字段以及计算字段
图6-5 选定的字段及计算字段
单击“查询设计器”工具栏上的“SQL”按钮, 可以显示和该操作相对应的SQL命令: SELECT 学生.学号, 学生.姓名, 课程.课程号, 课程.课程名称, AVG(选课成绩.期末分) AS 期末平均分
举例来对例6.1建立的查询文件进行修改, 修改为:使其统计的是所有课程号的第1个 字符不是“G”的各组课程的平均分,按各 组平均分的降序排列,并显示查询的所有 记录。 ⑴ 设置“筛选”查询条件:如图6-14所示。
图6-14 修改筛选条件的设置
⑵ 修改排序顺序 将以“课程名称”为排序依据的字段移到 右边的“选定字段”列表框内,再将 “AVG(选课成绩.期末分)”这个计算 字段添加到“排序条件”列表框内,表明 是按期末分平均值的降序排列。如图6-15所 示。
查询基于多个表时,表之间必须有联系。 查询设计器自动根据联系提取联接条件, 否则还会打开一个指定联接条件的对话框, 由用户来确定联接条件,如图6-3所示的联 接条件对话框。
图6-3 联接条件对话框
2.查询设计器的选项卡 查询设计器界面有6个选项卡,其功能和 SQL SELECT语句的各个短语是相对应的。 前面已经选择了设计查询的表或视图,对 应于FROM短语。 ⑴ 字段:在该选项卡中设置查询结果中要包 含的字段,对应于SELECT短语中的输出字 段,在“可用字段”列表框中选中要显示 的字段,添加到“选定字段”列表框中; 如果要输出全部字段,单击“全部添加” 按钮;在“函数和表达式”编辑框中可以 输入、编辑或由“表达式生成器”生成一 个计算表达式,由此生成一个计算字段。
6.1.4 查询设计器的局限性
如果用户对SQL SELECT语句非常熟悉和 了解,是可以直接用各种文本编辑器来编 写SQL SELECT语句建立查询,只是将文件 的扩展名保存为.QPR即可。而使用查询设 计器相对来说比较容易一些。但必须注意 的是,查询设计器只能建立一些比较有规 则的查询,对于复杂的查询它是无能为力 的。比如建立一个内外层相互关联的子查 询。
图6-12 设置显示记录的个数
图6-13 设置杂项后运行结果 单击“SQL”按钮,则显示出相应的SQL SELECT查询代 码: SELECT TOP 2 学生.学号, 学生.姓名, 课程.课程号, 课程. 课程名称,AVG(选课成绩.期末分) AS 期末平均分; FROM 学生 INNER JOIN 选课成绩; INNER JOIN 课程 ; ON 选课成绩.课程号 = 课程.课程号 ; ON 学生.学号 = 选课成绩.学号; WHERE 课程.课程号 LIKE "G%"; GROUP BY 选课成绩.课程号; HAVING AVG(选课成绩.期末分) >= 80; ORDER BY 课程.课程名称 DESC
图6-18 查询去向对话框
查询去向的具体含义如下: ⑴ 浏览:在浏览(BROWSE)窗口中显示 查询结果,此选项为默认方式。 ⑵ 临时表:将查询结果保存到一个临时的 只读表中。
表:将查询结果保存到一个指定的表(.DBF) 中。 图形:将查询结果输出到图形文件 (Microsoft Graph)中,Graph是包含在 Visual FoxPro中的一个独立的应用程序。 屏幕:将查询结果输出到Visual FoxPro主窗 口或当前活动窗口中。 报表:将查询结果输出到一个报表文件 (.FRX)中。 标签:将查询结果输出到一个标签文件 (.LBX)中。
3.设置筛选条件 选中“筛选”选项卡,筛选出所有的课程 中以“G”开头的课程,如图6-6所示。
图6-6 设置筛选条件
SQL SELECT语句中相当于: WHERE 课程.课程号 LIKE “G%”
4.设置排序查询 选中“排序依据”选项卡,将“课程名称” 字段添加到“排序条件”列表框中,并选 择单选按钮“降序”,按“课程名称”的 降序排序。
打开如图6-1“添加表或视图”对话框,选 择用于建立查询的表或视图。选中所需要 的表或视图,单击“添加”按钮将表或视 图添加到查询设计器中。当选择完表或视 图后,单击“关闭”按钮进入查询设计器 界面 如图6-2。
图6-1 为查询添加表或视图
添加“学生”、“选课成绩”、“课程”三 个表
图6-2 查询设计器窗口
6.1.1 查询设计器
1.启动查询设计器 打开查询设计器 ,常用的有菜单操作和命 令操作。 方法一:CREATE QUERY 方法二:选择“文件”\“新建”选项,或单击 “常用”工具栏上的“新建”按钮,打开 “新建”对话框,然后选择“查询” 。 方法三:在项目管理器中的“数据”选项卡 下选择“查询”,然后单击“新建”命令 按钮。
⑵ 利用菜单选项运行 当在查询设计器中保存查询文件后,或保 存查询文件后关闭查询设计器,单击“程 序”菜单中的“运行…”命令,打开“运行” 对话框,选中要运行的查询文件,单击 “运行”按钮,可显示查询结果。 ⑶ 利用命令方式运行 在命令窗口中输入运行查询文件的命令, 其格式为:DO <查询文件名> 注意:查询文件名不能省略扩展名.QPR。
1.打开视图设计器 与查询是一个独立的文件不同,视图不 能单独存在,它是数据库中的一部分,因 此在打开视图设计器创建视图时,或者某 视图已创建,打开视图设计器修改该视图 时,必须首先打开某一个数据库,在数据 库中建立视图。打开视图设计器的方法有:
2.修改查询文件 当查询设计完后,在任何时候都可以使用 查询设计器来修改已建立的查询文件。打 开查询设计器方法有: ⑴ 选择“文件”\“打开…”选项,在“打开” 对话框中指定文件类型为“查询”,选择 要打开的查询文件,单击“确定”按钮。 ⑵ 打开查询设计器 在命令窗口中输入打开查询设计器命令, 命令格式为: MODIFY QUERY <查询文件名>
图6-7 设置排序依据
在SQL SELECT语句中相当于: ORDER BY 课程.课程名称 DESC
5.设置分组依据 在设置“筛选”条件基础上筛选出所有以 “G”开头课程号后,再以“课程号”进行 分组,分组的目的是统计各组期末平均分。 将“课程号”添加到“分组字段”列表框 中,以“课程号”分组。同时要对期末平 均分再作一个筛选,既筛选出某组的期末 平均分大于等于80的课程信息,因此单击 “满足条件…”按钮,打开“满足条件”窗 口,在该窗口中设置筛选条件。如图6-8 , 图6-9 。
可以从本地表、其他已建立的视图、储存 在服务器上的表或远程数据源中的表创建 视图,因此视图可以分为本地视图和远程 视图。 本节主要讨论本地视图。 视图可以查询表中信息,也可以更新表中 的记录值。然而视图是数据库中的一个特 有功能,只有当包含视图的数据库打开时, 视图才可以使用。
6.2.2 视图设计器
2.选取查询所要显示的字段 在“字段”选项卡中选择“学号”、“姓 名”、“课程号”和“课程名称”字段; 要显示各组课程的期末分平均值,这是一 个计算字段,则在“函数和表达式”框中 输入计算表达式或打开“表达式生成器” 对话框,如图6-4所示,在该对话框中编辑 计算表达式“AVG(选课成绩.期末分) AS 期 末平均分”,其功能是求出各组课程的期 末平均分,并以“期末平均分”为字段名 输出。添加选定字段和计算字段如图6-5所 示。
6.1.3 查询文件的操作
使用查询设计器设计查询时,可以边设计、 边运行,边查看运行结果,再修改、再运 行,直至达到满意的效果。 1.运行查询文件 ⑴ 在查询设计器中运行 当查询设计器窗口处于打开或选中状态下, 系统菜单上增加了一个“查询”菜单,选 择“查询”菜单中的“运行查询”选项, 或单击常用工具栏上的“运行”按钮,显 示查询结果。