1 / 148

第 3 章 数据库与表的设计与操作

第 3 章 数据库与表的设计与操作. 本章教学重点 自由表的创建与基本操作 表的排序、索引与查找 数据库的创建与基本操作 数据库中表与表之间关系的建立. 3.1 自由表的创建. 一、 Vf 中表的类型 Vf 中有两种类型的表:数据库表和自由 表,数据库表是数据库中的表,自由表是不 属于任何数据库的表,它们可以相互进行转 化,且两者之间有差别,如数据库表支持长 表名和长字段名,且可定义数据字典。. 二、分析自由表的组成 表是 Vf 处理数据和建立关系型数据库及应 用程序的基本元素,在 Vf 中,表文件的扩展

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章 数据库与表的设计与操作 本章教学重点 自由表的创建与基本操作 表的排序、索引与查找 数据库的创建与基本操作 数据库中表与表之间关系的建立

  2. 3.1 自由表的创建 一、Vf中表的类型 Vf中有两种类型的表:数据库表和自由 表,数据库表是数据库中的表,自由表是不 属于任何数据库的表,它们可以相互进行转 化,且两者之间有差别,如数据库表支持长 表名和长字段名,且可定义数据字典。

  3. 二、分析自由表的组成 表是Vf处理数据和建立关系型数据库及应 用程序的基本元素,在Vf 中,表文件的扩展 名是.dbf,表有表结构和表记录构成。表结 构就是二维表的表头由若干列组成,表中的 列称为字段,是同类数据的集合,每一个字 段都有惟一的名称,称为字段名,表中每一 行称为一条记录,每个记录都有一个记录 号,依次为1号记录, 2号记录,……,最前

  4. 面的记录称为首记录,最后面的记录称为尾 记录。 三、表结构的定义 定义表结构时,需定义的内容有:字段 名,字段类型,字段宽度(字段值的最大宽 度),对数值型数据根据实际需要还需定义 小数位数。下面以表设计器中需定义的内容 为列:

  5. ①字段名命名规则:字段名必须以字母或汉 字开头,后跟字母、汉字、数字或下划线, 且长度对自由表不能超过10个字符,对数据 库表不能超过128个字符。尽量简短,做到见 名知意。详细的标题信息在数据库表结构的” 标题”参数中说明,但为了使用方便在此我们 把标题名和字段名定义为相同的.

  6. ②字段类型:Visual foxpro提供了13中字 段类型,用以存放不同类型的数据。 ③字段宽度:字段宽度表明该字段允许存放的数据的长度,以字节表示。实际使用时应根据具体情况进行定义,但系统对有些数据类型的字段宽度有具体规 定,如:货 币型8字节,日期、日期时间型8字节,双字 节型8字节,逻辑型1字节,备注、通用型 为4字节,整型为4字节。

  7. ④小数位数:当字段类型为数值型或浮点型 时,应根据需要在小数位数栏中定义小数位数,但需注意,小数位数应比字段宽度小最少2,且小数点占一位。 4、索引:在对表的某一字段进行索引排序时 需建立索引。

  8. 5、是否允许为空(null) 值:当表中某一字段的值暂不能确定时,就定义为空值,空值与空字符串,数值0不同,空值是未确定的值或缺值。Vf规定关键字字段不能为空。 四、Vf中表的建立 表的建立包括两部分,一是建立表结构,二是输入表记录。

  9. 1、建立表结构 表结构的建立有两种方法,一是命令法, 二是用表设计器进入表设计器的方法有: 1)使用菜单:文件→新建→表→新建→输入 表文件名→保存。 2)使用工具按钮:单击新建→表→新建→输 入表文件名→保存。

  10. 2、输入表记录 在表定义结束存盘后,系统询问现在是否 输入数据记录,若选择是则进入浏览或编辑 窗口,既可连续进行记录的输入,若选择否 则光标返回到命令窗口,以后若想输入表记 录,则需在表打开的状态下,选择显示菜单 的追加记录命令,来进行输入,在输入时可 通过显示菜单的编辑浏览命令在两种状态下 切换。

  11. 注:输入表记录时应注意以下问题: (1)在输入记录时,当输入内容填满一个字段 的宽度时,光标会自动调到下一个字段,否 则用TAB键或回车键将光标移到下一个字段。 (2)日期型数据按年、月、日的形式输入,不 需输入”/“ (3)对有小数点的数值型数据,只需确定整数 部分的位置,不需输入小数点。

  12. (4)对逻辑型数据,只需输入T或F,不需输入 左右点。 (5) 输入空值的方法是输入ctrl+0 (6)备注型与通用型数据的输入不同于其它数 据的输入。备注型数据的输入方法是用鼠 标双击浏览或编辑窗口相应的备注型字段 或把光标定位在相应的备注型字段上按 ctrl+pagedown或ctrl+pageup或ctrl+home

  13. 进入备注型字段的文本编辑窗口进行编辑, 编辑结束后,按ctrl+w或关闭按钮即可。 通用型数据的输入方法是用鼠标双击浏览或 编辑窗口相应的通用型字段或把光标定位在 相应的通用型字段上按ctrl+pagedown或 ctrl+pageup或ctrl+home进入通用型字段的 多媒体编辑窗口,然后选择编辑菜单的插入 对象命令,进入插入对象对话框,选择对象

  14. 的来源是通过新建的方法来产生还是由文件 来创建,若选择新建则选择一个应用程序来 产生,若选择由文件来创建则通过浏览命令 将一个已有的文件插入进来。

  15. 3.2 表的基本操作 一、表文件的打开与关闭 1.表的打开方式 表的打开方式有两种,只读方式和独占方 式,以只度方式打开的表只能浏览不能修 改,以独占方式打开的表既可以浏览也可以 修改。

  16. 2.表的打开方法 ①菜单法:文件→打开→选择文件类型 为.dbf→选择要打开的文件名→按打开按钮 ②命令法:use [<文件名>] [exclusive|shared]] 功能:在当前工作区中打开或关闭(只有use 命令)表,表打开时,若该表有备注型或通用 型字段,则自动打开同名的.fpt文件。

  17. 使用说明: 1、用exclusive选项,以独占方式打开表, 用shared选项,以共享方式打开表,此时的 表只能浏览不能修改。 2、打开一个表时该工作区中原来的表自动关 闭。 3、已打开的一个表有一个指针与其对应,指 针所指的记录为当前记录,表刚打开时, 记录指针指向表的第一个记录。

  18. 4、表操作结束后应及时关闭,以便将内存中 的数据保存到外存的表中。 ③关闭表的其它方法 clear all关闭所有的表,并选择工作区 1,释放所有内存变量,用户定义的菜单和窗口。 close all关闭所有的数据库和表,并选择工作区1,关闭各种设计器和项目管理器。

  19. close tables[all]关闭当前数据库中所有 的表,若无打开的数据库,则关闭所有的自 由表。 此外,还可用退出VF来关闭当前打开的表。 二、表结构的显示与修改 1 .表结构的显示 显示当前工作区打开表的结构可用如下命 令:list 或disp

  20. 命令格式: list|disp stru [to printer[prompt] |to file <file>] 功能:显示当前已打开的表的结构。 2.表结构的修改 有两种方法: 方法一:在表设计器中修改表结构 打开表设计器的方法是在表已打 开的情况下用显示→表设计器, 方法二:用命令直接修改。Modi stru

  21. 三.表记录的显示与修改 1.浏览方式记录显示与修改 浏览窗口显示表记录的格式分为编辑和浏 览两种。 浏览窗口打开的方法有两种: 菜单法:打开要修改的表,显示→浏览 命令法:打开要修改的表,browse 附:可用显示菜单下的编辑命令在浏览和 编辑之间切换。

  22. 2.命令方式显示记录 命令格式: list|disp [[fields]<字段名表>] [<范围>][for<条件1>][while<条件 2>][off][to printer[prompt]|to file<文件名>] 功能:按指定范围和条件筛选出记录并显示 出来。 使用说明:1.掌握各命令子句的功能 (1)[[fields]<字段名表>]:按需要指

  23. 定各字段名,其中关键字fields可省略。 (2)[<范围>]:用来指出对当前表的哪个范围 内的记录进行操作,有四种限定方式。省略 它,list命令默认是当前表的所有记录, disp命令默认是当前表的当前记录。 (3)[for<条件1>]:用于限定对当前表中指定 范围内满足条件的记录。 (4)Off:显示结果不显示记录号

  24. (5)to printer[prompt]:将显示结果同时送 往打印机。 (6)Toto file <文件名>:将显示结果保存在 文本文件中。 2.注意命令和各子句的书写规则。 (1)命令中有些子句可以省略,如fields子 句在有限定字段时;有些不能省,如for子句 有限定条件时。

  25. 四、记录定位 记录定位就是将记录指针指向某个记录, 使之成为当前记录。有绝对定位法和相对定 位法。 ㈠绝对定位法: ⑴命令法: 方法一:绝对定位命令go 命令格式1:go top|bottom

  26. 功能:将记录指针指向表的第一个记录或最 后一个记录。 命令格式2:go/goto<数值表达式> 功能:将记录指针定位在数值表达式指定的 记录。

  27. ⑵菜单法 在浏览窗口打开后,系统菜单中增加了表 菜单利用表菜单中的移动记录命令可以使记 录指针移动而实现定位。 (二)相对定位法 命令格式:skip [<数值表达式>] 功能:从当前记录开始相对移动记录指针,数值表达式表示移动记录的个数。

  28. 五、表记录的修改 表记录的修改有浏览/编辑方式修改和成批修 改。 1、浏览方式修改表记录(browse) 命令格式: Browse [for<条件表达式>][fields <字段名 表>][lock <数值表达式>][freeze<字段名>]

  29. 功能:以编辑方式(可以修改)打开浏览窗 口,显示表文件中指定记录的指定字段。 使用说明: 1、for和fields子句的功能同前,但此处 Fields子句不能省略。 2、lock <数值表达式>:指定在窗口的左分 区看到的字段数。 3、 freeze<字段名>:使光标冻结在某字段上

  30. 只能修改该字段,其他字段只能浏览,不能 修改。 4、browse命令省去所有选项时,在浏览窗 口显示除备注型与通用型之外的所有字段内 容,且可修改,备注型与通用型字段内容需 要时可直接双击mem或gen进行修改。 5、修改后直接关闭窗口,修改内容直接保存。

  31. 例3.8 使用browse命令显示并修改学生表中 所有男同学的姓名、班级、入学成绩。 命令序列是: Use 学生表 Browse fields 姓名,班级,入学成绩; for 性别=“男” 执行结果是:

  32. 例3.9 在屏幕的左边锁定两个字段,以便对 照修改。 命令序列是: Use 学生表 Browse lock 2

  33. 2、编辑方式修改表记录(edit) 用edit或changchange命令,功能与 Browse命令相同,不同之处是以编辑方式修 改。 3、成批替换修改命令(replace) 可以用菜单方式和命令方式 菜单方式实现的方法是: 打开表后让表处于浏览状态,打开表菜单

  34. 选择替换字段命令,在出现的替换字段对话 框中,选择要替换的字段和替换后的字段值 ,再选择替换范围和替换条件,对要替换的 记录范围左限定。设置完成后按替换按钮即 可。 如例3.10 将学生表中班级为计算机的记录改 为计算机应用。 操作步骤是:依次打开表,浏览表,选择表

  35. 菜单中的替换字段命令打开替换字段对话框 然后进行设置。如下图所示:

  36. 命令方式实现的方法是: 命令格式: Rereplace [<范围>][for/while<条件表达式>] <字段名1> with <表达式1>[additive] [, <字段名2> with <表达式2>]…… 功能:在当前表文件内,对指定范围内满足 条件的记录进行批量修改。

  37. 使用说明: 1、该命令的替换方式是用表达式 的值替换 字段名1的字段值,用表达式2的值替换字段 名2的字段值,依次类推。 2、字段值的类型和后面表达式的类型必须 一致。 3、可选项addi只对备注型只对起作用,若 无此子句,则用表达式的值直接替换备注型

  38. 只对的原值,否则只把表达式的值追加到后面 4、该命令省略范围和条件时只对当前记录 的字段替换,若省略范围则对所有记录中满 足条件的只对操作,若省略条件则对指定范 围内的只对操作。 上例用命令实现是 Use 学生表 Repl 班级 with “计算机应用” for 班级=‘计 算机’

  39. 例3.11 把学生表中每个同学的入学成绩加上 30分的体育分。 Use 学生表 Repl all入学成绩with 入学成绩+30 六、记录的追加与插入 1、记录的追加 指在当前表的末尾追加新的记录。 有两种实现方法:

  40. (1)菜单法: 在浏览窗口打开的状态下,选择表菜单中的 追加新纪录命令,即可在当前浏览的表中最 后一条记录的下面产生一个空白记录,将光 标定位在各字段上,进行数据输入。次方法 一次只能输入一条记录。若一次输入多条记 录,就用显示菜单下的追加方式命令。若选 追加记录命令,则可将其他表中满足条件的 记录的共同字段值成批追加到当前表中。

  41. (2)命令法:append命令 命令格式1:append [blank] 命令功能:在表的末尾追加一条空白记 录,若有blank子句,则留待以后用replace 命令添加记录内容,否则进入记录编辑窗口 进行数 2、从其他表文件中向当前表文件成批添加记录数据输入。

  42. 命令格式: Append from <表文件名> fields <字段名>] [for/while <条件表达式>] 命令功能:将指定表的内容追加到当前表的 末尾。 使用说明: 1)若果原文件与当前表文件有不同的字段,则值追加两表中具有系统名称和类型的字段,其他为空。

  43. 功能:在指定表的末尾追加一个新记录,并 直接将提供的数据输入纪录。 注意: 1利用insert into命令追加纪录时,表不必事先打开,但是要求字段与表达式的类型必须相同。 2若字段名全部省略,就需按表结构的字段顺序添加values子句的所有表达式。

  44. 2)如果原文件中字段宽度大于当前表文件的 宽度,则自动截取超长部分,小于时用空格 填充。 3、insert into命令 命令格式: insert into <表名>[(<字段名1>[,<字段名2>,……])] values(<表达式1>[,<表达式2>,……])

  45. 2、记录的插入 命令格式:insert [before][blank] 命令功能:在当前记录后插入新的记录,且 可进行编辑,若有blank子句则只能插入空白 记录,待以后进行编辑或用repl命令替换, 若有before子句则在当前记录前插入新的记 录。

  46. 例3.13 在学生表的第三条记录之后插入一条 记录。 Use 学生表 Go 3 Insert

  47. 七、表记录的删除 记录的删除分为逻辑删除和物理删除,逻辑 删除是只做删除标记,在set deleted on的 情况下,在进行相关的统计命令时,有删除 标记的记录不起作用,统计结束后,可进行 恢复或彻底删除。 有两种方法,菜单法和命令法.

  48. 1、对记录做删除标记 命令格式:delete [<范围>] [for<条件>][while<条件>] 命令功能:对当前表中指定范围内满足条件 的记录作删除标记,若可选项都省略,则仅 对当前记录做删除标记。可用delete()函数 测试当前记录是否有删除标记。

More Related