收藏 分享(赏)

第04章:表与数据库的基本操作 VFP6.0考级专用.ppt

上传人:tkhy51908 文档编号:9356737 上传时间:2019-08-03 格式:PPT 页数:71 大小:808.50KB
下载 相关 举报
第04章:表与数据库的基本操作 VFP6.0考级专用.ppt_第1页
第1页 / 共71页
第04章:表与数据库的基本操作 VFP6.0考级专用.ppt_第2页
第2页 / 共71页
第04章:表与数据库的基本操作 VFP6.0考级专用.ppt_第3页
第3页 / 共71页
第04章:表与数据库的基本操作 VFP6.0考级专用.ppt_第4页
第4页 / 共71页
第04章:表与数据库的基本操作 VFP6.0考级专用.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

1、Visual FoxPro 6.0 程序设计与应用教程,第四章,数据库与表的基本操作,Visual foxpro 基本操作入门,启动Visual foxpro 选择VFP快捷命令启动Visual foxpro“开始”“程序” “Microsoft Visual Foxpro6.0” 在桌面上双击VFP快捷方式图标 运行“VFP6.EXE”文件启动Visual foxpro,状态行,项目管理器,标题栏,主菜单,窗口大小控制区,常用工具栏,命令窗口,系统输出窗口,Visual foxpro 主窗口,主窗口包括:标题栏、控制菜单按钮、最小化/最大化或还原/关闭按钮、菜单栏、工具栏、主窗口显示区、命令

2、窗口、状态行等。 状态行:用于显示系统的当前状态信息,包括正在使用的表名及其存放的文件夹、当前表的记录数、以独占或共享方式打开表、插入或改写状态、数字锁定或非锁定状态、字母大写或小写状态 VFP主菜单菜单:由一系列菜单命令组成,有系统菜单、快捷菜单、子菜单和用户菜单等。菜单命令:一个命令名或过程名,每一个命令都是一个VFP命令的快捷方式,单击它即执行相应的命令。,Visual foxpro 主窗口简介,VFP工具栏有十几种工具,“常用”工具栏是VFP默认显示的工具栏,VFP允许同时打开多个工具栏。选择“显示”-“工具栏”-选定需要的工具栏-最后“确定”,访问键:键盘上的字符,这些字符一般标示在

3、菜单命令右侧括号内,并加有下划线。键入Alt+字符激活 。动态菜单:是指在运行某一命令时才会被激活的菜单。,Visual foxpro 的工作方式,主要有交互式方式和可视化操作,包括选择命令的快捷方式、键入命令方式和命令文件方式 1、命令的快捷方式:主要设置在菜单系统、工具栏和快捷菜单上,快捷菜单上还有访问键和快捷按钮。快捷菜单:当用户在选定的内容上单击鼠标右键时出现的菜单,它与选定内容相关。快捷键:用于执行某项任务的一个按键或组合键,一般在菜单项的右端提示。 2、命令方式直接在命令窗口中输入命令,并按回车。如果输入的命令符合VFP的语法要求,则命令关键字用蓝色字体显示,否则,用黑色字体显示。

4、,3、命令程序方式:是指将VFP的一系列命令按照一定的顺序组织成一个文件,通过调用这个文件依次执行预定的命令,实现自动操作功能。 有些命令只能用命令方式执行。 “命令窗口”可以隐藏或显示,隐藏转换显示可按+,退出Visual foxpro,在关闭VFP之前,最好先关闭所有的数据库和表等操作对象,避免数据丢失。 1、常用方法单击VFP主窗口右上角的“关闭按钮。 2、其它方法选择“文件”菜单-选择“退出”在VFP主窗口下,按+在命令窗口中执行“QUIT”命令 双击VFP主窗口左上角的“控制菜单按钮”右键单击任务栏上的VFP图标-选择“关闭”,4.1 数据库的基本操作,在VFP中表分为数据库表和自由

