《VisualFoxPro数据库、数据表命令操作.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro数据库、数据表命令操作.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四讲第四讲 Visual FoxPro数据数据库、数据表命令操作库、数据表命令操作 邵明东邵明东学时:学时:2节节教学内容l4.1建立项目l4.2VisualFoxPro数据库及其建立l4.3数据表操作命令l4.4数据表记录的浏览与显示l4.5记录定位l4.6表记录操作l4.7自由表l4.8统计与汇总l4.9数组与数据表记录交互操作教学难点及教学目标l重点及难点l数据表记录操作命令l记录定位l表记录的查询与浏览l统计与汇总l数组与数据表记录交互操作l教学目标l掌握数据库和数据表操作命令l掌握数据表记录的显示与检索l熟悉统计与汇总l熟悉数组与数据表记录交互操作的使用方法4.1建立项目l4.1.
2、1项目简介l1.VisualFoxPro的项目是文件、数据、文档和VisualFoxPro对象的集合。l2.项目管理器是VisualFoxPro中处理数据和对象的主要组织工具,是系统“控制中心”。l3.若要处理项目中某一特定类型的文件或对象,可选择相应的选项卡。在建立表、数据库、查询、表单、报表以及应用程序时,可以用“项目管理器”来组织和管理文件。项目管理器的选项卡l(1)数据选项卡:包括项目中的所有数据、自由表、查询和视图。l(2)文档选项卡:包括项目中的所有输入界面(表单)和输出界面(报表、标签)。l(3)类选项卡:包括开发人员使用和自己设计的类。l(4)代码选项卡:包括扩展名为.prg、
3、.app的程序和函数库APILibraries。l(5)其它选项卡:包括文本文件、菜单、其它文件。l(6)全部选项卡:包括以上所有内容。项目管理器窗口4.1.2项目的建立及打开l建立项目l命令lCreateProjectprojectname|?l功能l建立一个项目名为projectname的项目l系统自动建立一个.pjx的项目文件和一个.pjt的项目备注文件l打开项目l命令lModifyProjectprojectname|?l双击扩展名为.pjx的项目文件l功能l打开项目文件,进行数据、文件的组织管理4.2 Visual FoxPro数据库及其建立数据库及其建立l4.2.1基本概念lVis
4、ualFoxPro数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理l数据库表是以.dbf为扩展名的文件,简称表l建立数据库时,将建立VFP数据库管理系统管理数据库的三个文件:l扩展名为.dbc的数据库文件l扩展名为.dct的数据库备注(Memo)文件l扩展名为.dcx的数据库索引文件4.2.2建立与打开数据库l建立数据库l命令格式:lCREATEDATABASEDatabaseName|?l命令功能l创建一个数据库。l数据库建立后处于打开状态l参数介绍:lDatabaseName给出要建立的数据库名称l不指定数据名称或使用问号则弹出对话框请
5、用户输入数据库名称l如果系统设置SetSafetyOff,则如果指定的数据库名已经存在,则直接覆盖l如果系统设置SetSafetyOff,则出现覆盖提示对话框打开数据库命令l命令格式lOPENDATABASE数据库名|?EXCLUSIVE|SHAREDNOUPDATEVALIDATEl功能l打开指定的数据库l若没有指定数据库名,带“?”,将显示可以打开的数据库,由用户选择确认。使用命令打开数据库设计器l语法格式:lModifydatabaseDatabaseName|?NowaitNoeditl选项:lDatabaseName:给出要修改的数据库名,使用问号”?”或省略参数则打开“打开”对话框
6、lNowait:该选项只在程序中使用,在交互使用的命令窗口中无效。其作用是在数据库设计器打开后程序继续执行lNoedit:使用该选项中是打开数据库设计器,而禁止对数据库进行修改4.2.3删除数据库l命令lDeleteDatabaseDatabaseName|?DeletetablesRecyclel功能l指定Deletetables则在删除数据文件的同时从磁盘上删除该数据库所含的表(dbf文件)l指定Recycle将删除的数据库文件和表文件等放入Windows的回收站中WORKHELPER WORKHELPER 办公助手提供办公助手提供4.3数据表操作命令l创建数据表命令lCreateTabl
7、eNamel打开数据表命令lUseTableNamel关闭打开的数据表命令lUsel修改数据表结构命令lUseStudinfolModifyStructureWORKHELPER WORKHELPER 办公助手提供办公助手提供4.3.1使用命令建立数据表l操作步骤l设置工作目录l打开数据库l建立数据表l如:lSetDefaultToD:LNlOpenDatabaseStudScoreDBlCreateStudInfoWORKHELPER WORKHELPER 办公助手提供办公助手提供创建表示例(StudInfo)lStudInfo(学生信息表)lStudInfo(StudNo,StudName
8、,StudSex,StudBirthDay,ClassID)表设计器的使用输入字段名选择字段类型输入字段长度格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显示风格输入掩码是字段的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好!字段有效性属于完整性约束内容,以后再介绍添加注释便于以后对数据库进行维护命令:命令:Create StudInfo与表相关的内容及概念l1.字段名l关系的属性名或表的列名l表的各列名不能同名l字段名命名规范:l自由表字段
9、名最长为10个字符l数据库表字段名最长为128个字符l字段名必须以字母或汉字开头l字段名可以由字母、汉字、数字和下划线组成l字段名中不能包含空格l2.字段类型和宽度l字段的数据类型决定存储在字段中的值的数据类型l数据类型通过宽度限制可以决定存储数据的数量或精度与表相关的内容及概念l3.空值lNULL选项,表示是否允许字段为空值。l空值是缺值或还没有确定值,不能理解为任何意义的数据l与空(或空白)字符串、数值0等具有不同的含义l4.字段有效性组框l定义字段的有效性规则、违反规则时的提示信息和字段的默认值l5.显示组框l格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显示风格l输入掩码是字段
10、的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999l标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好!l6.字段注释l添加注释便于以后对数据库进行维护输入数据表字段输入记录对话框l在表设计器中,定义完字段名、类型、宽度后,单击确定按钮,会显示“现在输入数据记录吗?”提示框。l单击“是(Y)”按钮,进入输入记录操作;单击“否(N)”按钮,暂不输入记录,建立的数据库是一个空表,还没有数据记录的数据库表。输入记录对话框1.在记录输入操作窗口中,显示表中的字段名2.当前字段名后面有一条光带,表示在此输入字段
11、的数值3.输入数值后,按Tab键或Enter键光标移向下面一个字段的光带4.用户按顺序输入各个字段的数值,当输入完一个记录的所有数值后,进入下一个记录的数据输入。5.记录输入结束后,单击窗口右上角的“关闭”按钮或按Ctrl+W组合键,关闭窗口。6.输入备注字段数据时,首先双击该字段或按Ctrl+PageDown组合键,进入文本编辑窗口,输入文本内容,输入结束按Ctrl+W组合键,关闭窗口,返回记录输入操作窗口。4.3.2修改表结构Use StudInfoModi Stru显示表的结构命令l命令:lLISTSTRUCTURETOPRINTER|TOFILEl命令功能l显示当前数据库表的结构,包括
12、字段定义数据、记录数、更新时间等相关信息l例:UseStudInfolListStru4.4数据表记录的浏览与显示4.4.1使用Browse浏览记录l命令lbrowsel功能l浏览器窗口中可以进行浏览表中的数据、添加、删除和修改表中的记录等操作。lUseStudInfolBrowselBrowseNoModifylBrowseAllforstudno99070470浏览数据库表记录lUseStudInfolBrowseNoModify表中记录前带有“”符号的,表示该记录为当前记录。查询记录(BROWSE)l命令lBROWSE范围条件NOMODIFYl功能l显示符合条件的记录l范围:lAll:全
13、部数据lREST:当前记录和以后的全部记录lNEXTN:当前记录和以后的n-1条记录l条件:lFor逻辑条件:FORStudSex=男ORStudNo=99070470l示例:lUSESTUDINFOlBROSWEALLFORStudNo=99074702修改记录lUseStudInfolBrowse将光标定位在要修改的记录和字段值上,直接输入数据,修改即可4.4.2表记录显示l命令:lLISTDISPLAYFIELDSFOROFFTOPRINTERPROMPT|TOFILEl命令功能:l显示当前数据库表指定范围内所有满足条件的记录。lLIST命令为连续显示命令执行结果;lDISPLAY命令分
14、屏显示l范围lAll:所有记录所有记录lRest:从当前指针记录开始,后面的记录,包括当前记录从当前指针记录开始,后面的记录,包括当前记录lNext n:从当前指针记录开始,后面的从当前指针记录开始,后面的n-1记录,包括当前记记录,包括当前记录录lFOR条件:显示满足条件的记录记录显示命令使用示例OPENDATABASEStudScoreDBUSEStudInfoLIST&或使用命令:DISPLAYALLDISPLAYALLFORStudSex=男表记录显示示例lUseStudInfolListALLlGo2lListrestlGo2lListnext2lListallForStudNo=9
15、9070470lGotoplDisplayAll4.5记录定位l4.5.1记录绝对定位l命令格式为:lGO/GOTO|TOP|BOTTOMl命令功能l将记录指针直接定位到指定的记录。lGOTO和GO命令是等价的lTOP:首记录lBottom:尾记录4.5.2记录相对定位l命令:lSKIPnl命令功能l以当前记录位置为基准,将记录指针向前或向后移动,指针移动记录个数由数值n来确定。ln是正整数,则向表尾方向移动;ln是负整数,则向表头方向移动;l默认数值是1,则向表尾方向移动一个记录。4.5.3条件定位l命令:lLOCATEFORl命令功能l将记录指针定位在指定范围内满足条件的第一条记录上l如果
16、没有满足条件的记录则指针指向文件结束位置。如果缺省范围,指所有记录。l指针定位成功后,如果要使指针指向下一条满足条件的记录,应使用CONTINUE命令。l可以使用函数FOUND()判断是否找到了满足条件的记录。如果有满足条件的记录,该函数返回真(.T.),否则返回假(.F.)。4.5.4与记录定位相关的系统测试函数l(1)表文件尾测试函数:lEOF(|)l(2)表文件首测试函数:lBOF(|)l(3)记录号测试函数:lRECNO(|)l(4)记录个数测试函数:lRECCOUNT(|)l(5)记录删除测试函数:lDELETED(|)记录定位示例USEstudinfoGO3&记录指针指向3号记录D
17、ISPLAY&显示3号记录的数据?RECNO()&显示结果为:3,即当前记录指针仍指向3号记录?BOF()&显示结果为:.F.4.6表记录操作4.6.1记录的追加、插入与删除l1追加记录l命令:APPENDl命令功能l在当前表的尾部追加记录,交互输入新记录的数据l一次可以连续输入多条记录。l可以使用箭头移动光标l按键结束输入l2追加一条空白记录l命令:APPENDBLANKl命令功能l在当前表的尾部增加一条空白记录l可以用EDIT、CHANGE或BROWSE命令交互修改空白记录的值,或用REPLACE命令直接替换该空白记录的值。l3插入记录l命令:INSERTBEFOREBLANK记录插入示例
18、USEStudInfoGO6INSERTBLANK&在6号记录后面插入空白记录GO6&记录指针重新指向6号记录DISPLAYNEXT4APPEND4.6.2记录的编辑、修改及替换l1单个记录的编辑修改l命令:lEDIT/CHANGEFIELDSFORl命令功能l在指定范围内对满足条件的记录的指定的字段进行编辑修改。l的默认值是当前记录。l2记录替换l命令:lREPLACEWITH,WITHFORl命令功能l在指定范围内对满足条件的记录直接用的值替换字段的值,一次允许替换多个字段的值。l如果缺省参数,则只对当前记录作替换。替换示例USEStudInfogo6displayreplacestudn
19、amewith李伟,studsexwith男reco6Display&看看下面这条命令是什么意思Replaceallstudnamewith姓名+studname4.删除记录lVisualFoxPro6.0删除记录,分为逻辑删除记录和物理删除记录两种。l1记录的逻辑删除l命令:DELETEFORl命令功能l对当前数据库表中,指定范围内满足条件的记录作删除标记,如果缺省所有短语,则只给当前一条记录作删除标记。l2恢复逻辑删除记录l命令:RECALLFORl命令功能l在当前数据库表中恢复指定范围内满足条件的记录,即去掉原来所带的记录删除标记,如果缺省短语,则只恢复当前一条记录。记录的物理删除l3物
20、理删除带有删除标记的记录l格式:PACKl命令功能l将所有带有删除标记的记录从表中被物理地删除,被物理删除的记录,不可以恢复。l4物理删除表中的全部记录l命令:ZAPl命令功能l物理删除表中的全部记录,即该表成为一个无记录的空表。删除示例USE学生表DELETERECORD7&逻辑删除7号记录PACK&物理删除7号记录DELETEALLFOR性别女LIST&显示结果如下,所有女学生记录都带有删除标记4.7自由表l在VisualFoxPro中要创建一个自由表时,应关闭所有的数据库,如果当前没有打开数据库,则创建的表是自由表。l自由表是不属于任何数据库的表l可以将自由表添加到数据库中,使之成为数据
21、库表;也可以将数据库表从数据库中移出,使之成为自由表。WORKHELPER WORKHELPER 办公助手提供办公助手提供4.7.1自由表操作l1建立表l命令:CREATEl命令功能:创建一个数据库表,数据库表建立后,处于打开状态。l2打开表l命令:USEl命令功能:打开指定的数据库表,如果没有短语,则关闭当前正在使用的数据库表。l3修改表结构l命令:MODIFYSTRUCTUREl命令功能:打开指定的数据库表设计器,通过数据库表设计器选项卡中参数的重新设置,来修改数据库表结构。4.7.2数据库表与自由表的区别l数据库表与自由表相比,具有如下特点:l可以为数据库表中的字段指定标题和添加注释;l
22、可以为数据库表的字段指定默认值和输入掩码;l可以为数据库表规定字段级规则和记录级规则;l数据库表可以使用长表名,在表中可以使用长字段名;l数据库表的字段有默认的控件类;数据库表支持主关键字、参照完整性和表之间的联系;l支持INSERT、UPDATE和DELETE事件的触发器。4.8统计与汇总l4.8.1统计记录个数l命令lCOUNTFOR|WHILETOl功能l统计当前数据库表中指定范围内满足条件的记录个数,可以将统计结果存入内存变量中。l示例lCOUNTTOCMaleAllFORStudSex=男WORKHELPER WORKHELPER 办公助手提供办公助手提供4.8.2对表中数值字段求和
23、l对数值字段求和命令格式为:lSUM范围TO|arrayFOR|WHILEl命令功能:在当前表中对指定范围内满足条件的N型字段按列求和。将求和结果分别存入内存变量中。l命令中的默认值为ALL。如果无短语,则对数据库表中所有数值字段求和。4.8.3对表中数值字段求平均值l对数值字段求平均值命令格式为:lAVERAGE范围TO|arrayFOR|WHILEl命令功能:对当前数据库表中指定范围内满足条件的N型数值字段的按列求平均值,将平均值结果分别存入内存变量中。l命令中的默认值为ALL。如果无短语,则对数据库表中所有数值字段求平均值。4.8.4计算命令Calculatel命令lCalculate范
24、围For|whileTo|arrayl功能l在打开的表中,分别计算的值。l可以由下列函数之一:l算术平均值AVG(N型表达式)l记录数函数CNT()l最大值函数MAX()l最小值函数MIN()l求和函数SUM(N型表达式)l另外还有STD、VAR、NPV函数。求最大值l命令lCalculateMax()To范围条件l功能l对指定条件的数字字段求最大值l示例lCalclulateMax(StudScore)ToMaxScoreAllForStudNo=99070470WORKHELPER WORKHELPER 办公助手提供办公助手提供求最小值l命令lCalculateMin()To范围条件l功能
25、l对指定条件的数字字段求最小值l示例lCalclulateMin(StudScore)ToMaxScoreAllForStudNo=990704704.8.5排序命令l命令lSortToOn范围条件l功能l按指定的字段排序后,输出到一个指定的新表中l排序字段列表:字段名1/A|/D/C,字段名2/A|/D/ClA表示升序,D表示降序,C表示排序不区分大小写l示例lSortToSortStudScoreDONSTUDSCORE/DAllForStudNo=99070470lUseSortStudScoreDlBrowse4.8.6分类汇总命令l命令ltotalonto汇总文件名范围For|whi
26、lefieldsl功能l汇总之前必须先按分类字段排序l汇总命令Total可对数据进行分类求和。l在当前表中,对指定范围内满足条件的记录按关键字段名分类汇总求和,并生成一个新表文件,新表文件又称为汇总文件。l示例lUseStudScoreInfolSortToXXOnStudNolTotalOnStudNoTOStudSumScorelUseStudSumScorelBrow4.9数组与数据表记录交互操作4.9.1将当前数据库表中的记录复制到数组l命令格式1:SCATTERFIELDSMEMOTOBLANKl命令功能:l将当前数据库表的当前记录中从第一个字段内容开始,依次复制到数组名的数组元素中
27、。l命令说明l如果不使用FIELDS短语指定字段,则复制除备注型和通用型之外的全部字段。l使用FIELDS短语,则按FIELDS里的字段顺序依次复制。l使用MEMO短语,则同时复制备注字段。l使用BLANK短语,则产生一个空数组,各数组元素的类型和大小与表中当前记录的对应字段相同WORKHELPER WORKHELPER 办公助手提供办公助手提供将记录复制到数组USEStudInfoGO5DisplaySCATTERTOADISPMEMO将当前数据库表中的记录复制到数组l命令格式2:lCOPYTOARRAYFIELDSFORWHILEl命令功能l将当前数据库表的数据拷贝到数组,一次可以传送多条
28、记录lSCATTER命令一次只能传送一条记录。l命令中数组必须已经定义。数组应用实例l例:打开“StudInfo”数据库表,将表中第5、6、7号3个记录的数据,存放到二维数组A中,并显示存放的3个记录的数据。实现操作的命令序列如下:USEStudinfoGO5DIMEA(3,5)COPYTOARRAYANEXT3DISPMEMOl显示的结果数据如下:结果数据4.9.2将数组中的数据复制到当前记录l命令格式1:lGATHERFROMFIELDSMEMOl命令功能:l将数组中的数据作为一个记录复制到表的当前记录中。l命令说明l使用FIELDS短语指定字段,则按照FIELDS的字段顺序依次复制。l使
29、用MEMO短语,则同时复制备注字段。l如果数组元素个数多于记录字段数目,则多于部分省略。将数组中的数据复制到当前记录l命令格式2:lAPPENDFROMARRAYFIELDSFORWHILEl命令功能l将指定的一维数组中的数据作为一个记录添加到当前数据库表中;l如果指定的数组是二维数组,则数组中每一行的数据作为数据库表的一条记录添加到当前数据库表中,一次添加多条记录。l数组中列的数据和相应字段数据类型要一致,否则添加操作不成功。l如果带FIELDS短语,则数组的列数应和中的字段对应。lAPPENDFROMARRAY命令也忽略备注型字段。从数组中向数据表添加记录USEStudInfoDIMEA(5)A(1)=“99070478A(2)=王敏敏A(3)=女A(4)=10/05/80&或A(4)=1980-10-05A(5)=“990704APPENDFROMARRAYADISPLAYWORKHELPER WORKHELPER 办公助手提供办公助手提供