已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲 杜春敏 学习要点 1 查询向导和查询设计器的使用方法 2 单表查询和交叉表查询 3 查询设计器中各选项卡的功能和使用方法 4 本地视图和远程视图 5 视图向导和视图设计器的使用方法 6 使用视图 查询与视图 第3章查询与视图 3 2用查询向导设计查询 3 3用查询设计器设计查询 3 4创建视图 3 5数据库视图的操作 小结 返回 退出 3 6利用视图更新数据 3 7利用视图处理自由数据 3 2用查询向导设计查询 3 2 1设计单表查询 3 2 2建立交叉表 返回 退出 3 2 1设计单表查询 查询向导可以引导用户快速设计一个查询 下面将示例使用查询向导设计一个简单的单表查询 从XGGL数据库的Student表中查询系部代号为 04 且是99级的所有学生的信息 操作过程如下 首先从 文件 开始 选择 新建 查询 然后单击 向导 按钮 则出现设计查询的方式选择对话框 单击 选择XGGL数据库中的Student表 并将该表中的所有字段添加到 选定字段 列表框中 单击 查询向导 字段选取 从中选择Student 系部代号 0 在此输入值 4 取默认值 从中选择 包含 在此输入值 9 8 单击 单击 预览 按钮可以显示查询结果 根据要求 设置条件如上图 其中 虽然表中没有年级字段 但可通过 学号 得到年级 学号的前二位为年级 查询向导 筛选记录 选择排序字段 单击 添加 选择排序方式 调整排序顺序 移动按钮 单击 查询向导 记录排序 查询向导 限制记录 限制查询结果中所包含的记录数 说明 查询结果中所包含的记录数限制共有四种方式 1 部分类型 中选择 所占记录百分比 数量 中选择 所有记录 查询结果集中包含全部记录 2 部分类型 中选择 所占记录百分比 数量 中选择 部分值 再在 微调框 中设置数值 查询结果集中包含指定数值百分数的记录 3 部分类型 中选择 记录号 数量 中选择 所有记录 查询结果集中包含全部记录 4 部分类型 中选择 记录号 数量 中选择 部分值 再在 微调框 中设置数值 查询结果集中包含指定数值的记录数 单击 取默认值 查询结果集中包含全部记录 查询向导 完成 将查询以文件的形式 QPR 保存到一个指定的目录中 将查询保存到一个指定的目录中并运行该文件 利用查询向导设计的查询功能有限 可以使用查询设计器修改它 单击 可以查看查询结果集中的全部数据 打开帮助文件 取消所建立的查询 返回到向导的上一步 结束向导 完成查询设计 单击 保存设计的查询 目录选择下拉列表框 文件名输入文本框 文件类型选择下位列表框 在 文件名输入文本框 中输入 Stud query 后 单击 保存 按钮 结束查询设计过程 在项目管理器中的 数据 选项中的查询项下产生了一个查询文件 返回 3 2 2建立交叉表 如果在上文所述的建立查询的第一步选择 交叉表向导 则可以建立交叉表 下面通过示例来介绍如何建立交叉表 用Grade表中的数据建立一个交叉表 以显示每个学生所有课程的总成绩 Grade表中的部分数据如 前面的设计过程同以上内容 但是在第二步需要确定交叉表的行和列 交叉表设计向导 字段选取 选择数据库和表 选定字段 单个字段选定按钮 全部字段选定按钮 单个字段撤消按钮 说明 在这一步先在 数据库和表 一选择一个数据库 再选择用以建立交叉表的数据表 然后再从可用字段列表框中选择要用的字段 交叉表只用三个字段 这一步可多选字段 全部字段撤消按钮 单击 交叉表向导 定义布局 说明 1 行 将要加入到交叉表中的第一个字段名 本示例中选择字段 学号 2 列 将要加入到交叉表中的从第二个字段开始的若干个字段的字段名 注意这些从源表中选择的数据不能超过254个 本示例中选择字段 课程代号 3 数据 对应行和列的运算结果 本示例中选择 课程成绩 按提示操作 从可用字段列表框中将 学号 字段拖入 行 框 将 课程代号 拖入 列 框 将 课程成绩 拖入 数据 框 交叉表查询向导 加入总结信息 说明 这一步的操作 决定在生成的交叉表中要加入的一个字段的内容 1 求和 求出对应行和列的数据字段的和 2 计数 求出对应行和列的数据字段的数目 3 平均值 求出对应行和列的数据字段的平均值 4 最大值 求出对应行和列的数据字段的最大值 5 最小值 求出对应行和列的数据字段的最小值 本示例中选择 求和 运算 如果不想加入总结信息 可以在 分类汇总 中选择 无 交叉表向导 完成 将交叉表查询以文件的形式 QPR 保存到一个指定的目录中 将交叉表查询保存到一个指定的目录中并运行该文件 将交叉表查询保存到一个指定的目录中并打开 查询设计器 修改它 对于值为空的记录是否以 NULL 填充 说明 系统默认值是 保存交叉表查询 和 显示NULL值 交叉表保存及运行结果 按上一步的操作完成后 进行到 另存为 对话框中 将该查询取名为Grad Query 然后保存在默认的目录中 保存后 系统进入到数据查询过程 稍候系统将查询结果显示出来 如 从中可以看到 凡是没有数据的栏 就被 NULL 值填充 且有许多数据丢失 交叉表可以用数据过滤处理 在下一节中介绍 返回 3 3用查询设计器设计查询 3 3 1确定各表间的联接关系 退出 3 3 2选定查询字段 3 3 3筛选记录 3 3 4查询结果排序 3 3 5建立分组查询 3 3 6杂项的设置 3 3 7定向输出查询结果 3 3 8运行查询 返回 3 3用查询设计器设计查询 在实际应用中 查询向导设计的查询往往不能满足需求 这时还可以采用查询设计器方便灵活的设计各种查询 也可以先用查询向导设计一个简单的查询 再打开并修改它 将上一节建立的Grad Query交叉表查询 用 查询设计器 进行修改 使用之包含尽可能少的空栏 可以通过以下所提供的多种方法之一来打开查询设计器 从 项目管理器 启动查询设计器1 在 项目管理器 中选择 数据 选项卡 再选取 查询 项 再单击 新建 进入查询设计方式选择对话框后单击 新建查询 则启动 查询设计器 2 在 项目管理器 中选择 数据 选项卡 从 查询 项中选择一个已存在的查询文件 再单击 修改 也启动 查询设计器 从 文件 菜单启动查询设计器选择系统菜单中的 文件 新建 命令 在 新建 对话框中选中 文件类型 下的 查询 单选项 再单击右边的 新建文件 按钮 也可启动 查询设计器 使用CREATEQUERY命令也可启动 查询设计器 查询设计器下部分的窗口中有几个选项卡 其含义简介如下 1 字段 用来选定包含在查询结果中的字段 2 排序依据 用来决定查询结果输出中记录或行的排列顺序 3 联接 用来确定各数据表或视图之间的联接关系 4 筛选 相当于命令SETFILTERTO 利用过滤的方法查找一个特定的数据子集 5 分组依据 所谓分组就是将一组类似的记录压缩成一个结果记录 这样就可以完成基于一组的计算 返回 查询设计器窗口 查询文件设计与创建步骤 要设计一个查询文件 首先必须明确查询的目的是什么 即想要得到哪些数据 并以什么方式存在 或者想要得到满足某些条件的特定记录 或者想要知道某些记录的字段值组合成的表达式按某一方式输出 明确了输出的数据后 就可以开始设计查询了 一般要通过以下几个步骤进行 1 启动查询设计器 2 选择出现在查询结果中的字段 3 设置选择条件来查找可给出所需结果的记录 4 设置排序或分组选项来组织查询结果 5 选择查询结果的输出类型 表 报表 浏览等 6 运行查询 3 3 1确定各表间的联接关系 示例 创建一个含有多个表中信息的查询 在XGGL数据库中有三个表 Student Grade Courses 现在想知道学号前四位是9904和9804的所有学生考试的成绩 当在多个表或视图间进行查询时 需要指出这些表或视图间的联接关系 操作方法如下 启动查询设计器 在 添加表和视图 对话框中从 数据库 中选择GXGLXT库 在 数据库中的表 中选择Student表 单击 添加 按钮 再选择Grade表 再单击 添加 此时系统自动弹出一个 联接条件 询问是否根据两表中都有的 学号 字段建立内部联接 单击 确定 两表间就有了一条连线 代表它们之间的联接 然后再添加Courses表 最后关闭对话框 在 查询设计器 中选择 联接 选项卡 如图 1 InnerJoin 内部联接 指定只有满足联接条件的记录包含在结果中 此类型是默认的 也是最常用的 2 RightOuterJoin 右联接 指定满足联接条件的记录 以及满足联接条件右侧的表中记录 即使不匹配联接条件 都包含在结果中 3 LeftOuterJoin 左联接 指定满足联接条件的记录 以及满足联接条件左侧的表中记录 即使不匹配联接条件 都包含在结果中 4 FullJoin 完全联接 指定所有满足和不满足联接条件的记录都包含在结果中 如果想修改各表间的联接 双击查询设计器上部窗口表之间的连线 系统将弹出 连接条件 对话框 或者通过打开查询设计器下部的 联接 选项卡进行 一般不应随便更改连接条件 不然会与实际数据间的关系不符 在VFP6中表间的联接有四种类型 分别是 条件 列表中包含如下几项 1 指字段值与实例相等 2 LIKE 表示 字段名 栏中给出的字段值与 实例 栏中给出的文本值之间执行不完全匹配 它主要针对字符类型 例如 如设置查询条件为 Student 学号LIKE9904 那么诸如 学号 字段前四位为9904的记录都满足该条件 3 表示在 字段名 栏中给出的字段值与 实例 栏中给出的文本值之间执行完全匹配检查 它主要是针对字符型 4 即为 字段名 栏中给出的字段的值应大于 实例 栏中给出的值 5 即为 字段名 栏中给出的字段的值应大于或等于 实例 栏中给出的值 6 即为 字段名 栏中给出的字段的值应小于 实例 栏中给出的值 7 即为 字段名 栏中给出的字段的值应小于或等于 实例 栏中给出的值 8 IsNull 指定字段必须包含Null值 9 Between 即为输出字段的值应大于或等于 实例 栏中的最小值 而小于或等于 实例 栏中的最大值 10 IN 在 之中 即为输出字段的值必须是 实例 栏中所给出值中的一个 在 实例 栏中给出的各值之间以逗号分隔 此外 联接 选项卡中的 否 列用于指定 NOT 条件 逻辑 列用于设置各联接条件和筛选条件之间的逻辑关系 无 AND 和 OR 大小写 列用于指定是否区分大小写 下方的 插入 和 移去 按钮分别用于增加或移去查询条件 返回 在设置筛选条件时 我们应注意如下几点 1 备注字段和通用字段不能用于设置查询条件 2 逻辑值的前后必须使用句点号 如 T 3 只有当字符串与查询的表中字段名相同时 要用引号将字符串括起来 否则不需要用引号将字符串括起来 4 日期不必用花括号括起来 3 3 2选定查询字段 根据建立查询的目的 选择查询结果中应包含的字段 操作方法与用向导设计查询的方法相同 在本示例中先在 查询设计器 中选择 字段 选项卡 然后从可用字段列表框中选择 Student 学号 Student 姓名 Courses 课程名称 Grade 课程成绩 如图 选择一个字段 单击 添加 选定的字段列表 重复操作添加Student 姓名 Courses 课程名称 Grade 课程成绩 返回 3 3 3筛选记录 选择表中符合条件的一部分记录而不是全部记录是查询的重要任务 此例要求从所有学生的成绩信息中选出 学号 前四位为 9904 和 9804 的所有学生的成绩 可以利用查询设计器中的 筛选 选项卡 筛选 选项卡可确定用于选择记录的字段和比较准则 以及输入与该字段进行比较的示例值 返回 在字段名下的下拉选择框中选择 Grade 开课学期 在 条件 下的下拉选择框中选择 在 实例 下的文本框中输入 第1学期 在 逻辑 下的下拉选择框中选择 AND 然后再在字段名下的下拉选择框中选择 Student 学号 在 条件 下的下拉选择框中选择 In 在 实例 下的文本框中输入 9904 9804 请注意中间的 是En状态下输入的 返回 我们可以通过 排序依据 选项卡设置查询的排序次序 方法同在用查询向导设计查询介绍的一样 首先从 选定字段 框中选定要使用的字段 并把它们移到 排序条件 框中 然后利用 排序选项 从中选择升序或降序 来设置排序条件 本例中设置Student 学号 升序为排序依据 选择一个字段 单击 添加 选定的字段列表 如果还需要添加用于排序的字段 可以重复以上的操作步骤 返回 3 3 4查询结果排序 3 3 5建立分组查询 所谓分组就是将一组类似的记录压缩成一个结果记录 这样就可完成基于一组记录的计算 分组在与某些累计功能联合使用时效果最好 例如SUM COUNT AVG 等 如果不想压缩结果记录 则不必设置它 在此例中不设分组查询 如果想求各门课程的平均成绩 可以用 课程名称 进行分类查询 选择一个字段 单击 添加 选定的字段列表 操作步骤如下 1 在查询设计器的 字段 选项卡中 单击 函数和表达式 右边的按钮 出现 表达式 生成器 2 在 数学 下拉式列表框中双击AVG expN 在 来源于表 下拉框中选择Grade表 在 字段 列表框中双击 课程成绩 单击 确定 即在 函数和表达式 框中自动生成了 AVG Grade 课程成绩 这个表达式 用以计算Grade表中课程成绩的平均值 3 单击 添加 按钮 该表达式被添加到 选定字段 列表框中 将来查询结果中就会有一列数据求平均值 4 单击 分组依据 选项卡 进入 分组依据 窗口 在 可用字段 中选择Grade 课程名称 再单击 添加 按钮 该字段即成为分组字段 返回 3 3 6杂项的设置 经过以上五个步骤 基本上已生成了一个比较全面的查询 接下来还可以通过查询设计器中的 杂项 选项卡做最后处理 单击 杂项 选项卡 可以看到其间包括 无重复记录 交叉数据表 全部 百分比 这四个复选框和一个微调按钮 选中 无重复记录 复选框表示对于查询结果如果存在重复记录 则只取相同记录中的一个 选中此项 在查询生成器的SQL语句中会自动加上限定词Distinct 表示去掉重复记录 当输出的字段只有三项时 交叉数据表 复选框为可选状态 否则为不可选状态 选中 交叉数据表 复选框表示将查询的结果以交叉表的形式传递给其它报表或表 三项查询字段分别表示X轴 Y轴和图形的单元值 如 在本示例中 将前面已加入到 选定字段 中的Student 学号字段移去 并按Student 姓名 Courses 课程名称和Grade 课程成绩的顺序调整字段在 选定字段 列表框中的顺序 然后在 杂项 选项卡中选中 交叉数据表 同时将 分组依据 中的 Grade 课程代号 取消 其它设置不变 从图中可以看到 交叉数据表 成为了可选 现选中 交叉数据表 项 如图 设置 返回 3 3 7定向输出查询结果 查询检索的信息 可以输出到不同的目的地 以用作不同的用途 如果没有选定输出的目的地 查询结果将显示在浏览窗口中 查询输出目的可以是浏览窗口 临时表 表 图形 屏幕 报表 标签等 选择结果的去向方法如下 单击 查询设计器工具 中的 查询去向 按钮 或者从 查询 菜单中选择 查询去向 可看到如图所示的 查询去向 对话框 对话框中的按钮含义如下 浏览 在浏览窗口中显示查询结果 这是查询缺省设置 临时表 将查询结果存储在一个临时只读表中 多次查询的结果可放在不同的表内 该表可用于浏览数据 制作报表等 直到用户关闭它们 表 将查询的结果保存在一个命名的表 DBF 中 此时查询的结果是真正的存放到磁盘上的 多次查询的结果可放在不同的表内 图形 使查询结果可用于MicrosoftGraph 包含在VFP6中的一个独立的应用程序 中制作图表 屏幕 在VFP6主窗口或当前活动输出窗口中显示查询结果 报表 将输出送到一个报表文件 FRX 中 标签 将输出送到一个标签文件 LBX 中 选定一个去向 按一定的步骤设置一些属性 然后单击 确定 按钮 系统就将按意图放置查询结果 假设本例将查询结果保存到临时表中 取临时表名为 查询1 返回 3 3 8运行查询 在完成了查询的设计工作并指定了结果输出去向后 可通过以下五种方式之一运行查询 在查询设计器区域内单击右键 在弹出菜单中选择 运行查询 在 项目管理器 中选定查询的名称 然后选定 运行 按钮 在 查询 菜单中选择 运行查询 在命令窗口中键入DO查询名 qpr 单击系统常用菜单上的 运行 按钮 本例中按前述步骤设置后 单击系统菜单上的 运行 按钮运行交叉表查询 并将查询结果保存到临时表 查询1 中 然后再在浏览窗口中单击 显示 浏览 查询1 结果如右表 返回 3 4创建视图 3 4 1创建本地视图 3 4 2用已有的SQLSELECT语句创建视图 3 4 3创建远程视图 返回 退出 3 4 1创建本地视图 视图可以通过向导和设计器两种方法来创建 1 利用向导创建本地视图用本地视图向导创建本地视图 可采取以下方式 方式一 1 在主窗口下打开 工具 菜单 选择 向导 菜单命令 2 再选择 全部 菜单 出现 向导选取 对话框 如图 单击滑动按钮 选择 本地视图向导 单击 确定 进入到 本地视图向导 步骤1 字段选取 方式二 1 在主窗口下打开 文件 菜单 选择 新建 菜单命令 2 选择 视图 再单击 向导 将弹出 本地视图向导 对话框 3 然后按照向导屏幕上的指示操作 方式三 1 在项目管理器中选定数据库 2 选定本地视图 单击 新建 按钮 3 单击 视图向导 按钮 4 然后按照向导屏幕上的指示操作 方式四 1 打开数据库设计器 打开 数据库 菜单 2 选择 新建本地视图 再单击 视图向导 按钮 3 然后按照向导屏幕上的指示操作 说明 按照上述几种方式 可以快速建立本地视图 但要强调的是 在项目管理器中创建或使用视图时 项目管理器会自动打开数据库 如果要使用项目以外的表或视图 则必须先打开数据库或事先确认数据库在作用范围内 本地视图向导 步骤1 字段选取 本地视图向导对话框如图 创建视图大体要经过以下步骤 1 字段选取 选择数据库 数据库中的表和表中的字段 如果当前已经打开了一个数据库 则第一步的对话框中显示的是创建当前数据库的视图 也可以选择其它的数据库 2 关联表 建立数据库中表与表之间的关系 3 包含记录 指定包含表中的全部记录还是仅匹配的记录 4 筛选记录 选定符合条件的记录 5 排序记录 为选定的记录按照某一字段进行排序 6 限定记录 定制显示一定数量的记录 7 完成视图 选择保存视图后浏览还是修改 例 创建包含Grade表和Courses表的本地视图 视图1 选择表Grade 单击全部添加按钮 选择Courses表 单击单个添加按钮 添加课程名 学时数 学分数 选择字段完成后 单击 下一步 步骤2 为表建立关系 本地视图向导 步骤2 为表建立关系 父表字段选择下拉选择框 子表字段选择下拉选择框 说明 在这一步要建立用来建立本地视图的表间的关系 1 先在父表字段选择下拉选择框中选择要用来建立关系的主关键字 2 再在子表字段选择下拉选择框中选择用来建立关系的子表关键字 3 单击 添加 将设定关系添加到关系列表框中 上面的字段符合要求 单击 添加 关系设置完成后单击 下一步 进入到步骤2a 字段选取对话框 本地视图向导 步骤2a 字段选取 生成的本地视图中只包含表中关系相匹配的记录 对应于关系中的内联接的设置结果 生成的本地视图中包含Grade表中的全部记录和子表中关键字段相匹配的记录 对应于关系中的左联接的设置结果 生成的本地视图中包含Courses表中全部记录和父表中关键字段相匹配的记录 对应于关系中的右联接的设置结果 生成的本地视图中包含表中所有的记录 对应于关系中的完全联接的设置结果 本例中选用默认值 仅包含匹配的行 然后单击 下一步 进入步骤3 筛选记录 本地视图向导 步骤3 筛选记录 说明 本地视图向导的筛选记录与查询向导的筛选记录的方式类似 在本例中不筛选记录 单击 下一步 进入到本地视图向导的步骤4 排序记录 本地视图向导 步骤4 排序记录 说明 在这一步中设置在本地视图的记录顺序 本例中可先按 学号 排序 学号相同的再按 课程代号 排序 操作方法与建立查询的记录排序方法相同 先在 可用字段 列表框中选择 学号 然后单击 添加 再选择 课程代号 再单击 添加 如上图 排序字段及顺序设置后单击 下一步 进入本地视图向导 步骤4a 限制记录 本地视图向导 步骤4a 限制记录 限制记录的方法与建立查询的限制记录的方法完全相同 在本例中仍保持在本地视图中包含所有的记录 因而取默认值 直接单击 下一步 进入本地视图向导 步骤5 完成 在第5步中的操作方法也与建立查询的方法相同 现选择 保存本地视图并浏览 然后单击 完成 弹出 视图名 对话框 在 视图名 文本框中输入 视图1 输入视图名后单击 确认 按钮 系统显示所建立的本地视图的结果 本地视图向导结束 2 利用视图设计器创建本地视图 1 进入视图设计器进入视图设计器的方法与进入查询设计器的方法基本相同 下面以新建视图的方式进入视图设计器 启动视图设计器方法 新建一个视图可按以下步骤进入视图设计器 选择 文件 新建 命令 单击 视图 单选框 再单击 新建文件 按钮 在数据库设计器中 选择 数据库 新建本地视图 或单击数据库设计器的快捷菜单中的 新建本地视图 新视图 按钮 在项目管理器中 单击 数据 选项卡 在列表框中选定 本地视图 再单击 新建 按钮 单击 新建视图 按钮 修改一个视图可按以下步骤进入视图设计器 在数据库设计器窗口中 单击选定需要修改的视图 选择 数据库 修改 命令 在数据库设计器窗口中 右击需要修改的视图 在出现的快捷菜单中选择 修改 命令 在项目管理器中 单击 数据 选项卡 在列表框中选定需要修改的视图 单击 修改 按钮 视图设计器 工具栏说明 添加表 显示 添加表或视图 对话框 从而可以向设计器窗口添加一个表或视图移去表 从设计器窗口的上窗格中移去选定的表 添加联接 在视图中的两个表之间创建联接条件显示 隐藏SQL窗口 显示或隐藏建立当前视图的SQL语句最大化 最小化上部窗口 放大或缩小视图设计器的上窗格 2 从表中选择所需字段在进行本地视图设计器之前 先建立Classzc表和Department表 表结构和数据如下 通过上述方式之一打开视图设计器 在进入设计器之前 需要选定数据库和表 现选定XGGL数据库 如右图 从中选定表Classzc并单击 添加 按钮 然后单击 关闭 按钮 启动视图设计器 视图设计器 进入视图设计器后 第一步先需要选定字段 选定字段可直接通过字段选项卡进行 其操作方法与查询设计器中选择字段的方法相同 从 可用字段 列表框里选定Classzc 班级简称字段 单击 添加 按钮或双击该字段 则Classzc 班级简称字段将会出现在右边的 选定字段 列表框中 本次建立的视图里 还需要选定Classzc 学习性质 Classzc 学制二个字段 它们选定的方法与选定Classzc 班级简称字段一样 如果需选定字段是 可用字段 列表框中的所有字段 可以单击 全部添加 按钮 这样就把所有字段添加到了 选定字段 列表框中去了 可以通过 移去 按钮将其移出来 如果需要全部移出 可以利用 全部移去 按钮快速移出 要将表中的字段添加到 选定字段 列表框中 除了上述方法外 还可以将鼠标指向视图设计器上部窗口中的表窗口中的字段上 按住鼠标左键或右键拖动一个字段到 选定字段 列表框 该字段就被加入到了 选定字段 列表框中 还可以通过双击字段名将其加入到 选定字段 列表框 表窗口中的 代表表中的全部字段 它也是可以拖动或双击的 若要从 选定字段 列表框中移去字段 也可以使用鼠标拖动或双击 字段 选项卡还有一个 属性 按钮和一个 函数和表达式 文本框 只要 选定字段 列表框中有一个值 属性 命令按钮就成为可选的了 选择 属性 后 出现图 属性设置可分为五种类型 字段有效性 显示 匹配字段到类 数据匹配和注释 其中字段有效性 显示 匹配字段到类和注释在第3章中介绍数据表设计时已经作过说明 视图设计和数据表设计在字段属性上基本类似 函数和表达式 文本框及其按钮 函数和表达式 文本框用于输入一个函数和表达式 具体操作只需单击 函数和表达式 文本框后的对话按钮 在随后出现的表达式生成器中书写函数或表达式 此选项的功能是为了生成一个虚拟的字段 后面的创建步骤与本章前述的用查询设计器设计查询相似 在此不一一阐述 3 建立多表关联前面主要是针对单一的本地表建立视图 虽然很容易 但它的实际功能不大 因为在实际开发中 系统的数据库很复杂 表的关联性很强 用户关心的往往是一些复杂的数据 因此需要建立多表视图 从定义上讲 多表视图指的是 视图中的字段来源于两个或两个以上的表 但是 在视图中表间的关系既不像数据库中的关系是永久的 也不像表中的关系是暂时的 它不靠索引字段进行联接 而是通过定义一个联接表达式来进行联接 表间的关系是松散的 可以按如下办法建立表间的联接 在视图设计器中单击 联接 选项卡即可设置多表间的关联 在 添加表或视图 对话框中 选定表后 单击 添加 按钮 当视图设计器中的表在两个及以上时 视图设计器就会为选定的表建立关联 说明 用以上的方法建立多表关联 必须有多个表添加到了视图设计器中 后续的操作方法与设计多表查询相似 除不同点外 相同的部分这里不再讲述 例 建立表Department Classzc Student Courses和Grade五表之间的关联的视图 名称为 视图3 4 与设计多表查询不相同的部分 更新条件视图的最大特点在于能用视图更新数据 这也是建立视图与建立查询的主要区别 也是视图的重点所在 视图设计器中的 更新条件 选项卡可以用来设置允许视图更新表字段的条件 更新条件 选项卡选项包括如下内容 表 指定视图所使用的哪些表可以修改 选择这个下拉列表框中的选项 可以确定哪些表中的字段可以在 字段名 列表框中 以便设置更新条件 此列表中所显示的表都包含了 字段 选项卡 选定字段 列表中的字段 重置关键字 这个按钮作用是从每个表中选择主关键字字段作为视图的关键字字段 每个主关键字字段是在 字段名 列表中的 在钥匙符号下面打一个对钩的字段 关键字字段可 可用来使视图中的修改与表中的原始记录相匹配 全部更新 可以从字段名文本框中看到一些字段前的铅笔符号下打了一个对钩 这表明这些字段可以更新 在这个按钮中可以选择除了关键字字段以外的所有字段来进行更新 并在 字段名 列表的铅笔符号下打一个对钩 发送SQL更新 指定是否将视图记录中的修改传送给原始表 如果选择了这个复选框 将把在视图中对记录字段的修改返回到源表中 字段名 列表框 显示了从 表 列表框中所选的表中的字段 并用来输出这些字段 不过这些字段都是可以更新的 在字段文本框中共有下列3种方式字段 关键字段 使用钥匙符号作标记 指定该字段是否为关键字段 可更新字段 使用铅笔符号作标记 指定该字段是否为可更新字段 字段名 显示可标志为关键字字段或可更新字段的输出字段名 SQLWHERE子句包括 关键字段 如果在原始表中有一个关键字字段被改变 设置WHERE子句来检测冲突 对于由另一用户对表中原始记录的其他字段所做修改不进行比较 关键字和可更新字段 设置WHERE子句来检测由某一用户修改了任何可更新的字段的冲突 关键字和已修改字段 如果从视图首次检索 默认 以后 关键字字段或原始表记录的已修改字段中 某个字段做过修改 设置WHERE子句来检测冲突 关键字段和时间戳 如果自原始表记录的时间戳首次检索以后 它被修改过 设置WHERE子句来检测冲突 只有当远程表有时间戳列时 此选项才有效 使用更新 此单选按钮组用于指定字段如何在后端服务器上进行更新 SQLDELETE然后INSERT 指定先删除原始表记录后 再创建一个新的在视图中被修改的记录 SQLUPDATE 指定用视图字段中的内容来修改原始表中的字段 具体说明如何设置更新条件详见6 5在视图中更新数据 返回 3 4 2用已有的SQLSELECT语句创建视图 同查询一样 可用SELECT SQL语言创建视图 SELECT SQL语句 格式 SELECT ALL DISTINCT TOPnExpr PERCENT Alias Select Item ASColumn Name Alias Select Item ASColumn Name FROM FORCE DatabaseName Table AS Local Alias INNER LEFT OUTER RIGHT OUTER FULL OUTER JOINDatabaseName Table AS Local Alias ONJoin Condition INTODestination TOFILE ADDITIVE TOPRINTER PROMPT TOSCREEN PREFERENCEPreferenceName NOCONSOLE PLAIN NOWAIT WHEREJoinCondition AND JoinCondition AND OR FilterCondition AND OR FilterCondition GROUPBYGroupColumn GroupColumn HAVINGFilterCondition UNION ALL SELECTCommand ORDERBYOrder Item ASC DESC Order Item ASC DESC 功能 从一个或多个表中检索数据 参数描述 SELECT 用SELECT子句指定在查询结果中包含的字段 常量和表达式 ALL 在查询结果中包含所有的行 包括重复值 它是系统的默认设置 DISTINCT 在查询结果中删除重复行 TOPnExpr PERCENT 在符合查询条件的所有记录中 选取指定数量或百分比的记录 TOP子句必须与ORDERBY子句同时使用 ORDERBY子句指定按哪个字段排序 TOP子句根据此排序选定开始的nExp个或nExp 的记录 可以指定选取1 32767条记录 Alias 限定匹配项的名称 Select Item指定的每一项在查询结果中都生成一列 如果多个项具有相同的名称 则应在这些项前加上表的别名和一个句点号 以防止出现重复的列 Select Item 指定包含在查询中的一个项 一个项可以是 FROM子句中所包含的表中的字段名称 一个常量 查询结果中的每一行都出现这个常量值 一个表达式 可以是用户自定义函数名 ASColumn Name 指定查询结果中的列标题 当Select Item是一个表达式或一个字段函数时 如果要给此列取一个有意义的名称可用这个子句 它可以是一个表达式 FROM 列出所有从中检索数据的表 如果没有打开表 VFP会显示 打开 对话框以便指定文件位置 表打开以后直到查询结束才关闭 FORCE 如果包含了此子句 VFP在建立查询时会严格按照在FROM子句中申明的顺序建立联接 否则会试图对查询进行优化 避免优化过程 可能会加快查询执行的速度 DatabaseName 当包含表的数据库不是当前的数据库时 此子句指定数据库的名称 如果数据库不是当前数据库 就必须指定包含表的数据库名称 注意其后应加上 号 Table AS Local Alias 为Table中的表指定一个临时名称 如果指定了本地别名 那么在整个Select语句中都必须用这个别名代替表名 INNERJOIN 只有在其它表中包含对应记录 一个或多个 的记录才出现在查询结果中 LEFT OUTER JOIN 在查询结果中包含JOIN左侧表中的所有记录 以及右侧表中匹配的记录 这是左联接 RIGHT OUTER JOIN 在查询结果中包含JOIN右侧表中的所有记录 以及左侧表中匹配的记录 这是右联接 FULL OUTER JOIN 在查询结果中包含JOIN两侧表中的所有记录 这是完全联接 DatabaseName Table AS Local Alias 指定和当前表建立联接的表所在的数据库及表名或本地表别名 ONJoinCondition 指定联接条件 INTODestination 指定在何处保存查询结果 如果在同一个查询中同时包含了INTO子句和TO子句 则TO子句不起作用 如果没有包含INTO子句 查询结果显示在 浏览 窗口中 Destination可以是下列子句之一 ARRAYArrayName 将查询结果保存到数组中 如果查询结果中不包含任何记录 则不创建这个数组 CURSORCursorName 将查询结果保存到临时表中 如果指定了一个已打开表的名称 则VFP产生错误信息 执行完SELECT语句后 临时表仍然保持打开 活动 但只读 一旦关闭临时表 则自动删除它 DBFTableName TABLETableName 将查询结果保存到一个表中 如果指定的表已经打开 并且SETSAFETY设置为OFF 则VFP在不给出任何警告信息的情况下改写该表 执行完SELECT语句后 临时表仍然保持打开活动状态 TOFILE ADDITIVE TOPRINTER PROMPT TOSCREEN 如果命令中包含了TO子句 但没有包括INTO子句 则查询结果定向输出到名为的ASCII码文件 打印机或主窗口 包含ADDITIVE子句使查询结果追加到所指定的文本文件的内容后面 PREFERENCEPreferenceName 如果查询结果送往浏览窗口 就可以使用该子句保存浏览窗口的属性和选项以备后用 NOCONSOLE 不显示送到打印机 文件 或VFP主窗口的查询结果 PLAIN 防止列标题出现在显示的查询结果中 NOWAIT 打开浏览窗口并将结果输出到这个窗口后继续程序的执行 WHERE 告诉VFP只在查询结果中包含一定的记录 从多表检索中查找数据时需要用到该子句 JoinCondition 指定一个字段 该字段联接FROM子句中的表 如果查询中包括不止一个表就应该为第一个表后的每一个表指定联接条件 联接多个查询条件必须使用 AND 每个联接都是这样的形式 FieldName1ComparisonFieldName2其中 FieldName1是一个表的字段名 FieldName2是另一个表的字段名 Comparison是下列的某一操作符 LIKE FilterCondition 指定包含在查询结果中的记录必须满足条件 筛选条件的数目没有限制 只要将它们用 AND 或 OR 操作符连接起来即可 也可以使用操作符 NOT 对逻辑表达式取反 或使用EMPTY 函数检查字段是否为空等 GROUPBYGroupColumn 按列的值对查询结果进行分组 GroupColumn可以是常规的表字段名 也可以是一个包含SQL字段函数的字段名 还可以是一个数值表达式指定查询结果表中的列位置 HAVINGFilterCondition 指定包含在查询结果中的组必须满足的条件 它应和GROUPBYGroupColumn一起使用 UNION ALL SELECTCommand 把一个SELECT语句的最后查询结果同另一个SELECT语句最后的查询结果组合起来 ALL防止UNION删除组合结果中的重复行 ORDERBYOrder Item 根据列的数据对查询结果进行排序 每个Order Item都必须对应查询结果中的一列 用SELECT SQL命令完成上节的设计任务 SELECTDepartment 系部名称 Classzc 班级名称 Student 学号 Student 姓名 Course 课程名 Grade 课程成绩 FROMgxglxt departmentINNERJOINgxglxt classzc INNERJOINgxglxt student INNERJOINgxglxt grade INNERJOINgxglxt course ONGrade 课程代号 Course 课程代号 ONStudent 学号 Grade 学号 ONClasszc 班级代号 Student 班级代号 ONDepartment 系部代号 Classzc 系部代号 WHEREClasszc 系部代号 04 AND Grade 开课学期 第1学期 ORDERBYStudent 学号 INTOCURSOR视图1 运行该SELECT语句后 选择 显示 浏览 视图1 屏幕显示如图 返回 3 4 3创建远程视图 1 用视图向导创建远程视图创建使用远程数据 ODBC 的视图 必须存在一个数据库来保存视图 同时还需要存在数据源或命名连接 如果没有打开数据库 系统将提示打开数据库或创建数据库 在运行 远程视图向导 之前 可以在 选项 对话框的 远程数据 选项卡上设置远程视图和连接的默认选项 也可以在 连接设计器 中创建连接 如果要利用远程视图向导创建远程视图 则选择 文件 新建 命令 在弹出的新建对话框中选中远程视图 然后单击 向导 按钮 就会进入远程视图向导对话框中 或者在数据库设计器工具栏中单击 新建远程视图 按钮 选择使用向导 创建远程视图主要有以下步骤 1 数据源选取2 字段选取3 为表建立关系4 包含记录5 排序记录6 筛选记录7 完成 在第一步数据源选取中 可以在可用的数据源列表框中选择一种ODBC数据源或者一个已经建立的连接 如果选择的是一种未连接任何数据源的ODBC数据源 系统将显示一个 确认连接 对话框 从中选择一个数据源 当选择的VFPTables或VFP Databases时 会打开建立数据源对话框 在此对话框中为数据库选择一种类型 同时在Path中输入远程数据源的文件名或者使用 Browse 按钮选择一个文件作为远程数据源 选择数据源以后 向导就会进入下一步 以后的步骤与本地视图及创建查询没有太大的差别 在此不再赘述 2 利用视图设计器创建远程视图创建新的远程视图首先必须要有同数据源的连接 在数据库设计器中单击鼠标右键选择 新建远程视图 或者在 文件 下的 新建 命令 在新建对话框中选择远程视图 并单击 新建文件 按钮 此时会显示选择连接或数据源对话框 在此对话框中选择连接或者可用的数据源 如图 如果已经存在定义的连接 该对话框中就显示所定义的连接 如果要定义新的连接 可单击 新建 按钮 出现图示的 连接设计器 在数据源下面的下拉选项框中选择VisualFoxProDatabase项 其它项均采用系统默认设置 然后选择 验证连接 按钮 如果为这个连接指定了一个数据库 则会出现 连接成功 的提示信息 否则 将出现如图所示的连接配置 ConfigureConnection 对话框 在该对话框中选择 Browse 后将出现图示的 选择数据库 SelectDatabase 对话框 在此对话框中可以选择本地存在的数据库或网上邻居中设置为共享的数据库 然后选择 打开 就会在 连接配置ConfigureConnection 对话框中 Path 后的文本框中加入所添加的数据库文件名及其所在的路径 如 092 FOXPRO上机操作 Visualfp dbc 然后按 OK 系统会告诉 连接成功 然后再在 连接设计器 中单击 确定 接着弹出 保存对话框 默认的连接名为 连接1 可以采用默认的连接名 也可以重命名连接名 再单击 确定 在保存连接后 远程视图设计器 进入 打开 对话框 在视图设计器中对加入的表创建远程视图的操作与建立本地视图的操作一样 此处不再赘述 3 控制如何检查更新冲突如果在一个多用户环境中工作 服务器上的数据也可以被别的用户访问 也许别的用户也在试图更新远程服务器上的记录 为了让VFP检查用视图操作的数据在更新之前是否被别的用户修改过 可使用更新条件选项卡上的选项 在更新条件选项卡中 SQLWHERE子句包括框中的选项可以帮助管理遇到多用户访问同一数据时应如何更新记录 在允许更新之前 VFP先检查远程数据源表中的指定字段 看看它们在记录被提取到视图中后有没有改变 如果数据源中的这些记录被修改 就不允许更新操作 在 更新条件 选项卡中可以设置SQLWHERE子句 这些选项决定哪些字段包含在UPDATE或DELETE语句的WHERE子句中 VFP正是利用这些语句将在视图中修改或删除的记录发送到远程数据源或源表中 WHERE子句就是用来检查自从提取记录用于视图中后 服务器上的数据是否已改变 关键字段 当源表中的关键字段被改变时 使更新失败 关键字和可更新字段 当远程表中任何标记为可更新的字段被改变时 使更新失败 关键字和已修改字段 当在本地改变的任一字段在源表中已被改变时 使更新失败 关键字和时间戳 当远程表上记录的时间戳在首次检索之后被改变时 使更新失败 仅当远程表有时间戳列时有效 4 定制视图同本地视图一样 可以在远程视图中包含表达式 设置提示输入值 也可以设置高级选项来协调与服务器交换数据的方式 1 控制更新方法若要控制关键字段的信息实际上在服务器上更新的方式 可使用视图设计器中更新条件选项卡中 使用更新 中的选项 如图 当记录中的关键字更新时 这些选项决定发送到服务器或源表中的更新语句使用什么SQL命令 可指定先删除记录 然后使用在视图中输入的新值取代原值 SQLDELETE然后INSERT 也可指定使用服务器支持的SQLUPDATE函数来改变服务器的记录 2 在远程视图中添加表达式若要在视图中添加表达式 可在 筛选 选项卡中 从 字段名 框中选择 表达式 当视图基于远程数据源时 在 表达式设计器 中显示的函数反映了服务器所支持的函数 可以查看服务器文档中列出的该服务器所支持的函数列表 VFP不对构造的表达式作语法分析 而是将它们发送到远程服务器上 5 建立连接使用远程视图 无需将所有记录下载到本地计算机上即可提取远程ODBC服务器上的数据子集 可以在本地机上操作这些选定的记录 然后把更改或添加的值返回到远程数据源中 有两种连接远程数据源的方法 可以直接访问在机器上注册的ODBC数据源 也可以用连接设计器设计自定义连接 在安装VFP时 选择VFP的 完全 或 自定义 安装选项 就可以把ODBC安装在系统中 如果想为服务器创建定制的连接 可以使用连接设计器 创建的连接将作为数据库的一部分保存起来 并含有如何访问特定数据源的信息 使用连接设计器能够创建并修改命名连接 因为连接是作为数据库的一部分存储的 所以仅在有打开的数据库时才能使用连接设计器 连接设计器对话框中有如下选项 1 指定的数据源 数据源 用户标识 密码指定VFP显示以下三个框 数据源 允许从已安装的ODBC数据源列表中选择一个数据源 用户标识 如果数据源需要用户名称或标识 允许键入 密码 如果数据源需要密码 允许键入密码 数据库 可以选择一个数据库 作为所选数据源连接的目标 连接串 指定VFP显示连接串文本框 可在其中键入连接串 选择对话按钮 显示选择连接或数据源对话框 如图所示 可以选择现有文件或机器数据源 验证连接 可以对那些刚输入了内容的连接进行检查 如果连接成功 则显示对话框提示此消息 如果连接失败 则出现错误信息 如果没有对话指定内容 则显示选择 数据库对话框 从中选择数据源 前文已作介绍 新建数据源 显示 DataSources 对话框 可以在其中添加 删除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年信息安全与数据隐私保护试题及答案
- 2024年-2025年农作物植保员职业技能考试题及答案
- 2025版乙肝常见症状及护理原则培训
- 2025年高考化学模拟卷含解析及答案
- 长短句互换的方法
- 2025年大学生心理健康教育考试试题及答案
- (完整版)10KV配电室安装工程施工方案
- 2025版痛风性关节炎常见症状及护理技巧
- 计算机网络技术及应用(第2版)课件 第1-4章 初识计算机网络 -网络操作系统
- 材料员工作成果
- 电力公司新闻通讯工作培训
- 2025年湖南高速铁路职业技术学院单招职业技能考试题库必考题
- 2025修缮沥青道路工程合同
- 2025年徐州市专业技术人员公需课程 - 心理调适
- 2025年阜新高等专科学校单招职业技能测试题库及答案一套
- 下肢深静脉血栓的评估与预防
- 合同合规培训
- 内镜下套扎术护理配合
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 夜夜的晚夕里梦见合唱简谱
- 《两次战争比较》课件
评论
0/150
提交评论