《VisualFoxPro数据库、数据表命令操作.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro数据库、数据表命令操作.ppt(61页珍藏版)》请在三一办公上搜索。
1、第四讲 Visual FoxPro数据库、数据表命令操作,邵明东学时:2节,教学内容,4.1 建立项目4.2 Visual FoxPro数据库及其建立4.3 数据表操作命令4.4 数据表记录的浏览与显示4.5 记录定位4.6 表记录操作4.7 自由表4.8 统计与汇总4.9 数组与数据表记录交互操作,教学难点及教学目标,重点及难点数据表记录操作命令记录定位表记录的查询与浏览统计与汇总数组与数据表记录交互操作教学目标掌握数据库和数据表操作命令掌握数据表记录的显示与检索熟悉统计与汇总熟悉数组与数据表记录交互操作的使用方法,4.1 建立项目,4.1.1 项目简介1.Visual FoxPro 的项目
2、是文件、数据、文档和 Visual FoxPro 对象的集合。2.项目管理器是 Visual FoxPro 中处理数据和对象的主要组织工具,是系统“控制中心”。3.若要处理项目中某一特定类型的文件或对象,可选择相应的选项卡。在建立表、数据库、查询、表单、报表以及应用程序时,可以用“项目管理器”来组织和管理文件。,项目管理器的选项卡,(1)数据选项卡:包括项目中的所有数据、自由表、查询和视图。(2)文档选项卡:包括项目中的所有输入界面(表单)和输出界面(报表、标签)。(3)类选项卡:包括开发人员使用和自己设计的类。(4)代码选项卡:包括扩展名为.prg、.app的程序和函数库API Librar
3、ies。(5)其它选项卡:包括文本文件、菜单、其它文件。(6)全部选项卡:包括以上所有内容。,项目管理器窗口,4.1.2 项目的建立及打开,建立项目命令Create Project projectname|?功能建立一个项目名为projectname的项目系统自动建立一个.pjx的项目文件和一个.pjt的项目备注文件打开项目命令Modify Project projectname|?双击扩展名为.pjx的项目文件 功能打开项目文件,进行数据、文件的组织管理,4.2 Visual FoxPro数据库及其建立,4.2.1 基本概念Visual FoxPro数据库是一个逻辑上的概念和手段,通过一组系
4、统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理数据库表是以.dbf为扩展名的文件,简称表建立数据库时,将建立VFP数据库管理系统管理数据库的三个文件:扩展名为.dbc的数据库文件扩展名为.dct的数据库备注(Memo)文件扩展名为.dcx的数据库索引文件,4.2.2 建立与打开数据库,建立数据库命令格式:CREATE DATABASE DatabaseName|?命令功能创建一个数据库。数据库建立后处于打开状态参数介绍:DatabaseName给出要建立的数据库名称不指定数据名称或使用问号则弹出对话框请用户输入数据库名称如果系统设置Set Safety Off,则如果指定的数据库
5、名已经存在,则直接覆盖如果系统设置Set Safety Off,则出现覆盖提示对话框,打开数据库命令,命令格式OPEN DATABASE 数据库名|?EXCLUSIVE|SHARED NOUPDATE VALIDATE功能打开指定的数据库若没有指定数据库名,带“?”,将显示可以打开的数据库,由用户选择确认。,使用命令打开数据库设计器,语法格式:Modify database DatabaseName|?NowaitNoedit选项:DatabaseName:给出要修改的数据库名,使用问号”?”或省略参数则打开“打开”对话框Nowait:该选项只在程序中使用,在交互使用的命令窗口中无效。其作用是
6、在数据库设计器打开后程序继续执行Noedit:使用该选项中是打开数据库设计器,而禁止对数据库进行修改,4.2.3 删除数据库,命令Delete Database DatabaseName|?DeletetablesRecycle功能指定Deletetables则在删除数据文件的同时从磁盘上删除该数据库所含的表(dbf文件)指定Recycle将删除的数据库文件和表文件等放入Windows的回收站中,WORKHELPER 办公助手提供,4.3 数据表操作命令,创建数据表命令Create TableName打开数据表命令Use TableName关闭打开的数据表命令Use修改数据表结构命令Use S
7、tudinfoModify Structure,WORKHELPER 办公助手提供,4.3.1 使用命令建立数据表,操作步骤设置工作目录打开数据库建立数据表如:Set Default To D:LNOpen Database StudScoreDBCreate StudInfo,WORKHELPER 办公助手提供,创建表示例(StudInfo),StudInfo(学生信息表)StudInfo(StudNo,StudName,StudSex,StudBirthDay,ClassID),表设计器的使用,输入字段名,选择字段类型,输入字段长度,格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显
8、示风格,输入掩码是字段的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999,标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好!,字段有效性属于完整性约束内容,以后再介绍,添加注释便于以后对数据库进行维护,命令:Create StudInfo,与表相关的内容及概念,1.字段名关系的属性名或表的列名表的各列名不能同名字段名命名规范:自由表字段名最长为10个字符数据库表字段名最长为128个字符字段名必须以字母或汉字开头字段名可以由字母、汉字、数字和下划线组成字段名中不能包含空格2.字段类型和宽度字段的数据类
9、型决定存储在字段中的值的数据类型数据类型通过宽度限制可以决定存储数据的数量或精度,与表相关的内容及概念,3.空值NULL选项,表示是否允许字段为空值。空值是缺值或还没有确定值,不能理解为任何意义的数据与空(或空白)字符串、数值0等具有不同的含义4.字段有效性组框定义字段的有效性规则、违反规则时的提示信息和字段的默认值5.显示组框格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显示风格输入掩码是字段的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好
10、!6.字段注释添加注释便于以后对数据库进行维护,输入数据表字段,输入记录对话框,在表设计器中,定义完字段名、类型、宽度后,单击确定按钮,会显示“现在输入数据记录吗?”提示框。单击“是(Y)”按钮,进入输入记录操作;单击“否(N)”按钮,暂不输入记录,建立的数据库是一个空表,还没有数据记录的数据库表。,输入记录对话框,在记录输入操作窗口中,显示表中的字段名当前字段名后面有一条光带,表示在此输入字段的数值输入数值后,按Tab键或Enter键光标移向下面一个字段的光带用户按顺序输入各个字段的数值,当输入完一个记录的所有数值后,进入下一个记录的数据输入。记录输入结束后,单击窗口右上角的“关闭”按钮或按
11、Ctrl+W组合键,关闭窗口。输入备注字段数据时,首先双击该字段或按Ctrl+PageDown组合键,进入文本编辑窗口,输入文本内容,输入结束按Ctrl+W组合键,关闭窗口,返回记录输入操作窗口。,4.3.2 修改表结构,Use StudInfoModi Stru,显示表的结构命令,命令:LIST STRUCTURE TO PRINTER|TO FILE 命令功能显示当前数据库表的结构,包括字段定义数据、记录数、更新时间等相关信息例:Use StudInfoList Stru,4.4 数据表记录的浏览与显示,4.4.1 使用Browse浏览记录命令browse 功能浏览器窗口中可以进行浏览表中
12、的数据、添加、删除和修改表中的记录等操作。Use StudInfoBrowseBrowse NoModifyBrowse All for studno99070470,浏览数据库表记录,Use StudInfoBrowse NoModify,表中记录前带有“”符号的,表示该记录为当前记录。,查询记录(BROWSE),命令BROWSE 范围 条件 NOMODIFY功能显示符合条件的记录范围:All:全部数据REST:当前记录和以后的全部记录NEXT N:当前记录和以后的n-1条记录条件:For 逻辑条件:FOR StudSex=男 OR StudNo=99070470示例:USE STUDINF
13、OBROSWE ALL FOR StudNo=9907470,2修改记录,Use StudInfoBrowse,将光标定位在要修改的记录和字段值上,直接输入数据,修改即可,4.4.2 表记录显示,命令:LISTDISPLAY FIELDS FOR OFF TO PRINTER PROMPT|TO FILE 命令功能:显示当前数据库表指定范围内所有满足条件的记录。LIST 命令为连续显示命令执行结果;DISPLAY命令分屏显示范围All:所有记录Rest:从当前指针记录开始,后面的记录,包括当前记录Next n:从当前指针记录开始,后面的n-1记录,包括当前记录FOR条件:显示满足条件的记录,记
14、录显示命令使用示例,OPEN DATABASE StudScoreDBUSE StudInfoLIST&或使用命令:DISPLAY ALLDISPLAY ALL FOR StudSex=男,表记录显示示例,Use StudInfoList ALLGo 2List restGo 2List next 2List all For StudNo=99070470 Go topDisplay All,4.5 记录定位,4.5.1 记录绝对定位命令格式为:GO/GOTO|TOP|BOTTOM命令功能将记录指针直接定位到指定的记录。GOTO和GO命令是等价的TOP:首记录Bottom:尾记录,4.5.2
15、记录相对定位,命令:SKIP n 命令功能以当前记录位置为基准,将记录指针向前或向后移动,指针移动记录个数由数值 n来确定。n是正整数,则向表尾方向移动;n是负整数,则向表头方向移动;默认数值是1,则向表尾方向移动一个记录。,4.5.3 条件定位,命令:LOCATE FOR 命令功能将记录指针定位在指定范围内满足条件的第一条记录上如果没有满足条件的记录则指针指向文件结束位置。如果缺省范围,指所有记录。指针定位成功后,如果要使指针指向下一条满足条件的记录,应使用CONTINUE命令。可以使用函数FOUND()判断是否找到了满足条件的记录。如果有满足条件的记录,该函数返回真(.T.),否则返回假(
16、.F.)。,4.5.4 与记录定位相关的系统测试函数,(1)表文件尾测试函数:EOF(|)(2)表文件首测试函数:BOF(|)(3)记录号测试函数:RECNO(|)(4)记录个数测试函数:RECCOUNT(|)(5)记录删除测试函数:DELETED(|),记录定位示例,USE studinfoGO 3&记录指针指向3号记录DISPLAY&显示3号记录的数据?RECNO()&显示结果为:3,即当前记录指针仍指向3号记录?BOF()&显示结果为:.F.,4.6 表记录操作,4.6.1 记录的追加、插入与删除1追加记录命令:APPEND命令功能在当前表的尾部追加记录,交互输入新记录的数据一次可以连续
17、输入多条记录。可以使用 箭头移动光标按键结束输入2追加一条空白记录命令:APPEND BLANK命令功能在当前表的尾部增加一条空白记录可以用EDIT、CHANGE或BROWSE命令交互修改空白记录的值,或用REPLACE命令直接替换该空白记录的值。3插入记录命令:INSERT BEFORE BLANK,记录插入示例,USE StudInfoGO 6INSERT BLANK&在6号记录后面插入空白记录GO 6&记录指针重新指向6号记录DISPLAY NEXT 4APPEND,4.6.2 记录的编辑、修改及替换,1单个记录的编辑修改命令:EDIT/CHANGE FIELDS FOR 命令功能在指定
18、范围内对满足条件的记录的指定的字段进行编辑修改。的默认值是当前记录。2记录替换命令:REPLACE WITH,WITH FOR 命令功能在指定范围内对满足条件的记录直接用的值替换字段的值,一次允许替换多个字段的值。如果缺省参数,则只对当前记录作替换。,替换示例,USE StudInfogo 6displayreplace studname with 李伟,studsex with 男 reco 6Display&看看下面这条命令是什么意思Replace all studname with 姓名+studname,4.删除记录,Visual FoxPro 6.0删除记录,分为逻辑删除记录和物理删
19、除记录两种。1记录的逻辑删除命令:DELETE FOR 命令功能对当前数据库表中,指定范围内满足条件的记录作删除标记,如果缺省所有短语,则只给当前一条记录作删除标记。2恢复逻辑删除记录命令:RECALL FOR 命令功能在当前数据库表中恢复指定范围内满足条件的记录,即去掉原来所带的记录删除标记,如果缺省短语,则只恢复当前一条记录。,记录的物理删除,3物理删除带有删除标记的记录格式:PACK命令功能将所有带有删除标记的记录从表中被物理地删除,被物理删除的记录,不可以恢复。4物理删除表中的全部记录命令:ZAP命令功能物理删除表中的全部记录,即该表成为一个无记录的空表。,删除示例,USE 学生表DE
20、LETE RECORD 7&逻辑删除7号记录PACK&物理删除7号记录DELETE ALL FOR 性别女LIST&显示结果如下,所有女学生记录都带有删除标记,4.7 自由表,在Visual FoxPro中要创建一个自由表时,应关闭所有的数据库,如果当前没有打开数据库,则创建的表是自由表。自由表是不属于任何数据库的表可以将自由表添加到数据库中,使之成为数据库表;也可以将数据库表从数据库中移出,使之成为自由表。,WORKHELPER 办公助手提供,自由表操作,1建立表命令:CREATE 命令功能:创建一个数据库表,数据库表建立后,处于打开状态。2打开表命令:USE 命令功能:打开指定的数据库表,
21、如果没有短语,则关闭当前正在使用的数据库表。3修改表结构命令:MODIFY STRUCTURE命令功能:打开指定的数据库表设计器,通过数据库表设计器选项卡中参数的重新设置,来修改数据库表结构。,4.7.2 数据库表与自由表的区别,数据库表与自由表相比,具有如下特点:可以为数据库表中的字段指定标题和添加注释;可以为数据库表的字段指定默认值和输入掩码;可以为数据库表规定字段级规则和记录级规则;数据库表可以使用长表名,在表中可以使用长字段名;数据库表的字段有默认的控件类;数据库表支持主关键字、参照完整性和表之间的联系;支持INSERT、UPDATE和DELETE事件的触发器。,4.8 统计与汇总,4
22、.8.1 统计记录个数命令COUNT FOR|WHILE TO 功能统计当前数据库表中指定范围内满足条件的记录个数,可以将统计结果存入内存变量中。示例COUNT TO CMale All FOR StudSex=男,WORKHELPER 办公助手提供,4.8.2 对表中数值字段求和,对数值字段求和命令格式为:SUM 范围 TO|array FOR|WHILE 命令功能:在当前表中对指定范围内满足条件的N型字段按列求和。将求和结果分别存入内存变量中。命令中的默认值为 ALL。如果无 短语,则对数据库表中所有数值字段求和。,4.8.3 对表中数值字段求平均值,对数值字段求平均值命令格式为:AVER
23、AGE 范围 TO|array FOR|WHILE 命令功能:对当前数据库表中指定范围内满足条件的N型数值字段的按列求平均值,将平均值结果分别存入内存变量中。命令中的默认值为 ALL。如果无 短语,则对数据库表中所有数值字段求平均值。,4.8.4 计算命令Calculate,命令Calculate范围For|whileTo|array功能在打开的表中,分别计算的值。可以由下列函数之一:算术平均值AVG(N型表达式)记录数函数CNT()最大值函数MAX()最小值函数MIN()求和函数SUM(N型表达式)另外还有STD、VAR、NPV函数。,求最大值,命令Calculate Max()To 范围
24、条件功能对指定条件的数字字段求最大值示例Calclulate Max(StudScore)To MaxScore All For StudNo=99070470,WORKHELPER 办公助手提供,求最小值,命令Calculate Min()To 范围 条件功能对指定条件的数字字段求最小值示例Calclulate Min(StudScore)To MaxScore All For StudNo=99070470,4.8.5 排序命令,命令Sort To On 范围 条件功能按指定的字段排序后,输出到一个指定的新表中排序字段列表:字段名1/A|/D/C,字段名2/A|/D/CA表示升序,D表示降
25、序,C表示排序不区分大小写示例Sort To SortStudScoreD ON STUDSCORE/D All For StudNo=99070470Use SortStudScoreDBrowse,4.8.6 分类汇总命令,命令total on to 汇总文件名 范围For|whilefields功能汇总之前必须先按分类字段排序汇总命令Total可对数据进行分类求和。在当前表中,对指定范围内满足条件的记录按关键字段名分类汇总求和,并生成一个新表文件,新表文件又称为汇总文件。示例Use StudScoreInfoSort To XX On StudNoTotal On StudNo TO S
26、tudSumScoreUse StudSumScoreBrow,4.9 数组与数据表记录交互操作,4.9.1 将当前数据库表中的记录复制到数组 命令格式1:SCATTER FIELDS MEMO TO BLANK 命令功能:将当前数据库表的当前记录中从第一个字段内容开始,依次复制到数组名的数组元素中。命令说明如果不使用FIELDS短语指定字段,则复制除备注型和通用型之外的全部字段。使用FIELDS短语,则按FIELDS里的字段顺序依次复制。使用MEMO短语,则同时复制备注字段。使用BLANK短语,则产生一个空数组,各数组元素的类型和大小与表中当前记录的对应字段相同,WORKHELPER 办公助
27、手提供,将记录复制到数组,USE StudInfoGO 5DisplaySCATTER TO ADISP MEMO,将当前数据库表中的记录复制到数组,命令格式2:COPY TO ARRAY FIELDS FOR WHILE 命令功能将当前数据库表的数据拷贝到数组,一次可以传送多条记录SCATTER命令一次只能传送一条记录。命令中数组必须已经定义。,数组应用实例,例:打开“StudInfo”数据库表,将表中第5、6、7号3个记录的数据,存放到二维数组A中,并显示存放的3个记录的数据。实现操作的命令序列如下:USE StudinfoGO 5DIME A(3,5)COPY TO ARRAY A NE
28、XT 3DISP MEMO显示的结果数据如下:,结果数据,4.9.2 将数组中的数据复制到当前记录,命令格式1:GATHER FROM FIELDS MEMO命令功能:将数组中的数据作为一个记录复制到表的当前记录中。命令说明使用FIELDS短语指定字段,则按照FIELDS的字段顺序依次复制。使用MEMO短语,则同时复制备注字段。如果数组元素个数多于记录字段数目,则多于部分省略。,将数组中的数据复制到当前记录,命令格式2:APPEND FROM ARRAY FIELDS FOR WHILE 命令功能将指定的一维数组中的数据作为一个记录添加到当前数据库表中;如果指定的数组是二维数组,则数组中每一行的数据作为数据库表的一条记录添加到当前数据库表中,一次添加多条记录。数组中列的数据和相应字段数据类型要一致,否则添加操作不成功。如果带FIELDS 短语,则数组的列数应和中的字段对应。APPEND FROM ARRAY命令也忽略备注型字段。,从数组中向数据表添加记录,USE StudInfoDIME A(5)A(1)=“99070478A(2)=王敏敏A(3)=女A(4)=10/05/80&或A(4)=1980-10-05A(5)=“990704APPEND FROM ARRAY ADISPLAY,WORKHELPER 办公助手提供,