已阅读5页,还剩304页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 数据库技术与应用 2 前言 1 VisualFoxPro6 0关系数据库管理系统是新一代数据库管理系统的杰出代表 以它强大的性能 完整而又丰富的工具 超高速的速度 极其友好的界面 以及完备的兼容性等特点 吸引众多的国内外用户 倍受广大用户的欢迎 3 VisualFoxPro6 0的显著特点 可运行于Windows98 2000 XP和WindowsNT平台不仅可以简化数据库管理 而且能使应用程序的开发流程更为合理使组织数据 定义数据库规则和建立应用程序等工作变得简单易行用户利用可视化的设计工具和向导 可以快速创建表单 查询和打印报表 提供了一个集成化的系统开发环境 支持过程式编程技术 支持面向对象可视化编程技术 在语言方面作了强大的扩充 前言 2 4 根据教育部提出的非计算机专业计算机基础教学三个层次要求配合全国计算机等级考试 VisualFoxPro二级 考试大纲的知识要点以VisualFoxPro6 0为主要内容 介绍关系数据库管理系统基础理论及应用系统开发知识主要内容 数据库基础理论 VisualFoxPro6 0的基本操作 面向对象可视化编程 应用系统开发的方法 步骤 课程概述 5 第一章VisualFoxPro程序开发环境第二章VisualFoxPro6 0的语言元素第三章表与数据库第四章查询和视图第五章表单设计第六章建立报表与标签第七章菜单与工具栏设计第八章程序设计 目录 6 第一章VisualFoxPro程序开发环境 1 1数据库系统的基本概念1 2VisualFoxPro6 0的发展与特点1 3用户界面 7 1 1数据库系统的基本概念 1 1 1数据 信息与数据处理一 概念数据 一种符号系列 用来记录事物的情况 信息 经过加工处理的 对人类社会有用的数据 数据处理 对数据进行收集 存储 加工 传输等一系列活动总和 信息 数据 处理 二 数据处理技术的发展三个主要阶段 1 程序管理 2 文件系统 3 数据库技术 8 1 1 2数据库系统 数据库 Database 指存储在外存上的有结构的数据集合 数据库管理系统 DBMS DatabaseManagementSystem 一个在操作系统支持下 对数据库进行各种操作的软件系统 用来帮助用户建立 使用和管理数据库 并对数据库中的数据进行各种操作 如 增删 更新 查找 输出等 数据库应用系统人机系统 包含 用户 计算机硬件 数据库 数据库管理系统和为用户编写的应用程序 以便对数据库进行操作 9 1 1 3数据模型 一 数据库的数据组织形式 实体及其联系 实体 现实世界可被识别事物的抽象命名 如 人 属性 实体的抽象描述 任何实体都有属性去描述 属性是事物性质的抽象 如 人的姓名 年龄 性别 关键字 区别实体集合中不同个体的属性 如 学号 二 数据模型的分类 1 层次模型 采用树型结构 2 网络模型 采用无向图型结构 3 关系模型 采用二维表结构 10 三 关系模型的特点 关系模型将数据组织成二维表的形式 表中每列数据属于同一类型 表中不允许有重复的字段名 表中不允许有相同的行 表中行和列的顺序可以任意 一张二维表构成的关系模型应满足以下条件 11 1 1 4关系数据库 关系模型具有结构简单 操作简便 理论严谨 表示能力强等优点 用关系模型所设计的数据库称为关系数据库 一 关系数据库的五个层次字符 character 标识实体属性的符号集 包括数字 0 9 字母 A Z a z 和其他符号 这些字符每个在计算机中占据一个字节 byte 汉字系统中的每个汉字占据两个字节 字段 field 最基本的不可再分的有名字的数据单位 一个字段由一个或多个字符组成 字符的个数即为字段的长度 记录 record 描述一个个体的数据集合 由若干字段组成 组成记录的字段的长度之和称为记录的长度 表 table 按一定结构存储的一组相关的数据 由若干记录组成 记录中的字段规定了表中数据的结构 数据库 database 表与关系的集合 关系 relation 相关表之间的联系 12 二 八种元素 1 字段 field 2 记录 record 3 表 table 4 数据库 database 5 索引 index 6 查询 query 7 视图 view 8 过滤器 filter 三 关系运算关系模型中的关系表现为一张二维表 关系运算是指在关系 表 的层面上进行的操作 选择 投影 连接 选择 在一个表中选出满足指定条件的记录 投影 在一个表中选出各记录的若干指定字段的值 连接 将两个表的记录按一定的条件连接成一个新表的记录 13 1 2VFP6 0的发展与特点 1 2 1发展是一个在Windows95 98和WindowsNT环境下运行的典型的关系数据库管理系统早期的dBase 到FoxBase FoxPro1995年Windows95面世 VisualFoxPro3 0 VisualFoxPro5 0 VisualFoxPro8 0 现在的版本 其卓越的数据库处理性能 良好的开发环境赢得了广大用户的喜爱VisualFoxPro是目前微机上最为流行的关系数据库管理系统之一 14 1 3用户界面 VisualFoxPro6 0的安装和启动与其它Windows下的应用程序类似 用户界面也是标准的Windows风格 启动VisualFoxPro6 0以后 即可看到它的主窗口 主窗口由菜单栏 工具栏以及命令窗口等组成 VisualFoxPro6 0使用不同类型的窗口以便完成各种不同的任务 在VisualFoxPro6 0的各种平台上 除菜单外的所有部件都是窗口 包括工具栏在内 用户可以同时打开多个窗口 可以使用Windows下的窗口操作方法对VisualFoxPro6 0的窗口进行操作 如移动 改变大小等 15 工具栏是单击后可以执行常用任务的一组按钮 工具栏可以浮动在窗口中 也可以停放在VisualFoxPro6 0主窗口的上部 下部或两边 有效地使用工具栏 可以简化从菜单中进行选取的步骤 达到快速执行命令的效果 VisualFoxPro6 0中提供有各种类型的工具栏 默认情况下只有 常用 工具栏可见 若要激活一个工具栏 方法一 显示 菜单 工具栏 工具栏 对话框 方法二 工具栏上右击 工具栏列表 1 3 2工具栏 16 VisualFoxPro6 0的配置决定了VFP的外观和行为 例如建立VFP文件的默认位置 指定如何在编辑窗口中显示源代码及日期与时间的格式等 设置既可以是临时的 只在当前工作期有效 也可以是永久的 它们变为下次启动VFP时的默认设置值 如果是临时设置 那么它们保存在内存中并在退出VFP时释放 如果是永久设置 那么它们将保存在Windows注册表中 1 3 3配置VisualFoxPro6 0 17 1 工具 菜单 选项 命令 打开 选项 对话框 选项 对话框具有一系列代表不同类别环境选项的选项卡 2 在 选项 对话框按照自己的需要进行设置 3 保存所做的设置 二 使用 选项 对话框查看或更改环境设置 把设置保存为仅在当前工作期有效 在 选项 对话框中设置好以后 选择 确定 按钮 当把设置保存为仅在当前工作期有效时 它们一直起作用直到您退出VFP 或直到再次更改它们 永久保存所做的更改 在 选项 对话框中设置好以后选择 设置为默认值 按钮 把它们保存为默认设置 这将把它们存储在Windows注册表中 当选择出现在对话框每个选项卡上的 设置为默认值 按钮时 VFP保存所有选项卡上的所有选项 18 VisualFoxPro6 0提供给用户的三种交互式的可视化开发工具 1 3 4设计器 向导 生成器 一 设计器 Designer 设计器集成了用于设计对象的各种操作 并赋予可视化提示 二 向导 Wizard 把一些复杂的操作分解为若干简单的步骤来完成 每一步使用一个对话框 用户只要逐步回答向导提出的问题 向导便可以自动替你完成相应的任务 启动向导 工具 菜单 向导 子菜单 三 生成器 Builder 功能主要是为对象方便 快速地设置一些辅助选项 如帮助用户对特定的对象设置属性 或者组合子句创建特定的表达式等 与向导不同 生成器是可重入的 就可以不止一次地打开某一对象的生成器 19 VisualFoxPro6 0的帮助系统是一个十分有效的信息系统 就象一本内容丰富的使用手册 使用户不离开VisualFoxPro6 0环境就能检索到其各种帮助信息 一 进入帮助系统方法一 在窗口中输入 Help 命令 方法二 使用 帮助 菜单 方法三 按 F1 功能键 二 MSDN系统界面启动帮助后 就会见到MSDN的系统界面 MSDN的系统界面是MicrosoftVisualStudio6 0 包括VisualFoxPro6 0 向用户提供帮助信息的一个服务界面 在MSDN界面中有四个选项卡 目录 索引 搜索和书签 选取 目录 选项卡将看到MSDN系统帮助内容的目录 选中需要获得帮助的主题 双击该主题立即就会在该主题下列出所有的子主题 用同样的方法找到所需帮助的对象 双击选中的主题就会把该对象的详细信息列出来 选取 索引 选项则可根据关键词进行定位查询 如果还想查询别的主题 可以按 搜索 和 书签 选项卡进行查询 继续寻求帮助 当想回到主界面时 只需按 主页 按钮即可 1 3 5帮助系统 20 第二章VisualFoxPro6 0的语言元素 2 1数据与数据类型2 2函数2 3运算与表达式2 4VisualFoxPro6 0命令 21 程序中有常量 变量 函数等数据 数据有不同的类型数据容器 用户存放数据的地方 例如常量 变量 数组 记录 对象 等等 2 1 1常量与变量 常量 在程序运行的过程中其值固定不变的量 变量 在程序运行的过程中其值会改变的量 变量名必须遵守以下原则 以字母或汉字开头 变量名中只能含有字母 汉字 数字和下划线 变量名不能是VisualFoxPro6 0的保留字 如对象名 系统预先定义的函数名等 2 1数据与数据类型 22 2 1 2变量类型 数据库中的变量按存放形式分为两种 一 字段变量 数据库中定义的字段名 字段变量是指数据库表中已定义好的任一数据项 如果一个数据表中有20条记录 每一个字段名就有20个可取值 在数据表有一个记录指针 它指向的记录定义为当前记录 字段名变量的现值就是当前记录中对应字段的值 记录指针可以移动 因此字段名的取值随着指针的移动而改变 所以字段是变量 二 内存变量 不依赖数据库而独立存在的变量 内存变量是内存中的一个存储单元 这个存储单元中存放的数据就是内存变量的值 内存变量由赋值语句定义 它的数据类型取决于赋值数据的类型 内存变量是独立于数据库文件而存在的变量 用来存储数据处理过程中所需要的中间结果和最终结果 它参与计算处理 还可以作为控制变量 用来控制应用程序的运行 内存变量是一种临时工作单元 需要时可以临时定义 不需要时可以随时释放 23 数据是信息的表现形式 数据有不同的类型 数据处理的基本原则是对不同类型的数据进行不同的操作 所有的VisualFoxPro6 0数据都有其所属的类型 内存变量有五种类型 字符型 数值型 逻辑型 日期型 货币型 2 1 3数据类型 1 字符型 Character 通常用来表示文本类型的信息 由中英文字符 数字 空格和各种专用符号组成 两个或两个以上字符型数据的组合称为字符串 用定界符括起来的字符串即为字符型常量 定界符规定为 若一种定界符已作为字符型常量的组成部分 应选择另一种定界符来标识字符串 字符型数据如 STRING 昆明市 123 2 数值型 Numeric 数据 数值型数据由数字 小数点和正负号等组成 包括整数 1268 小数 0 38 负数 112 浮点数 148 931 科学计算数 2E 8 等 数值型数据用来进行数学运算 24 3 逻辑型 Logic 数据 表示逻辑判断结果的值 逻辑型数据只有两个值 逻辑值True 真 T 或逻辑值False 假 F 如表达式3 4的运算结果为 F 4 日期型 Date 和日期时间型 DateTime 数据 表示日期和时间的特殊数据 用 作为定界符 系统默认的格式为 月 日 年时 分 秒 如 12 22 0210 30 20 严格格式用 yyyy mm ddhh mm ssa p 表示 如 2002 12 2210 30 20p 5 货币型 Currency 货币单位数据 在使用货币型数据时将数字前加货币符号 如 123 45 567 90 25 字段类型类型名称说明大小应用举例字符型 Character 数字 字母 符号254人员简历 产品简介 26 2 1 4数组 数组是一批数据的有序集合数组中的每一个数据称为一个数组元素 在VisualFoxPro6 0中 数组元素均为内存变量 数组必须先定义后使用 定义数组的命令为 DECLARE 27 2 2函数 根据自变量 参数 的值由一定的规则得到一个单一的值 VisualFoxPro6 0向用户提供了丰富的标准函数 常用的函数类型有 数值型 字符型 逻辑型 转换型及输入型等 函数的一般形式是 参数表 VFP的函数与数学函数没有根本的区别 在使用函数时应注意 1 所有函数必须跟随有园括号 无论函数是否需要参数 除宏代换函数 外 2 每个函数必然有一个返回值 返回值有确定的数据类型 3 传送给函数的参数有一定的数据类型 必须按要求的数据类型传送参数值 28 VisualFoxPro6 0使用四种类型的运算 算术运算 关系运算 逻辑运算和字符运算 2 3 1算术运算对数值进行算术运算 运算结果为数值 货币等 它包括6种运算 加 减 乘 除 或 乘方 优先 优先级从高到底为 括号 乘方 乘除 加减 2 3 2关系运算用于对两个类型相同的表达式进行比较 参与运算的可以是数值 字符或日期等类型的数据 但运算结果为逻辑值 真或假 它包括6种运算 大于 等于 不等于 大于等于 数字型数据按其数值大小进行比较 字符型数据根据ASCII码值的大小进行比较 日期型数据是按年 月 日的先后进行比较 关系成立值为 T 否则值为 F 例 250 300结果为 F ABC ABD 结果为 T CTOD 01 01 2000 CTOD 08 01 2000 结果为 F 2 3运算符与表达式 29 2 3 2关系运算用于对两个类型相同的表达式进行比较参与运算的可以是数值 字符或日期等类型的数据 但运算结果为逻辑值 真或假 它包括6种运算 大于 等于 不等于 大于等于 数字型数据按其数值大小进行比较 字符型数据根据ASCII码值的大小进行比较 日期型数据是按年 月 日的先后进行比较 关系成立值为 T 否则值为 F 例 250 300结果为 F ABC ABD 结果为 T CTOD 01 01 2000 CTOD 08 01 2000 结果为 F 2 3 3逻辑运算对一个或两个逻辑表达式进行逻辑运算 结果也为逻辑型 产生逻辑型结果 真或假 它包括3种运算 AND 与 OR 或 NOT 非 优先级从高到底为 NOT AND OR 逻辑运算符与算术运算符一样也可利用括号来改变它们之间的操作运算的先后顺序 逻辑表达式实际上是一种判断条件 条件成立 表达式值为 T 条件不成立 表达式值为 F 例 性别 男 AND 专业 软件 年龄 60 OR 工龄 30 30 2 3 4字符串运算对两个字符型数据进行包含及连接运算 1 连接运算符 参与运算的数据与结果都为字符型 把两个字符串连接成一个新的字符串 把两个字符串连接 将第一个字符串尾部的空格移到新的字符串的末尾例 this isastring 结果为 thisisastring this isastring 结果为 thisisastring 2 包含运算符 参与运算的数据为字符型 结果为逻辑型 表示两个字符串之间的包含与被包含的关系 格式 如果包含在中其结果为真 否则为假 例 ING STRING 结果为 T 周逊 周逊教授 结果为 T this THISISASTRING 结果为 F 31 由各种数据 如常量 变量 函数通过各种运算符联结起来 具有一定意义的式子 表达式的求值结果为单个值 根据表达式运算结果的数据类型不同 表达式分为 字符表达式 数值表达式 关系表达式 逻辑表达式 当同一表达式中使用了几种运算符时 其优先级为 算术运算符或字符运算符 关系运算符 逻辑运算符 同一级别中的全部运算为从左至右的顺序进行 只有在使用了括号的情况下才能改变运算顺序 3 5 123 and not abc abc 2 3 5表达式 32 2 4VFP中的命令 VFP的命令又称为语句 它是充分吸收多种高级语言的优点逐步发展形成的 但比高级语言的语句更精炼 功能更强 VFP中的所有任务都由不同的命令来完成 当选择执行某个菜单中的命令 或通过VFP提供的工具完成某些任务时 实际上也是调用了一些VFP的命令 只不过这时的命令由VFP自动生成 而不用手工输入而已常用命令及格式见附录一 33 2 4 1命令格式 命令由两部分组成 前面是命令动词 关键字 表示应该执行的操作 后面是若干短语 参数 对操作提供某些限制性的说明 命令动词 范围 表达式表 for while 范围 表示操作范围 ALL 表示选择全部记录 NEXTn 表示从表中当前记录开始的n个记录 RECORDn 特指第n个记录 REST 表示选择从当前记录开始一直到表中的最后一个记录 表达式表 可以是一个或多个由逗号分隔开的表达式 用来表示命令所进行操作的结果参数 for 对表中满足条件的所有记录进行操作 while 遇到第一个不满足条件的记录就停止操作 注意 当 For 条件和 While 条件同时存在时 WHILE条件将覆盖 For 条件 34 2 4 2赋值命令与显示命令 1 赋值命令 给内存变量赋值 1 STORE命令功能 建立内存变量 并给内存变量赋予初值或为已建立的内存变量重新赋值 格式 STORETO 变量表 STORE命令为单个变量赋值时 可以简写为 例1STORE1TOx y zSTORE 男 TO性别例2x 1x 2 x 10 x x 1 2 INPUT和ACCEPT命令功能 从键盘给内存变量赋值格式 INPUT ACCEPT 提示信息 TO 内存变量 例 INPUT X TOXACCEPT 请输入学生姓名 TOname 3 WAIT命令 35 2 显示命令 功能 计算并显示变量 表达式和常量的值 格式 例STORE1TOx y z x y z 2 x y z m1 ABC m2 DEF m1 m2 Iamastudent 3 5 4 3 5 4 3 5 4 3 5 4 注意 1 当 命令后面没有任何表达式时 输出一个空行 2 命令的区别是 命令从光标当前行的下一行开始显示 命令在当前光标位置开始显示 36 2 4 3命令窗口 命令窗口是一种系统窗口 可直接在其中输入VFP命令 当选择执行某个菜单中的命令 或通过VFP提供的工具完成某些任务时 一些命令还会自动显示在命令窗口中 打开命令窗口 窗口 菜单 命令窗口 一 命令的书写规则 以命令动词开头 后面的多个短语通常与顺序无关 用空格来分隔每条命令中的各个短语 命令不分大小写 当命令动词或命令参数超过四个字母时 可只输入前四个字符 如 CREATE可简写为CREADISPLAY可简写为DISP一条命令的最大长度是254个字符 如一条命令太长一行输不下时 行末须用分号 分隔 并在下行连续书写 37 二 编辑命令 命令窗口 是一个编辑窗口 可以对其中的文本进行编辑操作 在按Enter键执行命令之前可以按Esc键删除文本 利用 格式 菜单中的命令来改变字体 行间距和缩进方式 利用 编辑 菜单或快捷菜单中的剪切 复制 粘贴和清除等命令移动 复制和删除文本 38 2 4 4 表达式生成器 的使用方法表达式是用运算符把内存变量 字段变量 常数和函数连接起来的式子 表达式通常用于简单的计算和描述一个操作条件 表达式生成器 是VFP提供的用于创建并编辑表达式的工具 使用它可以方便快捷的生成表达式 表达式生成器 可从各种相关的设计器 向导 生成器及其它一些对话框中访问 某些对话框中的 对话按钮激活的就是表达式生成器 也可以在 命令 窗口中使用快捷菜单唤出表达式生成器 表达式生成器 对话框按其功能可分为五部分 表达式文本编辑框 函数列表框 变量列表框 表和视图下拉列表框 控制按钮 39 表达式文本编辑框 用于编辑表达式 从表达式生成器的各列表框中选择出来的选项将显示在这里 也可以直接在这里输入和编辑表达式 函数列表框 从中可以选择表达式所需的函数 这些函数按其用途分为字符函数 数学函数 逻辑函数和日期函数等四个列表框 变量列表框 从变量列表框中通过双击可以选择表达式所需的变量 在字段列表框中 列出了当前表和视图的字段变量 在变量列表框中 列出了可用的内存变量和系统变量 表和视图下拉列表框 从这个列表框中可以选择当前打开的表和视图 控制按钮 在表达式生成器中有四个命令按钮 确定 取消 检验 和 选项 若单击 选项 按钮 进入 表达式生成器选项 对话框 在该选项对话框中可以设置表达式生成器的参数 单击 检验 按钮可以检验生成的表达式是否有效 按 确定 按钮完成表达式生成并退出 表达式生成器 按 取消 按钮放弃对表达式的修改并退出表达式生成器 40 第三章表与数据库 3 1建立自由表3 2修改和使用表3 3设计数据库3 4建立数据库3 5索引与排序3 6表间关系与参照完整性3 7数据共享 41 3 1建立自由表 3 1 1表的概念 表以记录和字段的形式存储数据 是关系型数据库管理系统的基本结构 VFP6 0中 根据表与数据库的关系 将表分为两类 数据库表 和 自由表 属于某一数据库的表称为 数据库表 不属于任何数据库而独立存在的表称为 自由表 3 1 2设计表结构创建一个新表分为两个步骤 步骤一 创建表的结构 即说明表包含哪些字段 每个字段的长度及数据类型 步骤二 向表中输入记录 即向表中输入数据 一个表中的所有字段组成了表的结构 因为字段属性决定了表的结构 所以在建表之前应先设计字段属性 42 一 字段名表中的每个字段都是有名称的 比如 学生 表中的 学号 字段 学号 即为这个字段的字段名 字段名可以是以字母开头的字母数字串 也可以是汉字 自由表中的字段名不能超过10个字符 数据库表字段名长度不能超过128个字符 字段名中不接受空格字符 二 字段类型字段的数据类型应与存储其中的信息类型相匹配 数据库可以存储大量的数据 并提供丰富的数据类型 这些数据可以是一段文字 一组数据 一个字符串 一幅图像或一段多媒体作品 当把不同类型的数据存入字段时 就必须告诉数据库系统这个字段存储什么类型的数据 这样数据库系统才能对这个字段采取相应的数据处理方法 VisualFoxPro6 0支持十三种不同类型的数据 每种均有不同的目的和用途 应为表中的每个字段选取最适合于该字段数据用途的数据类型 43 字段类型类型名称说明大小应用举例字符型 Character 数字 字母 符号 254姓名 住址货币型 Currency 货币单位8存款 价格数值型 Numeric 整数 小数考试成绩浮点型 Float 同数值型日期型 Date 年 月 日参加工作时间日期时间型年 月 日 8上班时间 DateTime 时 分 秒整型 Integer 无小数点数4单位人数双精度型 Double 双精度数逻辑型 Logical 真或假1作业完成否通用型 General OLE 对象链接与嵌入 4EXCEL表格 图片备注型 Memo 文本4人员简历 产品简介 44 三 字段宽度设置以字符为单位的列宽 设置的列宽应保证能够存放所需的字段 但也不必设置的太宽 否则将占用大量内存 四 小数位数当字段类型为数值型和浮点型时 应为其设置小数位数 五 是否允许为空是否允许字段接受NULL值 所谓NULL值 就是无明确的值 NULL值不等同于零或空格 一个NULL值不能认为比某个值 包括另一个NULL值 大或小 相等或不等 45 在了解了字段的主要属性后 将表3 1所示的 学生 表中的字段属性定义下 表3 2 学生 表中的字段属性字段名数据类型字段宽度小数位NULL学号字符型7否姓名字符型8是性别字符型2是生日日期型8是专业字符型10是入学成绩数值型51是贷款否逻辑型1是照片通用型4是简历备注型4是 46 3 1 3建立表结构VisualFoxPro6 0提供了三种建立对象的方法 向导 设计器 命令 三种方法各有特点 可单独使用 也可混合使用 通常用 向导 生成对象 用 设计器 加工对象 在应用程序中用命令来管理对象 同样 建表也可以使用这三种方法 既可以使用 表设计器 也可以使用 表向导 还可以通过在命令窗口输入命令的方法来建表 这里先介绍如何建立自由表 数据库表的建立和自由表类似 我们在后面章节再介绍 自由表就是不与数据库关联的表 例如 要想保存多个数据库所共享的查找信息 就可以创建一个自由表 47 一 利用 表设计器 建表1 打开 表设计器 1 项目管理器 自由表 2 新建表 新建表 3 创建 输入表名和保存位置 保存 4 表设计器 2 定义字段3 完成设计VFP6 0中保存的表文件的扩展名为 dbf 当第一次创建表时 VFP6 0先创建表的 dbf文件 如果表中包含了备注型字段或通用型字段 VFP6 0还要创建与表相关联的 fpt文件 二 利用表向导建表还可用 表向导 来建立表的结构 向导是一个交互式程序 由一系列对话框组成 表向导能够基于典型的表结构创建表 在有样表可供利用的条件下 可以使用表向导来定义表结构 允许用户从样表中选择满足需要的字段 也允许用户在执行向导的过程中修改表的结构和字段 利用表向导保存生成的表之后 用户仍可启动表设计器来进一步修改表 48 三 使用命令建表在设计程序时 我们会经常用到一些命令 当我们使用 设计器 或 向导 时 系统正在自动地生成一些对应的VFP命令 并将其中的一些命令映射到命令窗口 可以使用CREATETABLE命令来建表 CREATETABLE表名 字段名1类型 宽度 小数位数 字段名2类型 宽度 小数位数 其中 字段类型用字母表示 常用的如 c 字符型 d 日期型 n 数值型 f 浮点型 l 逻辑型 m 备注型 以及g 通用型 等等 在 命令窗口 中输入如下命令可以建立 学生 表 CREATETABLEd 教学管理 表 学生3 学号c 7 姓名c 8 性别c 2 出生日期d 专业c 10 入学成绩n 5 1 贷款否l 照片g 简历m 49 3 1 4输入记录一 在创建表时输入二 在表创建好以后输入打开 浏览 或 编辑 窗口 项目管理器 浏览 切换 浏览 或 编辑 方式 显示 菜单在 浏览 或 编辑 窗口中输入 显示 菜单 追加方式 关闭浏览窗口三 输入记录的命令 76 50 注意 输入备注型和通用型字段输入备注型字段 双击该字段 输入 关闭输入通用型字段 双击该字段 编辑 菜单 插入对象表中的备注型字段实际上是一个指向备注内容的引用 其对应的实际数据保存在另外一个单独的文件中 其文件名与表名相同 但扩展名为 FPT 真正的备注内容的大小仅受存储空间的限制 对那些可能超过254个字符或含有诸如制表符及回车符的长文本 可以使用备注数据类型 通用型字段主要用来保存OLE对象 也是一个指向该字段真正内容的引用 如 电子表格 字处理文档 图片等 通用型字段的真正类型和数据大小取决于创建这些对象的OLE服务器 以及这些OLE对象是以链接方式还是以嵌入方式与该应用程序发生联系的 若链接OLE对象 则表中只含有对数据以及创建这些数据的应用程序的引用 若嵌OLE对象 则表中将含有相关数据的副本以及对创建这些数据的应用程序的引用 通用字段的大小也仅受可用存储空间的限制 51 3 1 5利用已有的表追加记录利用其它表已有的相同内容 可以快速给新表追加记录 无条件追加记录 追加源表中的所有记录 有条件追加记录 有选择的追加源记录和字段 1 打开需追加记录的表的浏览窗口2 表 追加记录 追加来源3 选项 追加来源选项4 字段 字段选择器5 For 表达式生成器 注意 表达式中的字符量必须用英文状态下的双引号括起来 向表中成批的追加记录时 其内容可以来源于不同的几个表 还可从EXCEL表 LOTUS表 TEXT文件等不同类型的文件中追加 52 表达式生成器 的使用方法表达式是用运算符把内存变量 字段变量 常数和函数连接起来的式子 表达式通常用于简单的计算和描述一个操作条件 表达式生成器 是VFP提供的用于创建并编辑表达式的工具 使用它可以方便快捷的生成表达式 表达式生成器 可从各种相关的设计器 向导 生成器及其它一些对话框中访问 某些对话框中的 对话按钮激活的就是表达式生成器 也可以在 命令 窗口中使用快捷菜单唤出表达式生成器 表达式生成器 对话框按其功能可分为五部分 表达式文本编辑框 函数列表框 变量列表框 表和视图下拉列表框及控制按钮 53 表达式文本编辑框 用于编辑表达式 从表达式生成器的各列表框中选择出来的选项将显示在这里 也可以直接在这里输入和编辑表达式 函数列表框 从中可以选择表达式所需的函数 这些函数按其用途分为字符函数 数学函数 逻辑函数和日期函数等四个列表框 变量列表框 从变量列表框中通过双击可以选择表达式所需的变量 在字段列表框中 列出了当前表和视图的字段变量 在变量列表框中 列出了可用的内存变量和系统变量 表和视图下拉列表框 从这个列表框中可以选择当前打开的表和视图 控制按钮 在表达式生成器中有四个命令按钮 确定 取消 检验 和 选项 若单击 选项 按钮 进入 表达式生成器选项 对话框 在该选项对话框中可以设置表达式生成器的参数 单击 检验 按钮可以检验生成的表达式是否有效 按 确定 按钮完成表达式生成并退出 表达式生成器 按 取消 按钮放弃对表达式的修改并退出表达式生成器 54 3 2修改和使用表 3 2 1打开 关闭表一 打开表表在 项目管理器 中 选定要打开的表 然后选择 浏览 按钮在浏览窗口中打开该表 表不在 项目管理器 中 从 文件 菜单中选择 打开 命令 然后在 打开 对话框中选择要打开的表将其打开 二 关闭表在命令窗口输入不带任何参数的 USE 命令即可 55 3 2 3修改表记录 一 修改记录内容1 在浏览窗口中修改2 在编辑窗口修改 二 删除记录删除记录的过程 分为两步 第一步 对要删除的记录作删除标记 第二步 彻底删除 56 1 作删除标记鼠标单击记录前的删除标记条 表 菜单 删除记录 命令 删除 对话框2 还原记录鼠标单击记录前的删除标记条 表 菜单 恢复记录 命令 恢复 对话框3 彻底删除 表 菜单的 彻底删除 命令或在 命令 窗口中输入 PACK 命令注意 执行 彻底删除 命令后 带有删除标记的记录被从磁盘上彻底删除 被彻底删除的记录不能再用 恢复记录 命令恢复 4 删除全部记录如果想删除表中的所有记录 只留下表的结构 可使用ZAP命令 在 命令 窗口中输入 ZAP 命令将彻底删除表中的所有记录 注意 此命令破坏性极大 应慎用 57 3 2 4查看记录 一 浏览记录Tab键 Shift Tab键 PageUp键 PageDown键记录指针 当前记录 二 改变浏览窗口改变列宽和行高调整字段顺序在浏览窗口中改变列宽或列的顺序 并不影响表的实际结构 打开或关闭网格线 显示 菜单中的 网格线 可显示或隐藏浏览窗口中的网格线 拆分浏览窗口拆分窗口可以查看同一表中的两个不同区域 取消 表 菜单中 链接分区 可使两个区域相对独立 58 三 定位记录用 查找 命令查看用 转到记录 命令查看注意 若有几个记录都符合定位的条件 只定位表中第一个符合条件的记录 若想同时查出所有记录 则需使用数据过滤功能 四 过滤数据记录过滤打开表浏览窗口 表 属性 工作区属性 数据过滤器 表达式生成器 生成过滤表达式 恢复被过滤的数据 表 属性 数据过滤器 删除表达式 确定 字段筛选 工作区属性 字段筛选指定的字段 字段筛选 字段选择器 确定 59 3 2 5使用多个表 一 工作区和工作期的概念1 工作区为了能够同时使用多个表 引入了工作区的概念 工作区是一个编号的区域 用它来标识一个打开的表 在每个工作区中只能同时打开一个表 在一个工作区中打开其它的表时 原来在该工作区中打开的表自动关闭 若要同时使用多个表 就要使用多个工作区 在VisualFoxPro6 0中 最多可以有32767个工作区 在应用程序中工作区一般通过使用该工作区的表的别名来标识 表别名是表的另一个名称 它可以引用在工作区中打开的表 2 数据工作期是当前动态工作环境的一种表示 每个数据工作期包含有自己的一组工作区 这些工作区含有打开的表 表索引和关系 60 二 在 数据工作期 窗口查看工作区从 窗口 菜单选择 数据工作期 命令或在 命令 窗口中键入SET命令VisualFoxPro6 0打开如图3 29所示的 数据工作期 窗口 并显示在当前数据工作期中的工作区中打开的表的别名 三 在工作区中打开 关闭表1 在工作区中打开表 1 在 数据工作期 窗口中 单击 打开 按钮 出现一个 打开 对话框 2 在 打开 对话框中选择要打开的表 单击 确定 按钮 2 在工作区中关闭表在 数据工作期 窗口中选定要关闭的表别名 然后选择 关闭 当在同一工作区中打开其他表时 可以自动关闭已打开的表 61 四 使用表别名别名是指定给一个表或表达式中某项的另一个名称 通常用来缩短在代码中连续引用的名称 表的别名是用来引用工作区中打开的表的 当打开一个表时 VisualFoxPro6 0自动将表名作为缺省的别名 也可以另外指定一个别名 当指定的别名发生冲突时 VisualFoxPro6 0将自动给这个表创建一个别名 可以通过别名和工作区引用一个表 1 创建用户自定义别名在打开表一个时 用户可以为它指定一个自定义的别名 例如 可以使用以下命令 在0号工作区中打开表文件 学生 dbf 并为它指定一个别名 xs SELECT0USE学生ALIASxs然后使用别名 xs 引用打开的表 注意 别名最多可以包括254个字母 数字或下划线 但首字符必须是字母或下划线 如果所提供的别名包含不支持的字符 则VisualFoxPro6 0会自动创建一个别名 62 2 使用VisualFoxPro6 0指定的别名如果同时在多个工作区中打开同一个表 并且在每个工作区中打开该表时没有指定别名 或者别名发生冲突 VFP6 0将自动为表指定一个别在前10个工作区中指定的默认别名是工作区字母A到J 在工作区11到32767中指定的别名是W11到W32767 您可以象使用任何默认别名或用户自定义别名那样 使用这些VisualFoxPro6 0指定的别名来引用在一个工作区中打开的表 3 使用别名选择工作区使用SELECT命令选择当前工作区 如已在一个工作区中打开了学生 dbf并指定默认别名xs 可以使用 SELECTxs命令选择到这个工作区中 4 引用在其他工作区中打开的表在别名后加上点号分隔符 或 操作符 然后再接字段名 可以引用其他工作区中的字段 例如 可以使用 学生 学号访问其他工作区中打开的 学生 表的 学号 字段 如果要引用的表是用别名打开的 则也可以使用别名 例如 如果 学生 表是使用别名 xs 打开的 那么 可以使用 xs 姓名引用表中的 姓名 字段 63 3 3设计数据库 VisualFoxPro6 0中的表和传统数据库的表是一致的 表以记录和字段的形式存储数据 但数据库已不用于存储数据 而是用于存储数据库表的属性 组织关联表和视图 创建存储过程 数据库是按特定的顺序组织起来的相关信息的一个集合 在数据库应用系统中 数据库的设计是一项非常重要的工作 数据库性能的优劣将直接影响到最终应用系统的性能 经过长期的摸索 人们提出了各种数据库设计方法以及各种设计准则和规程 这就是规范化设计方案 设计数据库一般包括以下几个基本过程 1 分析数据需求2 确定需要的表3 确定所需字段4 确定关系5 完善设计 64 3 3 1分析数据需求 明确数据库的使用目的是设计数据库的第一步 也就是说你需要从数据库中得到哪些信息 明确目的之后 就可以确定需要保存那些主题的信息 表 以及每个主题需要保存哪些信息 字段 分析数据需求时要注意以下两点 一是要强调用户的参与 和数据库的使用人员多交换意见 并根据用户提出的要求 推敲数据库需要回答哪些问题 二是要充分考虑到数据库可能的扩充和改变 怎样才能提高数据库的灵活性 也只有创建一个设计灵活的数据库 才能保证所建立的应用程序具有较高的性能 例如 某校的教务部门要搞一个 教学管理 数据库 存放教与学两方面的信息 也就是有关学生的情况 教师的情况 课程安排以及考试成绩等方面的信息 要求从中可以查出每个学生各门课程的成绩 或者某门课程由哪位教师担任 哪些学生选修了这门课 以及这门课程的考试成绩等数据信息 65 3 3 2确定数据库表 根据用户的需要及从数据库得到的内容通过分析归纳来确定需要哪些表 并把需要的信息分门别类地归纳到相应的表中 理解关系型数据库设计过程的关键在于理解关系型数据库管理系统保存数据的方式 为了高效准确地提供信息 应该将不同主题的信息存储在不同的表中 每个主题就是一张表 例如 我们根据上面提出的 教学管理 数据库的要求 来考虑这个数据库需要哪些表 首先 为了得到学生和教师的信息 应该为学生和教师各建一个表 我们把这两个表分别叫作 学生 表和 教员 表 其中存放有关学生和教师的基本情况 当然 还要有一个存放各门课程的考试成绩的表 从中可以了解各个学生的学习成绩 我们就把这个表叫作 成绩 表 为了了解各门课程的情况 设置一个 课程 表 为了了解各专业的情况并能按专业查殉学生的信息 再设置一个 专业 表 66 3 3 3确定所需字段 在确定表所需字段时应遵循以下规则 一 字段唯一性描述不同主题的字段应属于不同的表 表中不应有与表的内容无关的数据 不应在多个表中重复同样信息 如果相同信息出现多次 不仅浪费存储空间 而且会增加出错的可能性 二 字段无关性这一规则防止对表中数据作修改时出现错误 也就是在不影响其他字段的情况下 必须能够对任意字段进行修改 像一些可以通过对其它字段的推导或计算得到的数据 就不必存储到表中 例如 只要记录学生的 生日 就可计算出 年龄 同样 总成绩 通常是根据 平时成绩 期中成绩 和 期末成绩 计算出来的 因此 无需保留 年龄 和 总成绩 因为要看结果时可用VisualFoxPro6 0进行计算 67 三 主关键字数据库中的每个表都必须具有一个标识符可以唯一确定存储在表中的每个记录 这种唯一标识每个记录的信息称作表的主关键字 主关键字不允许有重复值和NULL值 主关键字由表中一个或多个字段构成 例如 为了能够在 学生 表中标识不同的学生 可用 学号 作为主关键字 四 外部关键字在表中应该有与其它表相链接的信息 如 学号 专业 课程代号 等字段 这些用于 链接 的字段就是外部关键字 当在VisualFoxPro6 0中定义表时 将主关键字与外部关键字链接起来 以告诉VisualFoxPro6 0如何在需要从多个表中获取信息时自动地链接数据 68 五 收集所需的全部信息应全面检查所需的表单和报表 重新思考需要VisualFoxPro6 0回答的问题 确保所需的数据信息都包括在所设计的表中 或者可由这些表中的数据计算出来 六 以最小的逻辑单位存贮信息如果你把多个信息放入一个字段中 以后要获取单独的信息就会很困难 应尽量把信息分解成比较小的逻辑单位 例如 为学生姓名 学号和性别创建不同的字段 69 学生 表的字段 学号姓名性别生日专业入学成绩贷款否照片简历身份证籍贯地址电话特长奖励处分病史 教员 表的字段 教师代号姓名性别生日职称 课程 表的字段 课程代号课程名周学时学分 成绩 表的字段 学号课程代号平时期中期末 专业 表的字段 专业负责人研究方向 根据以上的原则 我们为 教学管理 数据库的各个表设置如下的字段 70 3 3 4确定关系 到目前为止 已经把信息分成了各个表 在每个表中可存储各自的数据 可是 这些表是孤立的 还需要在这些表之间定义关系 VisualFoxPro6 0将利用这些关系来查找数据库中有联系的信息 并将它们重新组合 得到有意义的信息 VisualFoxPro6 0将表之间复杂多样的关系归结为一对一 一对多和多对多的关系 一 一对一关系在一对一关系中 表一的一个记录在表二中只能对应一个记录 而表二中的一个记录在表一中也只能有一个记录与之对应 两表间的一对一关系不经常使用 因为在许多情况下 可将两个表中的信息合并成一个表 如果在数据库中存在一对一关系 那就要考虑一下是不是能把这些信息合并到一个表中 也可能出于某种原因不想合并 比如 有些信息是不常用的 或者某些信息是机密的 不应给每个人看到 例如 学生 表中保留的一些特殊信息 病历资料或受到的奖励及处分等 因为这些信息不需要经常查看 或者只能由学校的某些授权单位查看 所以 我们可创建一个拥有 学号 主关键字的单独表 原先的 学生 表与这张表之间的关系是一一对应的 71 二 一对多关系一对多关系是关系型数据库中最普遍的关系 在一对多关系中 对于第一张表中的任意一个记录 在第二张表中可以有多个记录与之对应 但反过来第二张表中的任意记录 在第一张表中只有一个记录与之对应 例如 专业 表和 学生 表之间就是一对多的关系 因为一个学生只能有一个专业 不考虑第二学历的情况 而每个专业则有多个学生 还有 学生 表和 成绩 表之间也是一对多的关系 每个学生可以有多门课程的成绩 但一个成绩只能属于一个学生 同样 课程 表和 成绩 表之间也是一对多的关系 每门课程可以有多个学生的成绩 但一个成绩只能属于一个学生某门课程 在一对多关系中 位于 一 端的表称为父表 和父表有关系的那个表为子表 父表也称为主表或主控表 子表又称为相关表或受控表 在一对多关系中 位于 一 端的表中用于建立关系的字段必须是主关键字字段 而位于 多 端的表中用于建立关系的字段是外部关键字字段 三 多对多关系在多对多关系中 表一的一个记录在表二中可以对应多个记录 同样表二中的一个记录在表一中也可以对应多个记录 在具有多对多关系的两个表之间 如果将一个表的主关键字段添加到另一个表中 那么就会出现同一信息保存多次的情况 这样就不利于信息的管理和维护 因此 在设计数据库时 应将多对多关系分解成两个一对多关系 其方法就是在具有多对多关系的两个表之间创建第三个表 在VisualFoxPro6 0中 把用于分解多对多关系的表称为 纽带表 因为它在两表之间起着纽带的作用 可以把两个表的主关键字都放在这个纽带表中 72 纽带表可能只包含了它所连接的两个表的主关键字 也可以包含其它信息 在纽带表中 两个字段连在一起就能使每个记录具有唯一值 例如 学生 表和 课程 表之间就是多对多的关系 每门课程可以有多个学生选修 同样一个学生也可以选修多门课程 而 成绩 表就是 学生 表和 课程 表之间的 纽带表 通过 成绩 表把 学生 表和 课程 表联系起来 比如 通过 学生 表和 成绩 表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传感器室内PM预警装置开发课程设计
- 奶油胶手作师岗位技艺考试试卷及答案
- 墨水配方研发工程师考试试卷及答案
- 【二年级上册语文】常用的量词搭配
- 2026年中学教师专业素养提升学习课件
- 2026年中秋节假期高中防溺水安全必修课
- 环境日倡议绿色生活
- 雕塑保护方案么范本
- 校园防泥石流避险逃生主题班会
- 2026年西师大新修订版数学四年级上册教学进度安排表
- 山东中医药大学学位考试-中医学毕业综合考试试题及参考答案
- 《中国古代兵器演变》课件
- 合肥鼎材科技有限公司光阻车间光刻胶生产线技术改造项目环评报告书
- 信息科技开学第一课课件 哪吒 人工智能 机器人 信息科技
- 社会问题(第三版)课件汇 向德平 第1-7章 社会问题概述 - 人口问题
- 彩钢板房施工方案范文
- (高清版)DB22∕T 1560-2012 农作物种植成本保险查勘定损技术规范总则
- 2025年营养师食品安全及营养健康职业技能及理论资格知识考试题库(附含答案)
- 《第2课 立在地球边上放号》课件 统编版高中语文必修上册
- 郑州财税金融职业学院招聘真题
- 急性胃炎临床路径(2017年县医院适用版)
评论
0/150
提交评论