1 / 79

第 3 章 数据库和表

第 3 章 数据库和表. 面对海量数据,如何高效地对其进行收集、组织、处理,并加以充分利用,显得尤为重要。在 VFP 6.0 中,数据是以数据库和表的形式存放和管理的,本章将具体介绍数据库和表的有关概念及相应的操作方法. 本章主要内容. 数据库与表的概念 表的建立 表的基本操作 创建数据库 表的高级操作. 3.1 数据库与表的概念. 表又称为数据表或表文件,是 VFP 6.0 系统中最基本的文件,其作用是存储数据。 在关系数据库中,描述数据及其相互联系的基本模型是关系,一个关系就是一个二维表。表 3-1 是一个描述某学校教师基本情况的二维表。.

Download Presentation

第 3 章 数据库和表

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 数据库和表 面对海量数据,如何高效地对其进行收集、组织、处理,并加以充分利用,显得尤为重要。在VFP 6.0中,数据是以数据库和表的形式存放和管理的,本章将具体介绍数据库和表的有关概念及相应的操作方法

  2. 本章主要内容 数据库与表的概念 表的建立 表的基本操作 创建数据库 表的高级操作

  3. 3.1 数据库与表的概念 • 表又称为数据表或表文件,是VFP 6.0系统中最基本的文件,其作用是存储数据。 • 在关系数据库中,描述数据及其相互联系的基本模型是关系,一个关系就是一个二维表。表3-1是一个描述某学校教师基本情况的二维表。

  4. 表3-1 教师基本情况表

  5. 表与数据库的关系 • 数据库可以视为一个表的容器,它并不直接存放数据,而是存放表文件。数据库文件的扩展名为.dbc。 • 表文件可以包含在一个数据库中,这时,称该表为数据库表;如果一个表文件不包含在任何数据库中,则称该表为自由表。 • 自由表与数据库表是可以相互转化的,当用户把一个自由表放入数据库时,自由表就变成了一个数据库表;如把一个数据库表从数据库中移出,该数据库表就又变成了自由表。 • 一个表只能从属于一个数据库,如要将某数据库表加入其他数据库,应首先将其变为自由表,然后再将其加入其他数据库中。

  6. 3.2 表的建立 • 自由表的建立 • 在VFP 6.0中,一个表文件包括表结构及数据记录两个部分。在建立表文件时,先根据需要建立表结构,然后再向文件中输入数据记录内容。 • 在建立数据表以前,要先对数据表进行规划。基本步骤 • 确定数据表需要的字段个数和名称。 • 确定每一个字段的数据类型 • 确定字段的数据长度

  7. 创建表的方法 • 用表设计器创建表 • 用表向导创建表

  8. 3.2.1用表设计器创建表 • 启动表设计器 • 菜单方式、命令方式(create <表名>)

  9. 3.2.2 用表向导创建表 • ⑴ 启动表向导 • 选择“文件→新建”,在“文件类型”栏中选择“表”,单击“向导”按钮,进入表向导设计“步骤1—字段选择”,如图3-2所示。 • ⑵在“步骤1—字段选择”窗口中,用户要确定将要创建的表中包含几个字段。系统在“样表”框提供了一系列的样表,我们可以选择这些表中的字段做为要创建的表的字段,这样做可以继承这些字段在原表中的属性,从而省略或减少对它们属性的设置。

  10. 选择字段

  11. 修改字段设置 编辑字段属性

  12. 3.3 表的基本操作 • 本节介绍主要内容 • 3.3.1 表的打开与关闭 • 3.3.2 修改表结构 • 3.3.3 表记录的录入 • 3.3.4 表记录的显示与修改 • 3.3.5 记录的定位、插入、修改与删除

  13. 3.3.1 表的打开与关闭 • 1.打开表 • 创建了一个表后,它就以文件的形式存储在磁盘上,我们可以随时对它进行操作。在对表进行各种操作以前,必须首先打开表,以便系统为表的操作做好准备。当新建一个表时,该表处于打开状态。

  14. 几种打开方式 • 用菜单或工具栏打开表 • 使用命令打开表 • 命令格式: • USE <表文件名> • VFP6.0中,一个工作区只允许打开一个表,当打开一个新表时,其他表自动关闭。

  15. 2.关闭表 • 对表的操作结束后,应该把表关闭,这样可以防止表中数据的丢失,保护表内数据的安全。 • USE &&关闭当前工作区的表文件。 • CLOSE DATABASES • &&关闭当前数据库及其表文件。 • CLOSE ALL • 关闭所有数据库及其表文件、所有自由表文件、所 有索引和格式文件。

  16. 3.3.2 修改表结构 • 表结构创建后,还可根据需要对其修改。通常用表设计器修改。 • 使用菜单命令或工具栏打开表设计器 • 命令格式 • MODIFY STRUCTUR • 修改表结构

  17. 修改表结构 • 通过表设计器修改表结构可以实现下列操作: • 字段的追加 • 字段的插入 • 删除字段 • 改变字段顺序 • 修改字段内容 • 在表结构修改后,原始数据被保存为一个备份文件,需要时,可以利用它恢复原数据表。

  18. 注意事项: • 修改表结构可能会造成原表数据丢失。 • 在表结构修改前,应将原始数据保存为一个备份文件,需要时,可以利用它恢复原数据表。

  19. 3.3.3 表记录的录入 • 表记录可以在创建表结构时立即录入,也可在需要时向表内追加。 • 1.在创建表时录入记录 • 如果是采用表设计器创建表,在完成表结构的设计,退出表设计器时,系统会给出提示信息,询问是否输入记录数据,如果回答“是”,此时可以用全屏幕编辑的方式追加或修改记录。

  20. 全屏幕编辑的方式追加记录

  21. 2.用命令追加记录 • 在对表进行操作时,要向表中追加更多的记录,可以采用追加方式录入记录。 • 追加记录命令为: • APPEND [BLANK] • 该命令的功能是打开记录编辑窗口,在表尾部添加记录;若选用BLANK参数,则表示在当前表的尾部添加一个空记录,以后可以在空记录中填写内容。

  22. 3.从其他表中追加记录 • 命令格式: • APPEND FROM <源表名> [FIELDS <字段名表>] [FOR <条件>] • 该命令能够将满足给定条件的记录,从源表追加到当前表的表尾。 • P58 【例3.5】

  23. 3.3.4 表记录的显示与修改 • 1.显示表结构 • 显示表结构可以通过命令方式来实现,命令格式为: • LIST STRUCTURE • DISPLAY STRUCTURE • 区别: • LIST STRUCTURE为连续显示; • DISPLAY STRUCTURE为分屏显示。

  24. 显示表记录命令 • LIST [<范围>] [<字段名表>] [FOR<条件>] [WHILE<条件>] [OFF] • DISPLAY [<范围>] [<字段名表>] [FOR<条件>] [WHILE<条件>] [OFF]

  25. 【例3.7】在系统工作区显示“教师简况.DBF”中所有男教师记录的“姓名”和“出生日期”。命令序列为:【例3.7】在系统工作区显示“教师简况.DBF”中所有男教师记录的“姓名”和“出生日期”。命令序列为: • use 教师简况 • list 姓名,出生日期 for 性别=“男”

  26. 3.表的浏览与编辑 • 窗口的两种显示模式 • 浏览 编辑 • 浏览窗口中的过滤显示 • 选择“数据工作区”---属性命令,在“工作区属性”窗口中设置。 • 单击“关闭”按钮,或关闭表文件,重新打开表文件,原来的过滤显示失效。

  27. ⑹ 表浏览和编辑的命令 • BROWSE [FIELDS <字段表>] [FOR <条件>] [FONT <字体[,大小]>] [STYLE <字形>] [FREEZE <字段名>] [PARTITION <数值表达式>] [NOLINK] [NOAPPEND] [NODELETE] [WIDTH <数值表达式>] • EDIT [FIELDS <字段表>] [FOR <条件>] [FONT <字体[,大小]>] [STYLE <字形>] [FREEZE <字段名>] [PARTITION <数值表达式>] [NOLINK] [NOAPPEND] [NODELETE] [WIDTH <数值表达式>]

  28. 示例 • Use 教师简况 • BROWSE FIELDS 姓名,性别,职称 FOR 性别='男' FONT '隶书',20 STYLE 'BIU'

  29. 3.3.5记录的定位、插入、修改与删除 • 1.记录指针的定位 • VFP 6.0为每个记录都顺序指定了“记录号”,第一个记录的记录号为1。当对某一个记录进行操作时,该记录被称为当前记录,在状态栏中显示了表中的记录数和当前的记录号,记录指针总是指向当前记录。 • 对某一记录进行操作,需要移动记录指针,使其指向该记录。在VFP 6.0中,可以通过多种方法移动记录指针。

  30. 移动记录指针的方法 • 用光标键或鼠标 • 用菜单命令 • 当前工作区有表文件打开时,才能使用 • 使用命令 • GO TOP • GO n • GO BOTTOM • SKIP n &&相对移动记录

  31. 记录的定位 • LOCATE [<范围>] [FOR<条件>] [WHILE<条件>] • CONTINUE • LOCATE命令将记录指针定位在规定范围内符合条件的第一个记录;CONTINUE使指针指向下一个满足条件的记录。可以连续用CONTINUE依次将记录指针指向下一个符合条件的记录,直至规定范围的尾部。但要注意,CONTINUE必须配合LOCATE使用,不能单独使用。

  32. 【例3.13】 • 在“教师简况”中,查找前两个1963年后出生教师的姓名、性别和出生日期。 • use 教师简况 • locate for 出生日期>={^1963-01-01} • display

  33. 2.插入记录 • 命令格式: • INSERT [BEFORE] [BLANK] • ⑴ 该命令启动编辑界面插入一个记录; • ⑵ 若选用BEFORE参数,在当前记录之前插入;否则,在当前记录之后插入; • ⑶ 若选用BLANK参数,则不启动编辑界面,系统自动在指定位置插入一个空记录。

  34. 3.删除记录 • 在VFP6.0中,记录删除有逻辑删除和物理删除。逻辑删除是指系统只给被删记录加上删除标记,在需要的时候,已逻辑删除的记录可以恢复;物理删除是指系统把记录从存储媒体上彻底清除,物理删除的记录不能再被恢复。 • 记录删除可通过图形交互方式和命令方式来实现。

  35. 命令方式 • 逻辑删除: DELETE [<范围>] [FOR<条件>] [WHILE<条件>] • 物理删除: PACK • 恢复被逻辑删除的记录 RECALL [<范围>] [FOR <条件>] [WHILE <条件>] • 【例3.16】逻辑删除“教师简况”中生日在1963年后的记录,再恢复生日在1980年后的记录。 • 命令序列为: use 教师简况 delete for 生日>={^1963-01-01} recall for 生日>={^1980-01-01}

  36. 相关命令或函数 • ZAP &&清空数据表中所有记录 • DELETE() &&函数测试当前记录是否被 逻辑删除

  37. 4.修改记录 • REPLACE [<范围>] [<字段名1> WITH <表达式1>] [,<字段名2> WITH <表达式2>]… [FOR <条件>] [WHILE <条件>] • 功能:该命令能用表达式的值替换对应字段的值。 • 说明: ⑴ 若范围和条件都缺省,则默认只对替换当前记录; ⑵ 表达式与对应字段的数据类型必须一致; ⑶ 当表达式的值超过字段宽度时,字符型截取前n个字符;数值型对小数部分四舍五入,若仍然超长则以*号表示溢出。

  38. 示例 【例3.17】将“教师简况”中所有教师的工龄增加一年。 命令序列为: use 教师简况 replace all 工龄 with 工龄+1

  39. 3.4 创建数据库 3.4.1 新建一个数据库 3.4.2 数据表的修改和使用

  40. 3.4.1 新建一个数据库 • 利用新建窗口 【例3.18】建立一个数据库,库名为“ABC”。 操作步骤为: ⑴ 选择“文件→新建”,进入新建窗口。 ⑵ 在“文件类型”栏中点选“数据库”,单击“新建文件”按钮,弹出“创建”窗口。 ⑶ 在“数据库名”栏中输入数据库名“ABC”,然后单击“保存”按钮。

  41. 新建数据库 • 使用“数据库向导” • 选择“文件→新建”,弹出“新建”窗口。按提示操作。 • 使用命令 • CREATE DATABASE <数据库名> • CREATE DATABASE ABC &&建立数据库abc

  42. 2.数据库的打开 • 菜单方式 • 命令方式 • OPEN DATABASE <数据库名> • 若要打开数据库设计器,还需要使用命令:MODIFY DATABASE • 在VFP 6.0中,可以同时打开多个数据库。指定当前数据库 • SET DATABASE TO [<数据库名>]

  43. 3. 向数据库中添加数据表 • 数据库打开后,可以在库内建立新表,也可以把以前建立的自由表加入数据库使其成为数据库表。 • 方法: 打开数据库设计器,再添加表。

  44. 数据库设计器相关操作 • 打开数据库文件后,系统会新增加一个数据库菜单项,通过该菜单可以实现一些相关操作。

  45. 3.4.2 数据表的修改和使用 • 长表名及表的注释 • 字段标题与字段注释 • 字段级规则及默认值 • 设置记录级规则

  46. 3.5 表的高级操作 • 在VFP 6.0中,系统提供了从物理上和逻辑上两种重新组织记录顺序的方法。 • 从物理上重新组织记录顺序,即彻底改变记录在磁盘上的排列顺序,改变每个记录的记录号,这种操作称为排序。排序后系统生成一个新的表文件,新表以新的顺序排列,原来文件的顺序并不改变。 • 从逻辑上重新组织记录顺序,就是不改变记录在表中的实际存储顺序(即记录号),但在处理表记录时,按新的顺序进行,这就需要为表建立索引文件,使表处理按索引顺序进行。

  47. 3.5.1 表记录的排序与索引 1.表记录的排序 • 命令方式实现,命令格式为: SORT TO <新表名> ON <关键字1> [/A] [/C] [/D] [,<关键字2> [/A] [/C] [/D]…] [<范围>] [FOR <条件>] [WHILE <条件>] [FIELDS <字段名表>]

  48. 说明 ⑴ 排序后生成一个新的表文件,其文件主名由命令中的“新表名”指定,扩展名为.DBF。命令执行后,当前工作区打开的仍然是原文件,新文件不会自动打开。 ⑵ /A表示升序、/D表示降序,缺省时默认按升序排列。有/C表示区分西文大小写,它可以与/A或/D结合使用,以/AC或/DC表示。 ⑶ 命令中的“关键字”应该是表中存在的字段名,该字段应该是可以比较大小的数据类型。一条命令中可以有多个关键字,执行时,首先按第一关键字排序,当第一关键字值相同时,再依次按第二关键字排序,依此类推。 ⑷ 范围短语指定需要排序的记录范围,缺省时默认值为ALL。 ⑸ FOR短语和WHILE短语指定满足条件的记录参加排序。 ⑹ FIELDS短语指定生成的新库中包含的字段。

  49. 示例 【例3.24】对“教师简况”按工龄降序排序,排序结果放入表“教师简况1”中,显示排序结果。 命令序列为: use 教师简况 sort to 教师简况1 on 工龄/D fields 编号,姓名,工龄,职称 use 教师简况1 list

  50. 2.表索引 • ⑴三类索引文件 • 复合结构索引文件---在表设计器中创建 • 非结构化复合索引文件—只能用命令创建 • IDX索引文件 —只能用命令创建

More Related