320 likes | 525 Views
授课 -7 查询. 本课介绍查询的基本概念、特点及其实现方法。查询可以对数据库中的多表按条件进行数据查询,它是关系型数据库管理系统必须具备的最基本、最重要的功能。. 7.1 查询的操作 7.2 交叉表查询. 7.1 查询的操作. 【 学习目标 】 用查询设计器建立查询 【 关键概念 】 查询. 【 任务(高新第 4.4 题) 】 操作要求 : 将 C:2006vfpUnit4 文件夹中的文件夹 Y4-04 复制到考生文件夹中,重命名为“ X4-04” ,然后新建项目管理器,命名为“项目 4-4” ,保存到文件夹 X4-04 中,完成下列操作。
E N D
授课-7 查询 本课介绍查询的基本概念、特点及其实现方法。查询可以对数据库中的多表按条件进行数据查询,它是关系型数据库管理系统必须具备的最基本、最重要的功能。 7.1 查询的操作 7.2 交叉表查询
7.1 查询的操作 • 【学习目标】 • 用查询设计器建立查询 • 【关键概念】 • 查询
【任务(高新第4.4题)】 • 操作要求: • 将C:\2006vfp\Unit4文件夹中的文件夹Y4-04复制到考生文件夹中,重命名为“X4-04”,然后新建项目管理器,命名为“项目4-4”,保存到文件夹X4-04中,完成下列操作。 • 1. 确定查询的数据源: • 新建一个“查询”,将Y4_04A.dbf、Y4_04B.dbf作为查询的数据源。 • 2. 建立数据源之间的关系: • 用Y4_04A.dbf中的“乡镇代码”字段与Y4_04B.dbf中的“乡镇代码”字段建立内部联接。
3. 设置查询字段及表达式: • 选择Y4_04A.dbf中的字段“乡镇”; • 选择Y4_04B.dbf中的字段“语文”、“数学”,“总分”; • 参照样文4-04A所示,编辑显示“Y4_04b.总分”的合计的表达式,并添加到选定字段中。 • 4. 指定查询的条件: • 选择字段“Y4_04a.乡镇”为分组依据; • 筛选出“Y4_04b.总分”大于500的记录; • 选择字段“Y4_04b.总分”为排序依据,并要求降序排列
样文4-04A 样文4-04B
5. 设置查询去向: • 将查询结果以“表”的方式保存至考生文件夹中,文件名为“X4_04A.dbf”。 • 运行查询,结果如样文4-04B所示。 • 将X4_04A.dbf添加到“项目4-4”的“自由表”中。 • 6. 保存查询: • 将“查询”命名为“查询4_04.QPR”,保存在考生文件夹 • X4-04中,并添加到“项目4-4”中。 • 任务要点: • 添加表,建立联接,选择字段,确定筛选,设置去向,保存查询 等。
【相关知识】 *查询是VFP快速获取记录结果的方法,查询设计器是将查询存储在表和视图中的工具。 * 创建查询有三种方法: •利用查询设计器创建 •利用查询向导创建 •用SQL查询命令
7.1.1 利用查询设计器建立查询 1.打开查询设计器 打开查询设计器的三种方法: (1) 使用命令 格式:CREATE QUERY 查询文件名.QPR (2) 菜单方式 略 (3)使用项目管理器 选择[数据]选项卡下的[查询]选项,然后单击[新建]按钮,见下页的图。
2.添加表或视图 • 在此对话框中,将添加查询所依赖的自由表、数据库表或视图(一种“虚表”)。如果要在两个及两个以上的表中建立查询,添加表时还需建立两个表之间的联接关系。
3.查询设计器窗口 • 1)选取字段
表达式生成器操作步骤如下: ◆在查询设计器的“字段”选项卡中,单击“函数和表达式”右边的按钮,出现“表达式”生成器; ◆在“数学”下拉式列表框中双击count(expN),生成了“count(Xsb.zy)”这个表达式,用以计算各专业人数。
2)联接条件 • 左边的表为父表,右边的表为子表。可以在列表中选择字段连接。
【相关知识--联接类型】 • • 内部联接(通常使用):只列出两个表中的字段相匹配的记录,即两表记录的交集。 • • 左联接:列出左边的字段列表中的所有记录。若根据联接条件,在右边表中无匹配的记录,则在查询中相应列出现NULL。 • • 右联接:和左联接正好相反。 • • 完全联接:列出两个表中的所有记录,即两表记录的并集。
设置筛选条件 输入筛选实例 设置条件逻辑 是否区分大小写 选择筛选字段 • 3)筛选记录 • 选择表中符合条件的一部分记录而不是全部记录是查询的最为重要的任务。
筛选记录最为重要的是设置筛选的逻辑表达式,使用VFP提供的“In”、“Between”可以简化书写。筛选记录最为重要的是设置筛选的逻辑表达式,使用VFP提供的“In”、“Between”可以简化书写。 4)排序 (略)
5)建立分组查询 • 所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可完成基于一组记录的计算。分组在与某些累计功能联合使用时效果最好,例如SUM(),COUNT(),AVG()等。 • 一般,如果不想压缩结果记录,则不必设置它。在此例中不设分组查询。如果想求各专业的人数,可以“zy”为分组字段进行分组。
6)杂项的设置 • 经过以上四个步骤,基本上已生成了一个比较全面的查询。接下来还可以通过查询设计器中的“杂项”选项卡做最后处理。 • 单击“杂项”选项卡,可以看到其间包括“无重复记录”、“交叉数据表”、“全部”、“百分比”这四个复选框和一个微调按钮。
7)定向输出查询结果 • 查询检索的信息,可以输出到不同的目的地,以用作不同的用途。如果没有选定输出的目的地,查询结果将显示在浏览窗口中。查询输出目的可以是浏览窗口、临时表、表、图形、屏幕、报表、标签等。选择结果的去向方法如下: • 单击“查询设计器工具”中的【查询去向】按钮,或者从【查询】菜单中选择【查询去向】,可看到如图所示的“查询去向”对话框。
7.1.2 运行查询 • 在完成了查询的设计工作并指定了结果输出去向后,可通过以下五种方式之一运行查询: • ■单击系统常用菜单上的“运行”按钮。 • ■在查询设计器区域内单击右键,在弹出菜单中选择“运行查询”; • ■在“项目管理器”中选定查询的名称,然后选定“运行”按钮; • ■在“查询”菜单中选择“运行查询”: • ■在命令窗口中键入:DO <查询名>.qpr。
7.1.3 查询操作示例 • 例: • 利用cjk数据库中的xsb.dbf、kcb.dbf和cjb.dbf表,查询 “计算机应用”专业同学的“C语言”、“VFP程序设计”课程的成绩(成绩在 70~89分之间)。 • 输出字段:xh(学号)、xm(姓名)、xb(性别)、 • zy(专业) 、kh(课号) 、kc(课程)、 • xnxq(学年学期)、 cj(成绩) 。 • 结果按学号的升序排列,结果输出到cjqb的 表文件中。 • 操作: • 先打开数据库,创建查询,选择表, • 之后,按查询设计器选项的顺序去做, • 筛选……。 • 运行查询, • 结果如图。
【操作练习】 • 任务(高新4.4题)的操作过程示意及结果。
7.2 交叉表查询 • 【学习目标】 • 用查询向导创建交叉表查询 • 【关键概念】 • 查询向导 • 交叉表
7.2.1 查询向导 • 1.启动查询向导 • 1)菜单方式:选择菜单【文件】→【新建】→在“新建”对话框中选择“文件类型”中的【查询】选项,然后单击【向导】按钮 。 • 2)在项目管理器中:选择【数据】卡片中的“查询”,然后单击【新建】按钮,则出现设计查询的方式选择对话框。
2.在向导指引下操作:1)字段选取,……。 以后操作与设计器相仿,略。
7.2.2 用交叉表向导设计交叉表查询 • 有时候需要统计交叉数据。所谓交叉表(又称数据透视表)是指从另一角度去观察或计算源表的内容。例如,在学生表中需要按专业统计各地学生的人数,就可用交叉表来建立查询。 • ●使用交叉表建立查询的步骤: • 1.启动交叉表向导 • 2.字段选取 • 3.定义布局 • 4.加入总结信息 • 5.完成
2.字段选取 • 基本上同查询设计向导中的“字段选取”相同,但交叉表中只能从一个表(视图)中选定字段(选三个字段)。
3.定义布局 • 确定交叉表中的行和列,将选定的字段拖到相应位置处。
4. 加入总结信息 • 达到统计目的。
5.完成 • 得到的 • 结果:
【本课小结】 • 使用查询设计器创建查询的步骤概括: • 1)选定查询字段 • 2)设置联接 (一父一子) • 3)筛选记录(会使用: bettwen、in ) • 4)结果排序 • 5)建立分组查询 • 6)杂项的设置 • 7)定向输出查询结果 【作业】 (1)使用查询设计器完成例题的查询。 (2)使用查询设计器完成高新考试第4.4题(上机7)。 返回本课目录