5、表 自由表:是独立的表,存在于任意一个数据库之外,不属于任何数据 数据库表:若干表组织到数据库中形成数据库表,表的设计过程,1.定义表名 2.定义表的字段属性 3.向表中输入数据,准备工作:根据需要管理的数据表内容进行分析 数据如下:,1.定义表名 确定表文件名 STUDENT.DBF 2.定义表的字段属性 确定数据库文件结构中的每一个字段名、字段类型、长度,表结构如右所示,3.向表中输入数据,Visual Foxpro的表可以包含多达255个字段,若一个或多个字段包含NULL值,表可包含的最大字段数则减少一个,即254个 字段名:可以由字母、汉字、数字和下划线组成并以字母或汉字开头的命名,不

6、能使用空格、逗号等分隔符号 数据库表:字段名最多可包含128个字符,若变成自由表,长字段名将被截短成10个字符 自由表:字段名不得超过10个字符或5个汉字. NULL 值 无明确的值,不等同于零或空格。 (1)等价于没有任何值 (2)与0、空字符串(“)或空格不同 (3)排序优先于其他数据,表的创建,数据库表的建立方法:项目文件数据库新建数据库新建表,自由表的建立方法:项目文件自由表新建,自由表的建立,表结构的创建,数据库表项目文件数据库包含数据库表的数据库表新建 输入表名字 输入结构 自由表 自由表新建 输入表名字 输入结构,数据库表结构的输入,自由表结构的输入,表记录的输入,1. 创建表结

