




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 15 第三章数据库 表及其操作 1 本章内容简介本章介绍数据库与数据表的设计 创建 使用及表属性的设置 学习目标理解关系型数据库保存数据的特点 重点掌握数据库中表间的联系 学习数据库与数据表的设计 建立与使用的方法 学会在VisualFoxPro中操作数据库与数据表 通过对本章学习 理论上要求能深入地理解关系型数据库的特点 掌握设计数据库表的方法 理解索引的功能和数据完整性的意义 学习切入点及方法以数据管理的需求分析为切入点 通过分析数据库的表间联系来加深对关系型数据库的理解 多上机练习 掌握数据库与数据表的操作方法 建议学时课堂讲授8 10学时 上机15 20学时 另外学生在课后应有预习 复习及练习设计各种不同的数据库的时间 2020 3 15 第三章数据库 表及其操作 2 3 1设计数据库3 2数据库的创建和操作3 3数据表的创建3 4数据表的基本操作3 5索引3 6数据完整性 2020 3 15 第三章数据库 表及其操作 3 VisualFoxPro是一个关系数据库管理系统 关系型数据库管理系统以表的形式管理所有的数据 数据库 指存储在外存上的有结构的数据集合 在VisualFoxPro中 数据库用于存储数据库表的属性 组织 关联表和视图 创建存储过程 在VisualFoxPro中 表分为数据库表和自由表两类 属于某一数据库的表称为数据库表 不属于任何数据库而独立存在的表称为自由表 2020 3 15 第三章数据库 表及其操作 4 设计数据库一般包括以下几个基本过程 1 分析数据需求 确定需要数据库保存那些信息 2 确定需要的表 按不同的主题将信息分配到不同的数据表中 3 确定所需字段 确定每个表中要保存哪些信息 4 确定表间联系 分析数据库中的表间联系 5 完善设计 对设计进一步分析 查找错误 对设计方案进一步完善 在数据库应用系统中 数据库的设计是一项非常重要的工作 数据库性能的优劣将直接影响到最终应用系统的性能 经过长期摸索 人们提出了数据库设计方法以及各种设计准则和规程 这就是规范化设计方案 3 1设计数据库 2020 3 15 第三章数据库 表及其操作 5 设计数据库 3 1 1分析数据需求 数据库设计的第一步是明确数据库的使用目的 需要从数据库中得到哪些信息 数据库是作什么用途 明确目的之后 才可以确定需要保存哪些主题的信息 表 以及每个主题需要保存哪些信息 字段 这些主题之间的关系如何 3 1 2确定数据库表 在关系型数据库中 每一个关系都是一个二维表 在一个数据库中可以有若干个关联的二维表 关系 3 1 3确定所需字段 字段 是表中最小的数据单位 决定了表中要保存的信息类型 为了保证数据的不多余性且不遗漏信息 在确定表中所需字段时应考虑字段的唯一性 无关性及主关键字和外部关键字等要求 2020 3 15 第三章数据库 表及其操作 6 3 1 4确定表间联系 VisualFoxPro将表间的联系归结为3种 一对一 一对多和多对多 3 1 4 1一对一联系 如果A表的一个记录在B表中只能对应一个记录 而B表中的一个记录在A表中也只能有一个记录与之对应 则两表之间就是一对一的联系 例如 一个单位人事部的职工表和财务部的工资表就是一对一的联系 2020 3 15 第三章数据库 表及其操作 7 3 1 4确定表间联系 3 1 4 2一对多联系 如果对于A表中的任意一个记录 在B表中可以有多个记录与之对应 但反过来B表中的任意记录 在A表中只有一个记录与之对应 则两表之间就是一对多的联系 在一对多联系中 位于 一 端的表称为父表 和父表关联的那个表为子表 父表也称为主表或主控表 子表又称为相关表或受控表 在一对一或一对多联系中 位于 一 端的表中用于建立联系的字段必须是主关键字字段 而位于 多 端的表中用于建立联系的字段是外部关键字字段 2020 3 15 第三章数据库 表及其操作 8 3 1 4确定表间联系 3 1 4 2一对多联系 例如学校里的班级和学生 一个班级有多个学生 而一个学生只能在一个班级里 所以班级和学生之间就是一对多的联系 班级表和学生表通过编号建立起了一对多联系 一对多关系示意图 2020 3 15 第三章数据库 表及其操作 9 3 1 4确定表间联系 3 1 4 3多对多联系 如果A表的一个记录在B表中可以对应多个记录 同样B表中的一个记录在A表中也可以对应多个记录 则两表之间就是多对多的联系 在设计数据库时 应将多对多联系分解成两个一对多联系 其方法就是在具有多对多联系的两个表之间创建第三个表 用于分解多对多联系的表称为 纽带表 因为它在两表之间起着纽带的作用 可以把两个表的主关键字都放在这个纽带表中 纽带表可以只包含它所链接的两个表的主关键字 也可以包含其它信息 在纽带表中 两个字段连在一起就能使每个记录具有唯一值 2020 3 15 第三章数据库 表及其操作 10 3 1 4确定表间联系 3 1 4 3多对多联系 例如学校里的课程和学生 一门课程有多个学生学习 而一个学生也要学习多门课程 所以课程和学生之间就是多对多的联系 因为学生学习的每门课程都有相应的成绩 可以通过成绩将课程和学生联系起来 成绩 表就是 学生 表和 课程 表之间的纽带表 多对多关系的分解 2020 3 15 第三章数据库 表及其操作 11 3 1 4确定表间联系 3 1 4 3多对多联系 多对多关系分解成两个一对多关系的分解示意图 2020 3 15 第三章数据库 表及其操作 12 3 1 5完善数据库设计 在试验最初的数据库时 很可能会发现需要改进的地方 是否遗忘了字段 是否有需要的信息没有包括进去 如果是 是否属于已创建的表 如果不在创建的表中 需要另外创建一个表 是否为每个表选择了合适的主关键字 在使用主关键字查找记录时 它是否很容易记忆和输入 要确保主关键字值不会出现重复 是否在某个表中重复输入了同样的信息 如果是 需要考虑将此表分成两个一对多联系的表 是否有字段很多 记录却很少的表 而且许多记录中的字段值为空 如果是 要考虑重新设计该表 使它的字段减少 记录增多 2020 3 15 第三章数据库 表及其操作 13 3 1 6示例数据库 世界杯 数据需求 存放各届足球世界杯举办的时间 地点 参赛队以及冠军 最佳球员 最佳射手归属等方面的信息 可以查出每届的参赛队成绩 每届的冠军 最佳球员 最佳射手的信息 以及每个参赛队参赛次数 参赛成绩等信息 设计要求 数据表信息如下 2020 3 15 第三章数据库 表及其操作 14 字段及主关键字 届次 日期 举办国 队数 冠军 点球决胜 举办背景 照片 参赛队 地区 备注 届次 参赛队 成绩 届次 姓名 国籍 基本信息 参赛队 参赛成绩 最佳球员 最佳射手 届次 姓名 国籍 进球数 3 1 6示例数据库 世界杯 2020 3 15 第三章数据库 表及其操作 15 世界杯数据库中各表间关系 表间关系 3 1 6示例数据库 世界杯 2020 3 15 第三章数据库 表及其操作 16 创建数据库的常用方法有以下3种 1 在 项目管理器 中创建数据库 2 使用 文件 菜单的 新建 命令创建数据库 3 在 命令 窗口中输入创建数据库的命令 VisualFoxPro数据库文件的扩展名是 DBC 建立 DBC文件的同时 自动建立 DCT 备注 和 DCX 索引 文件 3 2数据库的建立和操作 3 2 1创建数据库 2020 3 15 第三章数据库 表及其操作 17 例如 在项目管理器中创建数据库 在前面已创建的 世界杯 项目中创建数据库的操作步骤如下 在 世界杯 项目中选择 数据 选项 选择 数据库 单击 新建 按钮 打开 新建数据库 对话框 在 新建数据库 对话框中单击 新建数据库 按钮 打开 创建 对话框 在 创建 对话框的 数据库名 文本框中输入 世界杯 作为数据库文件的名称 选择保存数据库文件的文件夹 D 世界杯 保存类型为默认的 数据库 DBC 单击 保存 按钮 打开 数据库设计器 对话框 3 2数据库的建立和操作 3 2 1创建数据库 2020 3 15 第三章数据库 表及其操作 18 3 2 2操作数据库 3 2 2 1在项目中添加 移出数据库 3 2 2 2打开 关闭数据库 3 2 2 3打开数据库设计器 数据库设计器 窗口是一个带有工具栏的设计窗口 数据库设计器 工具栏一般随 数据库设计器 窗口同时打开 如果 数据库设计器 工具栏没有打开 可选 显示 菜单下的 工具栏 命令 在 工具栏 对话框中选中 数据库设计器 工具栏将其打开 数据库设计器 和 数据库设计器 工具栏 3 2 2 4给数据库添加注释 3 2 2 5使用多个数据库 3 2 2 6数据库错误 2020 3 15 第三章数据库 表及其操作 19 3 2 2 7操作数据库的常用命令 3 2 2操作数据库 建立数据库 CREATEDATABASE打开数据库 OPENDATABASE打开数据库设计器 MODIFYDATABASE 设置当前数据库 SETDATABASETO 显示当前数据库结构 DISPLAYDATABASE 关闭数据库 CLOSEDATABASE ALL 删除数据库 DELETEDATABASE 2020 3 15 第三章数据库 表及其操作 20 3 3数据表的创建 前面建立的 世界杯 数据库还是一个空数据库 在使用 世界杯 数据库之前 需要先将前面为这个数据库设计的的5个表 基本信息 参赛队 参赛成绩 最佳射手 和 最佳球员 表建立起来 在VisualFoxPro中 创建一个新表分为两个步骤 步骤一 创建表的结构 即说明表包含哪些字段 每个字段的长度及数据类型等 步骤二 输入记录 即向表中输入数据 2020 3 15 第三章数据库 表及其操作 21 3 3数据表的创建 3 3 1建立表结构 3 3 1 1表的特征 表可存储若干条记录 每条记录可以有若干个字段 而且每条记录的字段结构相同 也就是具有相同的字段名 字段类型和字段顺序 字段可以是不同的类型 以便存储不同类型的数据 记录中每个字段的顺序与存储的数据无关 每条记录在表中的顺序与存储的数据无关 2020 3 15 第三章数据库 表及其操作 22 3 3数据表的创建 3 3 1建立表结构 3 3 1 2设计字段属性 一个表中的所有字段组成了表的结构 字段属性决定了表的结构 字段属性包括 字段名称 类型 宽度 小数位数及是否允许为空 字段类型说明 2020 3 15 第三章数据库 表及其操作 23 3 3数据表的创建 3 3 1建立表结构 3 3 1 3创建数据库表 可以使用以下3种方法启动数据库表的创建 方法一 在 项目管理器 中选择 数据库 的 表 选项 单击 新建 按钮 即可创建属于该数据库的数据库表 方法二 在 数据库设计器 中 从 数据库 菜单中选择 新建表 命令或单击 数据库设计器 工具栏上的 新建表 按钮 方法三 选择 文件 菜单中的 打开 命令打开数据库 然后再选择 文件 菜单中的 新建 命令来创建表 此时创建的新表自动成为当前数据库中的数据库表 2020 3 15 第三章数据库 表及其操作 24 3 3数据表的创建 3 3 1建立表结构 3 3 1 3创建数据库表 采用前述3种方法 都将进入创建方法选择框 可以选择表向导或表设计器来创建数据库表 下面将分别采用表设计器和表向导来创建世界杯数据库中的4个数据库表 而 基本信息 表 可以从自由表转为数据库表 为方便管理 在 D 世界杯 下创建一个名为 表 的文件夹 用于存放所有创建的表 保存类型为 表 DBF DBF 将创建的表保存为 DBF文件 2020 3 15 第三章数据库 表及其操作 25 3 3数据表的创建 3 3 1建立表结构 3 3 1 3创建数据库表 世界杯 数据库中的5个表 表结构创建完成后 将得到右图所示的项目管理器窗口 显示世界杯数据库中的5个数据表 2020 3 15 第三章数据库 表及其操作 26 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 2浏览窗口的使用 1 浏览记录滚动条 Tab键 Shift Tab键 PageUp键 PageDown键当前记录 记录指针查看备注型或通用型字段 双击该字段 2 改变列宽和行高3 调整字段顺序在浏览窗口改变列宽和列的排列顺序不会影响字段的实际结构 4 打开或关闭网格线选择 显示 菜单中的 网格线 命令可显示或隐藏浏览窗口中的网格线 2020 3 15 第三章数据库 表及其操作 27 3 3数据表的创建 3 3 2记录的输入和删除 5 切换显示方式 两种显示方式 浏览方式和编辑方式 2020 3 15 第三章数据库 表及其操作 28 3 3数据表的创建 3 3 2记录的输入和删除 6 拆分浏览窗口将鼠标指向窗口左下角的拆分条 鼠标指针变为左右箭头对接的形状 将拆分条拖到所需的位置 调整拆分窗口的大小 只需向左或向右拖动拆分条即可 默认情况下 两个窗口是链接的 取消 表 菜单中 链接分区 的选中状态 可以中断两个窗口之间的联系 使它们的功能相对独立 拆分 浏览 窗口可以查看同一表中的两个不同区域或者分别用浏览和编辑方式查看同一记录 2020 3 15 第三章数据库 表及其操作 29 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 3追加记录 利用其他表中已有的相同内容 可以快速给新表追加记录 1 追加源表中的所有记录 将需要追加记录的表在浏览窗口中打开 选择 表 菜单下 追加记录 命令 2 有选择的追加记录和字段在 追加来源 对话框中单击 选项 按钮 打开 追加来源选项 对话框 如只想追加第8届世界杯的记录 表达式为 届次 08 因届次为查找方便定义成字符型 字段变量的值应加上英文双引号 2020 3 15 第三章数据库 表及其操作 30 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 1在浏览窗口中输入记录 在 项目管理器 中选择表 单击 浏览 按钮即可打开 浏览 窗口 打开 浏览 窗口后 选择 显示 菜单下的 追加方式 命令 即可在 浏览 窗口中输入数据 在输入记录的字段值时 只能输入数据类型有效的值 备注型字段和通用型字段的内容不能直接在 浏览 窗口中输入 双击该字段 打开专门的备注型字段或通用型字段输入窗口 即可在其中输入备注型字段或通用型字段的内容 输入完所有的记录后 单击浏览窗口右上角的关闭按钮 2020 3 15 第三章数据库 表及其操作 31 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 4修改记录内容 在 浏览 窗口中修改表中字段的内容 只需找到记录中要修改的字段所在的单元格 输入正确的内容即可 编辑 备注型 字段 可在 浏览 窗口中双击该字段 这时会打开一个 编辑 窗口 其中显示了 备注型 字段的内容 通过双击 浏览 窗口中的 通用型 字段 可以编辑这个对象 2020 3 15 第三章数据库 表及其操作 32 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 5删除记录 在VisualFoxPro中删除记录的过程 分为两大步骤 第一步 对要删除的记录作删除标记 又称为逻辑删除 第二步 彻底删除 又称为物理删除 在浏览窗口中 记录前的小方块就是记录的删除标记条 记录删除标记条变成了黑色 表示记录已被作了删除标记 此时系统就不能对记录进行任何操作 但记录仍然保存在表中 对已作了删除标记的记录 用户既可以将其彻底删除 也可以将其恢复 2020 3 15 第三章数据库 表及其操作 33 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 5删除记录 条件删除 使用 删除 对话框进行条件删除 打开 浏览 窗口 选择 表 下 删除记录 出现 删除 对话框 在 作用范围 列表框中选择操作范围 All 全部记录 Next 从当前记录开始的若干个记录 Record 特指某个记录 Rest 从当前记录开始直到最后一个记录 删除 对话框 1 作删除标记逐一删除 在浏览窗口中 用鼠标单击记录前的删除标记条 使其变黑 就给该记录加上了删除标记 选择 For 或 While 构造逻辑表达式来设置删除记录需要满足的条件 单击 删除 符合条件的记录打上删除标记 2020 3 15 第三章数据库 表及其操作 34 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 5删除记录 2 彻底删除若要将已作了删除标记的记录真正地从表中删除 从 表 菜单中选择 彻底删除 命令 在弹出的 移去已删除记录 对话框中单击 是 按钮也可以在 命令 窗口使用PACK命令 3 删除全部记录如果想删除表中的所有记录 只留下表的结构 可使用ZAP命令 在 命令 窗口中输入 ZAP 命令将彻底删除表中的所有记录 注意 此命令破坏性极大 应慎用 2020 3 15 第三章数据库 表及其操作 35 3 3数据表的创建 3 3 2记录的输入和删除 3 3 2 6还原记录 标记记录并不等于删除记录 可以撤销删除标记 恢复成原来的状态 逐一恢复 用鼠标单击记录前的删除标记 使其恢复为白色 取消删除标记 条件恢复 表 菜单中的 恢复记录 命令 操作和 删除记录 命令相似 注意 执行 彻底删除 命令后 带有删除标记的记录被从磁盘上彻底删除 被彻底删除的记录不能再用 恢复记录 命令恢复 2020 3 15 第三章数据库 表及其操作 36 3 4数据表的基本操作 3 4 1在数据库设计器中操作表 3 4 1 1打开 关闭表 1 打开表方法一 在 项目管理器 窗口中选定要打开的表 单击 浏览 按钮 则会打开该表并在 浏览 窗口中显示出来 方法二 从 文件 菜单中选择 打开 命令或直接单击工具栏上的 打开 按钮 然后在 打开 对话框中选择要打开的表将其打开 方法三 在 命令 窗口输入 USE 命令 例如 要打开 基本信息 表 在命令窗口中输入以下命令 USE基本信息2 关闭表在 命令 窗口输入不带参数的 USE 命令即可 2020 3 15 第三章数据库 表及其操作 37 3 4数据表的基本操作 3 4 1在数据库设计器中操作表 3 4 1 2在 数据库设计器 中查看表 1 展开或折叠表2 重排数据库的表3 在数据库中查找表或视图4 选择显示的对象 世界杯数据库中的表 2020 3 15 第三章数据库 表及其操作 38 3 4数据表的基本操作 3 4 1在数据库设计器中操作表 3 4 1 3数据库表和自由表 VisualFoxPro中的数据表可以有两种存在状态 自由表 即没有和任何数据库关联的 DBF文件 和数据库表 即与数据库关联的 DBF文件 数据库表和自由表可以互相转换 当用户将数据库表从一个数据库中移出 数据库表便成了自由表 反之 如将自由表加入到某一个数据库中 自由表便成了数据库表 数据库表只能属于一个数据库 如想将一个数据库中的表移到其他数据库 必须先将该表从数据库中移出变为自由表 再将其加入到另一数据库中 数据库表和自由表相比 具有一些自由表所没有的属性 如主关键字 触发器 默认值 表间联系等 将表组合到数据库内 可以使它们协同工作 2020 3 15 第三章数据库 表及其操作 39 3 4数据表的基本操作 3 4 1在数据库设计器中操作表 3 4 1 4在数据库设计器中添加 移出或删除表 1 添加数据库表2 移出或删除数据库表 添加 移去或删除数据库表的操作也可以直接在项目管理器中进行 1 在 项目管理器 窗口中添加数据库表2 在 项目管理器 窗口中移出或删除数据库表 3 4 1 5在 项目管理器 中添加 移出或删除表 2020 3 15 第三章数据库 表及其操作 40 3 4数据表的基本操作 3 4 2设置数据库表属性 3 4 2 1查看或修改表结构 在 项目管理器 窗口的 数据 选项卡中选择需要查看或修改结构的表 单击 修改 按钮 打开 表设计器 对话框 在 表设计器 中可以查看或改变已有表的结构 如增加或删除字段 改变字段的数据类型及宽度等 注意 在将字段宽度值改小时 超出字段宽度的字符会自动丢失 如果字段是数值型则会溢出 这时在表的浏览窗口中看到的是几个 号 并且丢失的字符或数字不能通过将字段长度改为原有长度而得到恢复 改变字段的数据类型也可能导致数据的丢失 2020 3 15 第三章数据库 表及其操作 41 3 4数据表的基本操作 3 4 2设置数据库表属性 3 4 2 2设置数据库表的属性 数据库表的表设计器比自由表的表设计器多了一些选项 在数据库表的表设计器的 字段 选项卡的下部 有 显示 字段有效性 字段注释 和 匹配字段类型到类 4个输入区域 数据库表具有自由表所没有的一些属于数据字典的属性 例如长字段名和长表名 掩码 默认值 字段级和记录级规则及触发器等 属性被作为数据库的一部分保存起来 如果表被从数据库中移出 则原来拥有的这些属性都将失去 2020 3 15 第三章数据库 表及其操作 42 3 4数据表的基本操作 3 4 2设置数据库表属性 3 4 2 2设置数据库表的属性 1 设置字段的显示属性 格式规定字段显示时的样式 格式决定了字段的显示风格 例如 将系统日期格式设置为年 月 日 年为四位 在表设计器中设置 基本信息 表的 日期 格式为D 则在浏览窗口中显示日期为yyyy mm dd格式 输入掩码指定字段输入值的格式 使用输入掩码可屏蔽非法输入 减少人为的数据输入错误 提高输入工作效率 保证输入的字段数据格式统一 有效 标题指定显示代表字段的标题 最多可包含128个字符 字段的注释在 项目管理器 中选择了这个字段时 在 项目管理器 的底部显示该字段的注释文本 2020 3 15 第三章数据库 表及其操作 43 3 4数据表的基本操作 3 4 2设置数据库表属性 3 4 2 2设置数据库表的属性 2 输入字段的默认值例如 在输入 参赛队 表中数据时 如果当前正在输入非洲的球队 可将地区默认值设置为 非洲 3 表名和表注释 表名指定正在创建或修改的表的名称 但并不是文件名 表注释在表注释区可以输入对表的注释 与字段注释一样 在选定一个表时 在 项目管理器 窗口底部显示表的注释文本 2020 3 15 第三章数据库 表及其操作 44 3 4 3数据过滤和字段筛选 3 4 3 1定位记录 在打开的表中只有一条记录是 当前记录 在浏览窗口 当前记录前有一个黑三角标志 1 用 查找 命令查看数据2 用 转到记录 命令查看数据 转到记录 子菜单 定位记录 对话框 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 45 3 4 3数据过滤和字段筛选 3 4 3 2数据过滤与字段筛选 若有多个记录都符合定位的条件 使用 定位 命令只能定位表中的第一个符合条件的记录 若想同时查出所有记录 则需使用数据过滤功能 1 记录过滤 例如 想在 浏览 窗口中只显示第17届和18届的世界杯的基本信息 工作区属性 对话框 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 46 3 4 3 2数据过滤与字段筛选 2 字段筛选 例如 在 浏览 窗口中显示 基本信息 表中的 届次 举办国 和 冠军 字段 字段选择器 对话框 3 4数据表的基本操作 3 4 3数据过滤和字段筛选 2020 3 15 第三章数据库 表及其操作 47 3 4 4工作区与多表操作 3 4 4 1工作区和工作期的概念 1 工作区工作区 是一个编号的区域 用来标识一个打开的表 最多可以有32767个工作区 在每个工作区中只能同时打开一个表 在工作区中打开表时 原来在该工作区中打开的表自动关闭 选择工作区使用SELECT命令 SELECT工作区标识可以是0 32767的编号 也可以是表的别名 如果执SELECT命令中的 工作区标识 为0时 表示选择了空闲的最小号工作区 如果打开了多个工作区 则当前工作区是指最后执行SELECT命令所选择的工作区 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 48 3 4 4 1工作区和工作期的概念 2 数据工作期 数据工作期 是当前动态工作环境的一种表示 每个数据工作期包含有自己的一组工作区 这些工作区含有打开的表 表索引和联系 3 在 数据工作期 窗口查看工作区从 窗口 菜单选择 数据工作期 命令 或在 命令 窗口中输入SET命令 打开 数据工作期 窗口 并显示在当前数据工作期中的工作区中打开的表的别名 数据工作期 窗口 3 4数据表的基本操作 3 4 4工作区与多表操作 2020 3 15 第三章数据库 表及其操作 49 3 4 4 2在工作区中打开 关闭表 1 在工作区中打开表在 数据工作期 窗口中单击 打开 按钮 在 打开 对话框中选择要打开的表及打开的方式 是否以 独占 的方式打开 2 在工作区中关闭表在 数据工作期 窗口中选定要关闭的表别名 然后单击 关闭 按钮 或使用SELECT命令选择工作区后再用USE命令打开或关闭当前工作区中的表 当在同一工作区中打开其他表时 自动关闭原工作区中已打开的表 3 4数据表的基本操作 3 4 4工作区与多表操作 2020 3 15 第三章数据库 表及其操作 50 3 4 4 3使用表别名 1 创建用户自定义别名例如 可以使用以下命令打开表文件 基本信息 dbf 指定别名 JBXX SELECT0USE基本信息ALIASJBXX2 使用VisualFoxPro指定的别名在前10个工作区中指定的默认别名是工作区字母A J 在工作区11 32767中指定的别名是W11 W32767 别名是指定给一个表或表达式的另一个名称 通常用来缩短在代码中引用的名称 表的别名是用来引用工作区中打开的表的 当打开一个表时 自动将表名作为默认的别名 也可以另外指定一个别名 3 4数据表的基本操作 3 4 4工作区与多表操作 2020 3 15 第三章数据库 表及其操作 51 3 4 4 3使用表别名 3 使用别名选择工作区如果执行了下面两条命令 SELECT1USE基本信息ALIASJBXX 则下面三条命令是等价的 SELECT1SELECTASELECTJBXX 4 引用在其他工作区中打开的表在别名后加上点号分隔符 或 操作符 然后再加字段名 可以引用其他工作区中的字段 例如 访问其他工作区中打开的 基本信息 表的 冠军 字段 基本信息 冠军如果要引用的表是用别名打开的 则也可以使用别名 例如 JBXX 举办国 3 4数据表的基本操作 3 4 4工作区与多表操作 2020 3 15 第三章数据库 表及其操作 52 3 4 5操作表的常用命令 3 4 5 1建立与修改 打开与关闭表的命令 1 建立数据表 CREATE 2 打开数据表 USE IN 3 关闭数据表 USE IN 4 关闭所有工作区中的数据表 CLOSETABLESALL 5 关闭所有打开的文件 CLOSEALL 6 打开表设计器 显示 修改表结构 MODIFYSTRUCTURE 7 打开 浏览 窗口 显示 修改表记录 BROWSE FIELDS 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 53 3 4 5操作表的常用命令 3 4 5 2显示表结构与表记录的命令 1 显示表结构DISPLAY LISTSTRUCTURE TOPRINTER PROMPT TOFILE 2 显示表记录DISPLAY LIST FIELDS FOR WHILE TOPRINTER PROMPT TOFILE 当 范围 省略时 DISPLAY命令默认为当前记录 而LIST默认为全部记录 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 54 3 4 5操作表的常用命令 3 4 5 3更新 添加与删除表记录命令 1 交互式修改记录EDIT CHANGE FOR WHILE 2 直接修改记录REPLACEWITH 字段名2WITH表达式2 范围 FOR WHILE 3 在表的末尾追加 空白 记录 APPEND BLANK 4 利用已有文件追加记录APPENDFROM FIELDS FOR SDF 5 在当前记录之后 之前 插入 空白 记录 INSERT BEFORE BLANK 6 删除记录 删除标记 DELETE 范围 FOR WHILE 7 恢复记录 去删除标记 RECALL 范围 FOR WHILE 8 从磁盘上删除表中有删除标记的记录 PACK 9 从磁盘上删除表中所有的记录 ZAP注意 如果在表上建立了主索引或候选索引 则不能用以上的APPEND或INSERT命令插入记录 必须使用SQL的INSERT命令 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 55 3 4 5操作表的常用命令 3 4 5 4查找与定位 过滤与筛选及移动记录指针的命令 1 查找 定位 记录LOCATEFOR 范围 WHILE 2 继续查找 满足LOCATE条件的 下一记录CONTINUE 3 过滤记录SETFILTERTO 4 筛选字段SETFIELDSTO ALL 5 定位记录指针GO GOTO BOTTOM TOP 6 移动记录指针SKIP 数值表达式 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 56 3 4 5操作表的常用命令 3 4 5 5其他命令 1 复制表文件的结构 COPYSTRUCTURETO FIELDS 2 复制表文件 COPYTO 范围 FOR WHILE FIELDS 3 将表文件复制成文本文件 COPYTOTYPEDELIMITED 4 文件复制命令 COPYFILETO 5 将表的结构复制成记录内容 COPYSTRUCTUREEXTENDEDTO FIELDS 6 选择当前工作区 SELECT 7 物理排序 SORTTOON A D C A D C ASCENDING DESCENDING FIELDS FOR 8 显示文件内容 TYPE TOPRINTER PROMPT TOFILE 9 设置是否以独占的方式打开数据表 SETEXCLUSIVEON OFF 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 57 3 4 5操作表的常用命令 3 4 5 6使用命令对表中记录排序 所谓 排序 就是指定记录排列的先后顺序 建表时 输入到新表的记录按照输入顺序存储 在浏览表时 记录按输入的顺序出现 SORTTOON A D C A D C ASCENDING DESCENDING FIELDS FOR A D A按升序排列 D按降序排列 默认为按升序排列 C 排序时不区分大小写字母 默认区分大小写 ASCENDING DESCENDING 除了用 A D说明升序或降序的字段外 其他参与排序的字段的排序方式 默认为按升序排列 例如 要将 基本信息 表生成一个按届次降序排序的新表 SORTON届次 DTOJBXX1排序后并不改变原表的顺序 但可以生成一个排过序的新表 3 4数据表的基本操作 2020 3 15 第三章数据库 表及其操作 58 VisualFoxPro表中的索引是一个记录号的列表 它指向待处理的记录 并确定了记录的处理顺序 表索引存储了一组记录指针 索引并不改变表中所存储数据的顺序 只改变VisualFoxPro读取每条记录的顺序 用户可以用索引快速显示 查询或者打印记录 还可以选择记录 控制重复字段的输入并支持表间的联系操作 索引对于数据库内表之间创建关联至关重要 在数据库中要建立各表之间的联系 就要正确合理地建立所有表中的索引 3 5索引 3 5 1索引的概念 2020 3 15 第三章数据库 表及其操作 59 3 5 1 1索引文件的类型 1 结构复合索引文件扩展名为 CDX 结构复合索引文件具有与表相同的文件名 当打开与它同名的表时也自动打开该结构复合索引文件 关闭的同时自动关闭它 当在表中进行记录的添加 修改和删除时 系统会自动对结构复合索引文件中的全部索引记录进行维护 2 单独索引文件只包含单个索引项 扩展名为 IDX 其主文件名称不能和相关表同名 而且该文件不会随着表的打开而自动打开 3 非结构复合索引文件包含多个索引项 扩展名为 CDX 必须用命令打开 只有在该文件打开时 系统才能维护索引标记 可以看作是多个 IDX文件的组合 结构复合索引文件是在数据库中最普遍也最重要的一种索引文件 以下讨论的是 CDX结构复合索引文件 3 5索引 3 5 1索引的概念 2020 3 15 第三章数据库 表及其操作 60 3 5 1 2索引的类型 3 5索引 3 5 1索引的概念 四种索引类型 主索引 候选索引 普通索引和唯一索引 1 主索引不允许在索引关键字中出现重复值的索引 对于每一个表只能建立一个主索引 自由表没有主索引 2 候选索引在索引关键字中不允许出现重复值的索引 作为主索引的候选者出现 一个表可以创建多个候选索引 3 唯一索引唯一索引无法防止重复值记录的建立 但在唯一索引中 只在索引文件中保存第一次出现的索引值 4 普通索引除上述三种索引之外的索引就是普通索引 索引关键字段和表达式允许重复值出现 可用普通索引进行表中记录的排序或搜索 2020 3 15 第三章数据库 表及其操作 61 3 5 2 1使用 表设计器 创建或修改索引 3 5索引 3 5 2创建索引 1 创建单字段普通索引2 创建复合字段索引 表设计器 对话框的 索引 选项卡 2020 3 15 第三章数据库 表及其操作 62 3 5 2 1使用表设计器创建或修改索引 3 5索引 3 5 2创建索引 3 筛选记录通过在 表设计器 对话框的 索引 选项卡中的 筛选 框中输入一个筛选表达式 可以控制哪些记录可包含在索引中 4 修改 删除或插入索引在 表设计器 对话框的 索引 选项卡中可以对表中的索引进行修改 修改 鼠标单击欲修改处 然后加以修改 删除 选择欲删除的索引 单击 删除 按钮 插入 选择欲插入的索引所在的位置 单击 插入 按钮 然后输入或选择索引名 类型和索引表达式 在 表设计器 对话框中设置好索引后 只要关闭 表设计器 对话框 系统便会在表文件的保存目录中自动创建一个扩展名为 CDX的结构复合索引文件 2020 3 15 第三章数据库 表及其操作 63 3 5 2 1使用 表设计器 对话框创建或修改索引 3 5索引 3 5 2创建索引 世界杯 数据库表 在 表设计器 对话框中设置各表的索引 基本信息 表 届次 为主关键字 设置为主索引 日期 设置为候选索引 因为每届的举办时间没有重复值 举办国 设置为普通索引以方便以举办国为线索进行查询 参赛队 表 主索引为 参赛队 地区 设置为普通索引 参赛成绩 表 届次 和 参赛队 都是外部关键字 只能设置为普通索引 将 届次 参赛队 设置为 参赛成绩 表的主索引 最佳球员 表 届次 是主索引 最佳射手 表 届次 是普通索引 2020 3 15 第三章数据库 表及其操作 64 3 5 2 1使用 表设计器 创建或修改索引 3 5索引 3 5 2创建索引 世界杯数据库中各表的索引和表间的 永久联系 有钥匙标志的是主索引 2020 3 15 第三章数据库 表及其操作 65 3 5 2 2使用命令创建索引 3 5索引 3 5 2创建索引 创建索引的命令为INDEX INDEX命令的格式如下 INDEXONTO TAG OF FOR COMPACT ASCENDING DESCENDING UNIQUE CANDIDATE ADDITIVE 2020 3 15 第三章数据库 表及其操作 66 3 5 3 1使用索引建立永久联系 3 5索引 3 5 3使用索引建立表间联系 创建方法 在 数据库设计器 窗口中 选择主表中想要关联的索引名 然后把它拖到相关表匹配的索引名上即可 联系特点 在数据库的两个表中要建立固定联系 要求两个表的索引中至少有一个是主索引 必须先选择主表的主索引 而子表中的索引类型决定了要创建的永久联系的类型 如果子表中的索引类型为主索引或候选索引 则建立起的就是一对一联系 如果子表中的索引类型为普通索引或唯一索引 则建立起的就是一对多联系 2020 3 15 第三章数据库 表及其操作 67 3 5 3 2使用索引建立临时联系 3 5索引 3 5 3使用索引建立表间联系 永久联系是同一数据库中数据库表间的关联 这种联系存储在数据库文件中 可以作为查询 视图 表单以及报表中所使用的表间的默认关联 有时也需要能控制不同工作区中记录指针联动的临时联系 要建立临时联系 在 数据工作期 窗口中通过单击 关系 按钮建立 也可以使用命令 SETRELATIONTOINTO 工作区号 表别名 用来指定和要和当前工作区中的表建立关联的表 索引关键字 指定关联所用的索引关键字 2020 3 15 第三章数据库 表及其操作 68 3 5索引 3 5 4使用索引排序 在 浏览 窗口中从 表 菜单中选择 属性 命令 打开 工作区属性 窗口 在 索引顺序 框中选择要用的索引名 根据索引值的大小顺序显示记录 例如 对于 基本信息表 已按日期降序建普通索引 当选择 索引顺序 为日期时 将按日期降序排序记录 使用索引排序不改变表中记录的存储顺序 物理顺序 只改变了读取每条记录的顺序 称为逻辑排序 SORT命令排序称为物理排序 2020 3 15 第三章数据库 表及其操作 69 3 5索引 3 5 5索引的常用命令 1 打开索引文件SETINDEXTO 2 设置当前索引SETORDERTO TAG ASCENDING DESCENDING 3 使用索引定位记录SEEK ORDER TAG ASCENDING DESCENDING 4 删除索引DELETETAG ALL 2020 3 15 第三章数据库 表及其操作 70 3 6数据完整性 3 6 1实体完整性与主关键字 数据完整性是指保证数据库中的数据正确的特性 数据完整性一般包括实体完整性 域完整性和参照完整性等 实体完整性是保证表中记录唯一的特性 即在表中不允许有重复的记录 在VisualFoxPro中利用主关键字或候选关键字来保证实体的唯一性 VisualFoxPro中将主关键字作为主索引 候选关键字作为候选索引 2020 3 15 第三章数据库 表及其操作 71 3 6数据完整性 3 6 2域完整性与有效性规则 数据库的有效性规则即是对字段或记录的约束 用来检验数据库中输入的数据是否合法有效 3 6 2 1有效性规则的概念 有效性规则分为 字段级有效性规则和记录级有效性规则 字段级规则 对一个字段的约束称之为字段级规则 字段级有效性规则检查单个字段中信息输入的数据是否有效 记录级规则 对一个记录的约束称之为记录级规则 当插入或修改记录时激活 常用来检验数据输入的正确性 3 6 2 2有效性规则的不同级别 字段级和记录级规则都是把所输入的值与所定义的规则表达式进行比较 如果输入的值不满足规则要求 则拒绝该值 2020 3 15 第三章数据库 表及其操作 72 3 6数据完整性 3 6 2域完整性与有效性规则 例如 对于 基本信息 表 其中 队数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产10.3万套高超声速风洞装置项目可行性研究报告
- 电信代理行纪合同
- 跨行业合同管理模板集
- 针对老年人火灾安全的照护方案合同
- 窗帘分销商合作合同
- 年产55万套电池包导热硅脂项目可行性研究报告
- 意见反馈合同模板
- 年产22万吨粉煤灰分选装备项目可行性研究报告
- 2025年烟草专卖局招聘面试流程及模拟题演练指南
- 2025年经济师考试全真模拟试题及答案详解宏观经济篇等
- 2025年区域卫生规划与医疗卫生资源优化配置的研究报告
- 养生馆转让协议书
- 南充市“十四五”现代物流产业发展规划
- 外观检验考试试题及答案
- 义务教育《艺术课程标准》2022年修订版(原版)
- 江苏省无锡市江阴市六校2024-2025学年高一下学期4月期中联考试题 物理 含答案
- 医保人员管理制度
- 《杜甫生平》课件
- 电话卡租借合同协议
- 学校食堂保洁员的安全职责
- 2025年中医经典知识竞赛考试题库及答案
评论
0/150
提交评论