7、构后选择“是”按钮,立即输入数据 2. 在浏览窗口和编辑窗口表中追加新记录(Ctrl+W 存盘 Ctrl+Q 或 ESC 键放弃本记录输入) 3. 备注字段与通用字段的输入,双击或Ctrl+Home进入该字段输入窗口。 Ctrl+Q 或 ESC 键放弃该字段的输入。,自由表与数据库表之间的互换,自由表与数据库表之间的互换: 将自由表变为某个数据库表:选项目文件、数据库、添加表 将数据库表变为自由表:选项目文件、数据库、选定表、移去 用同样方法在学生成绩项目文件中的学生成绩数据库中再建立四个数据库表:成绩(GRADE.DBF)、课程(COURSE.DBF)、教师(TEACHER.DBF)、授课(

8、TEACH.DBF) P58,表结构的修改(1),利用表设计器来修改表的结构 数据库表结构的修改启用表设计器的方法:方法一:在项目管理器中选择要修改的表名,单击修改方法二:在数据库设计器中选择要修改的表,单击修改,表结构的修改(2),自由表结构的修改打开自由表 显示 表设计器,表的数据浏览、编辑、 记录定位与删除,查看和浏览表中内容: 显示edit/浏览browse 向表中加入新记录: 显示/追加方式(append)(或 表/追加新记录(append) 删除表中记录: 删除标记(delete)/彻底删除(pack) 恢复记录(Recall) 定位到记录(Locate ) 字体设置 调整字段显示

9、的大小: 表/调整字段大小,4.2 表的索引,索引的概念: 记录的物理顺序与逻辑顺序:物理排序:文件中的记录一般按其磁盘存储顺序输出,这种顺序称为物理顺序。 索引排序:它不改变记录的物理顺序,而是按某个索引关键字(或表达式)来建立记录的逻辑顺序。索引后产生一个索引文件,在索引文件中,所有关键字值按升序或降序排列,每个值对应原文件的一个记录号,这样便确定了记录的逻辑顺序。也称逻辑排序索引文件中只包括关键字和记录号两个字段,比被索引的表要小。,物理顺序与索引顺序,VFP索引文件的种类:复合索引文件:文件扩展名为 .CDX一个或多个索引关键字可分为结构复合索引文件和非结构复合索引文件结构复合索引文件

10、:与表文件同名非结构复合索引文件:与表文件不同名独立索引文件:文件扩展名为.IDX (为与FOXBASE兼容)单独一个索引关键字可建多个文件,若打开表的时候没有打开,则数据不会同步更新。,索引的四种类型:,在表设计其中创建索引,1. 创建索引演示举例 对表STUDENT.DBF 按专业索引 2. 用多个字段进行索引演示举例 对STUDENT.DBF 表按专业排序,如果专业一样,按日期排序注意字段的索引表达式为:STUDENT.专业DTOC(STUDENT.出生日期)注意:要观察索引效果必须选定主索引(操作:窗口/数据工作期/属性/索引顺序),用命令方式建立索引 (补充),索引的建立: 命令格式

11、 独立索引文件的建立 INDEX ON 索引关键字 TO 独立索引文件名 FOR 条件 COMPACT ASCENDING UNIQUE ADDITIVE 复合索引文件和索引标识的建立INDEX ON 索引关键字 TAG 索引标识名 OF 复合索引文件名 FOR 条件 COMPACT ASCENDINGDESCENDING UNIQUE | CANDIDATE ADDITIVE 说明:单索引时不能用选项:DESCENDING、CANDIDATE,说明: (1)TO子句适用于建立单索引文件,单索引文件名由单索引文件名给出,扩展名为 .IDX (2)该命令建立普通索引型索引文件 (3)UNIQUE

12、表示建立唯一索引型索引文件 (4)CANDIDATE表示建立候选索引型索引文件,但需与TAG子句同时使用。 打开STUDENT.DBF,建立按专业升序排列的普通索引型单索引文件ZY.IDX USE STUDENT INDEX ON 专业 TO ZY BROWSE,建立按降序排列的唯一索引型单索引文件JGIDX.IDX INDEX ON 奖学金 TO JXJ UNIQUE(5)COMPACT 选项用于指定单索引文件为压缩 (6)OF 选项复合索引文件名用来指定非结构复合索引文件的名字,若缺省该选项,则表示建立结构复合索引文件 (7)记录逻辑顺序默认为升序,也可用ASCENDING 选项表示升序。

13、DESCENDING选项表示降序。 (8)ADDITIVE表示建立本索引文件时并不关闭先前打开的索引文件,为Student.DBF建立一个结构复合索引文件,其中包括标识索引:记录以学号降序排列,索引标识为XH普通索引USE STUDENTINDEX ON 学号 TAG XH DESCENDINGBROWSE 为STUDENT.DBF建立一个结构复合索引文件,其中包括标识索引:记录以专业升序排列,专业相同时则按出生日期升序排列,索引标识为 ZYRQ 普通索引USE STUDENTINDEX ON 专业DTOC(出生日期)TAG ZYRQBROWSE,为STUDENT.DBF建立一个结构复合索引文

14、件,其中包括标识索引:记录以专业升序排列,专业相同时则按奖学金降序排列,索引标识为ZYJSJ候选索引USE STUDENTINDEX ON 专业+STR(1000奖学金,7,2) TAG ZYJXJ CANDIDATEBROWSE( 候选索引时,表中不允许有相同关键字值的记录 ),为STUDENT.DBF建立一个非结构复合索引文件,其中包括标识索引:记录以学号升序排列,索引标识为XH普通索引,索引文件名为XH1.CDXUSE STUDENTINDEX ON 学号 TAG XH OF XH1BROWSE,索引的使用,要使用索引查询,必须同时打开表与索引文件, 一个表可以同时打开多个索引文件,同一

15、个复合索引文件中也可能包含多个索引标识,但任何时候只有一个索引文件能起作用,在复合索引文件中也只有一个索引标识能起作用。当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为主控索引。 索引使用步骤: (1)单索引文件打开表、打开索引文件(可能多个索引文件)、确定主控索引文件 (2)复合索引文件打开表、打开索引文件、确定主控索引文件、确定主控索引,打开和关闭索引文件 (1)索引文件刚建立时,索引文件呈打开状态且成为主控索引文件USE STUDENTINDEX ON XH TO XH (XH.IDX成为主控索引文件) 或:USE STUDENTINDEX ON 专业 TAG ZY (标识

16、索引 ZY成为主控索引) 打开索引文件命令格式:SET INDEX TO 索引文件名表 ADDITIVE,(2)若当前只有打开一个索引文件,则本身成为主控索引文件USE STUDENTSET INDEX TO XH (XH.IDX成为主控索引文件)(3) 若当前只有打开多个索引文件,则第一个成为主控索引文件USE STUDENTSET INDEX TO XH,ZY,ZYRQ(XH.IDX成为主控索引文件),(4)当表打开时,结构复合索引文件自动打开,而非结构复合文件还需SET INDEX TO 非结构复合文件名来打开USE STUDENT (结构复合文件自动打开) SET INDEX TO X

17、H1 (打开非结构复合文件) (5)表关闭时,索引文件自动关闭USE (相关的索引文件自动关闭)(4)确定主控索引文件或主控索引SET ORDER TO TAG,4.3数据库的基本操作,数据库表间的永久关系作为数据库的一部分被保存起来的数据库表之间所建立的关系 数据库表间的临时关系用“数据工作期”或set relation命令建立的自由表之间的关系,建立表间的一对一关系 sele 1 use teach sele 2 use course inde on 课程号 tag kch sele 1set rela to 课程号 into course sele 1 brow fiel 教工号,课程号

18、,b-课程名,b-课时,b-学分,一对多关系 一方为父表 关键字段为主索引字段 字段值唯一 多方为子表 关键字段为普通索引字段 字段值重复,STUDENT.DBF,GRADE.DBF,建立表间的一对多关系,建立表间的一对多关系,将主表的主索引关键字段拖动到子表的索引字段 单击关系连线,连线变粗,Delete键可以删除关系 例:sele 2USE grade orde 学号sele 1USE student orde 学号set rela to 学号 into gradeset skip to gradebrow fiel student-学号,student-姓名,grade-课程号,grad

19、e-成绩,4.4数据库表设计器的基本操作,利用表设计器来修改表的结构,字段有效性设置:用于字段验证(1)规则:输入该字段内容时,符合规则条件的字段内容时,光标才能离开该字段如:LEFT(学号,2)=“99”(2)信息:当该字段输入的数据违反条件时,出错信息将显示该文本框内容如:“学号前二位应是99”(3)默认值:指定字段的默认内容,当增加记录时,字段默认值会在新记录中显示出来,从而提高输入速度。(SET CARRY ON/OFF可设置是否传递字段值给新记录),设置显示格式:用于格式化输入输出 (1)格式(也称功能符)设置: 如:一个 !能使该字段宽度内的所有输入输出内容均转为大写一个 A 表示

20、该字段宽度内所有内容仅允许输入字母 如:若字段内的内容为xy19MN 格式设置为 !则显示为XY19MN,(2)输入掩码(也称格式符)(输入掩码是按位来指定格式) 输入掩码可以 的字符: (3)标题:标题文本内容在显示浏览时,将字段名用标题文本框的内容标示,4.5 多表操作,多表操作要使用多个工作区,每个工作区是一个表的独立存储区域,并且都有自己的编号:A、B、C、D、.、H、I、J 前十个工作区或 1、2、3、4、32767VFP可以有32767个工作区,每个工作区可以打开一个数据表。但只有一个工作区为当前工作区,该区上打开的表为当前数据表。,如果在多个工作区同时打开多个表文件,在当前工作区

21、中移动表的记录指针时,其它表的记录指针是不会随之移动 。如果要想其它表的记录指针也随之移动,则要建立表间的关联。关联就在二个或二个以上的表之间建立某种联接,使其表的记录指针同步移动。用来建立关联的表称为父表,被关联的表称为子表。在两个表之间建立关联,必须以某一个字段为标准,该字段称为关键字段。表文件的关联可分为一对一关联、一对多关联和多对多关联。 建立关联的方法 命令 set relation to 数据工作期,表的关联,表之间的关系,多对一关系,STUDENT.DBF,GRADE.DBF,一对多关系,STUDENT.DBF,GRADE.DBF,1、命令建立关联,格式:SET RELATION

22、 TO INTO / , INTO / IN /ADDITIVE,功能:在两个表之间建立关联。 参数描述: :指定用来在子表和父表之间建立关联的关联表达式。关联表达式经常是子表主控索引的索引表达式。,可以是下列三种参数之一: 1、是记录号函数RECNO()。此时,两个或多个关联表之间的联系是根据记录号来进行关联的,关联表与被关联表之间当前记录号保持相等。如果关联表记录的记录号大于被关联表的记录总数,则被关联表的当前记录指针指向最后一条记录的下一条记录,EOF()函数值为.T.。,SELECT 2 USE SCORE ALIAS CJ SELECT 1 USE STUDENT SET RELAT

23、ION TO RECNO() INTO CJ,2、是数值型表达式。此时,在表达式中通常含有RECNO()函数,每当关联表的记录指针重新定位时,被关联表的记录指针将重新定位于的值所对应的记录之上。如果的值大于被关联表文件的记录总数,则被关联表文件的当前记录指针指向最后一条记录的下一条记录,EOF()函数值为.T.。,SELECT 2 USE SCORE ALIAS CJ SELECT 1 USE STUDENT SET RELATION TO 3*RECNO()-2 INTO CJ,3、选择二个表的公共字段建立关联,使用这种方法时,要求被关联的表文件必须是按指定的公共关联字段建立并打开了索引文件

24、。,SELECT 2 USE SCORE ALIAS CJ INDEX ON 学号 TO XHSY SELECT 1 USE STUDENT SET RELATION TO 学号 INTO CJ,INTO /:指定被关联表的工作区或别名,也可以是被关联表的别名。,ADDITIVE:建立关联时,如果命令中不使用ADDITIVE子句,则父表以前建立的关联将自动解除;若使用了ADDITIVE子句,则父表以前建立的关联仍然保留。说明:在建立关联之前,必须打开一个表(父表),而且还必须在另一个工作区内打开其它表(子表)。相关的各表通常有一个相同的字段。父表可以同时与多个子表建立关系,称为“一父多子”的关

25、系。可以是字符型、数值型、日期型表达式。如果建立父子关联之前,子表已经按照关联条件建立了索引,并将该索引文件指定为主控索引,那么,每当当前工作区父表的记录指针重新定位时,就检索子表,将子表的记录指针定位于值与值相同的第一条记录之上。允许在多个工作区中建立多个表之间的关联,但关联不能构成循环。,这样建立的关联,只能显示一对一的关系,当要父表中的一条记录同时对应子表中的多条记录时,还要先用到SET SKIP TO 命令,格式:SET SKIP TO / ,/,功能:在父表的每条记录与子表中所有对应记录之间建立“一对多”的关联。 说明:如果已经建立了一父多子的关联,并且父表与每个子表都要建立“一对多

26、”的关联,那么只要在SET SKIP TO命令中分别写出子表所在的或者即可。,格式1:SET RELATION TO,功能:删除当前工作区表与其它工作区表建立的关联。,用SET RELATION命令建立关联之后,当移动关联表的记录指针时,被关联表的记录指针也相应要移动,并且将要引起读/写磁盘操作,这样会降低系统的性能,因此,当某些关联不再使用,或暂时不再使用时,应及时解除关联,以提高系统的运行速度。,2、解除关联,格式2:SET RELSTION OFF INTO /,功能:删除当前工作区与由/指定的工作区中表建立的关联。该命令必须在父表所在的工作区执行。例如:要关闭当前工作区与C工作区建立的

27、关联。可以作下述命令进行: SET RELATION OFF INTO C当用USE关闭某些表时,系统将自动删除掉与它建立的关联。如果关闭的是父表文件,则它与子表的关联将全被删除。当关闭父表时,将自动关闭与父表建立的所有关联。, 窗口 / 数据工作期 弹出数据工作期窗口。 选择【打开】,将需要用到的表在不同的工作区打开。 在别名列表中选择父表,再单击“关系”按钮,再在别名列表中选择子表。,数据工作期建立表的关联, 如果子表文件未指定主索引,系统会打开“设置索引顺序”对话框,以指定子表文件的主索引。 主索引建立后,系统弹出 “表达式生成器”(Expression Builder)对话框,在字段列

28、表框中选择关联关键字段,然后单击“确定”按钮,返回数据工作期窗口。, 此时在数据工作期窗口的右侧列表框中出现了子表,在父表和子表之间有一单线相连,说明在两表之间已建立了一对一关联,,若要建立一对多的关联 单击一对多按钮.系统弹出创建一对多关系对话框 在创建一对多关系对话框的子表别名列表框选择子表别名,单击“移动”按钮,子表别名将出现在选定别名列表框中,单击“确定”按钮,完成子表别名的指定,并返回到数据工作期窗口。,在数据工作期窗口中建立STUDENT.DBF和GRADE.DBF两表间的多对一关系。(父表:GRADE.DBF、子表:STUDENT.DBF、关键字段:学号、子表STUDENT.DB

29、F需按学号建立索引) 在数据工作期窗口中建立STUDENT.DBF和GRADE.DBF两表间的一对多关系。(父表:STUDENT.DBF、子表:GRADE.DBF、关键字段:学号、子表GRADE.DBF需按学号建立索引)浏览显示:如在STUDENT.DBF浏览窗口中只显示学号、姓名,在GRADE.DBF浏览窗口中只显示成绩,可在“工作区属性”对话框中进行字段筛选(注意:必须选定“字段筛选指定的字段”选项按钮),4.6 表的操作命令,1. 创建表 (1)命令格式: CREATE 文件名 (2)功能:在指定的位置创建一个新表 2. 用USE命令来打开或关闭表(1)命令格式: USE (2)功能:在

30、当前工作区中打开或关闭表,表打开时,若该表有备注型或通用型字段,将自动 名的.FPT文件.(3)说明:文件名表示被打开的表的名字,缺省时表示关闭当前工作区的表。打开一个表时,该工作区中原来打开的表自动关闭。已打开的表有一个记录指针 ,指针所指向的记录称为当前记录,表刚打开时指向第一个记录。,3. 表的记录显示:(1)命令格式:LISTDISPLAY 字段名表 范围 FOR条件 OFF TO PRINT 功能:在表中按指定范围与条件选出记录并显示出来,或送至指定设备或文件 范围:ALL 所有记录NEXT N 从当前记录起的N个记录RECORD N 记录号为N的记录REST 从当前记录起到最后一个

31、记录止的所有记录 FOR条件:只有指定范围内的满足条件的记录参加命令操作,演示举例 USE STUDENTGO 3DISPLAY NEXT 4 FOR 专业“计算机”4. 插入新记录 (1)命令格式:INSERT BLANK BEFORE (2)功能:在指定位置插入新记录 5. 追加新记录 (1)命令格式:APPEND BLANK (2)功能:可在表尾增加一条新记录(或空记录),6. 修改指定记录 (1)命令格式:EDIT 范围FIELDS字段名表FOR | WHILE条件 (2)功能:以全屏幕编辑方式,修改当前表中满足条件的记录中指定字段的数据7. 窗口修改记录 (1)命令格式: BROWS

32、E FIELDS字段名表 (2)功能:以全屏幕窗口方式修改当前表中的记录,8. 记录逻辑删除 (1)命令格式: DELETE FOR/WHILE条件范围 (2)功能:参当前表中指定范围内满足条件的记录加删除标记。若无可选项则只对当前记录作删除标记。 9. 记录物理删除 (1)命令格式:PACK (2)功能:从物理上真正删除带有删除标记的记录 10. 记录恢复 (1)命令格式:RECALL 范围FOR/WHILE条件,11. 记录清除 (1)命令格式:ZAP (2)功能:物理删除当前表 有记录 12. 表数据的替换 (1)命令格式: REPLACE 字段名1 WITH 表达式1 ADDITIVE

33、,字段名2 WITH表达式2.范围 FOR/WHILE条件 (2)功能:在当前表的指定记录中,将有关字段的值用相应的表达式值来替换。若参数缺省,则只对当前记录的有关字段进行替换,例如:将表中每位同学的奖学金增加50元REPLAY ALL 奖学金 WITH 奖学金50 13. 绝对定位 (1)命令格式1GOTO TOP/BOTTOM (2)命令格式2:GOTO (3)功能: GO TOP 将记录指针指向表的逻辑第一个记录 GO BOTTOM将记录指针指向表的逻辑最后一个记录 GO数值表达式将记录指针指向数值表达式指出的记录号,14. 相对定位记录 (1)命令格式:SKIP数值表达式 (2)功能:从当前记录开始移动记录指针,数值表达式表示移位记录的个数。正数表示向后移动,负数表示向前移动。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报