第四讲VisualFoxPro数据库、数据表命令操作邵明东学时:2节教学内容4.1建立项目4.2VisualFoxPro数据库及其建立4.3数据表操作命令4.4数据表记录的浏览与显示4.5记录定位4.6表记录操作4.7自由表4.8统计与汇总4.9数组与数据表记录交互操作教学难点及教学目标重点及难点数据表记录操作命令记录定位表记录的查询与浏览统计与汇总数组与数据表记录交互操作教学目标掌握数据库和数据表操作命令掌握数据表记录的显示与检索熟悉统计与汇总熟悉数组与数据表记录交互操作的使用方法4.1建立项目4.1.1项目简介1.VisualFoxPro的项目是文件、数据、文档和VisualFoxPro对象的集合。2.项目管理器是VisualFoxPro中处理数据和对象的主要组织工具,是系统“控制中心”。3.若要处理项目中某一特定类型的文件或对象,可选择相应的选项卡。在建立表、数据库、查询、表单、报表以及应用程序时,可以用“项目管理器”来组织和管理文件。项目管理器的选项卡(1)数据选项卡:包括项目中的所有数据、自由表、查询和视图。(2)文档选项卡:包括项目中的所有输入界面(表单)和输出界面(报表、标签)。(3)类选项卡:包括开发人员使用和自己设计的类。(4)代码选项卡:包括扩展名为.prg、.app的程序和函数库APILibraries。(5)其它选项卡:包括文本文件、菜单、其它文件。(6)全部选项卡:包括以上所有内容。项目管理器窗口4.1.2项目的建立及打开建立项目命令CreateProject[projectname|?]功能建立一个项目名为projectname的项目系统自动建立一个.pjx的项目文件和一个.pjt的项目备注文件打开项目命令ModifyProjectprojectname|?双击扩展名为.pjx的项目文件功能打开项目文件,进行数据、文件的组织管理4.2VisualFoxPro数据库及其建立4.2.1基本概念VisualFoxPro数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理数据库表是以.dbf为扩展名的文件,简称表建立数据库时,将建立VFP数据库管理系统管理数据库的三个文件:扩展名为.dbc的数据库文件扩展名为.dct的数据库备注(Memo)文件扩展名为.dcx的数据库索引文件4.2.2建立与打开数据库建立数据库命令格式:CREATEDATABASE[DatabaseName|?]命令功能创建一个数据库。数据库建立后处于打开状态参数介绍:DatabaseName给出要建立的数据库名称不指定数据名称或使用问号则弹出对话框请用户输入数据库名称如果系统设置SetSafetyOff,则如果指定的数据库名已经存在,则直接覆盖如果系统设置SetSafetyOff,则出现覆盖提示对话框打开数据库命令命令格式OPENDATABASE[<数据库名>|?][EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]功能打开指定的数据库若没有指定数据库名,带“?”,将显示可以打开的数据库,由用户选择确认。使用命令打开数据库设计器语法格式:Modifydatabase[DatabaseName|?][Nowait][Noedit]选项:DatabaseName:给出要修改的数据库名,使用问号”?”或省略参数则打开“打开”对话框Nowait:该选项只在程序中使用,在交互使用的命令窗口中无效。其作用是在数据库设计器打开后程序继续执行Noedit:使用该选项中是打开数据库设计器,而禁止对数据库进行修改4.2.3删除数据库命令DeleteDatabaseDatabaseName|?[Deletetables][Recycle]功能指定Deletetables则在删除数据文件的同时从磁盘上删除该数据库所含的表(dbf文件)指定Recycle将删除的数据库文件和表文件等放入Windows的回收站中WORKHELPER办公助手提供4.3数据表操作命令创建数据表命令CreateTableName打开数据表命令UseTableName关闭打开的数据表命令Use修改数据表结构命令UseStudinfoModifyStructureWORKHELPER办公助手提供4.3.1使用命令建立数据表操作步骤设置工作目录打开数据库建立数据表如:SetDefaultToD:\LNOpenDatabaseStudScoreDBCreateStudInfoWORKHELPER办公助手提供创建表示例(StudInfo)StudInfo(学生信息表)StudInfo(StudNo,StudName,StudSex,StudBirthDay,ClassID)表设计器的使用输入字段名选择字段类型输入字段长度格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显示风格输入掩码是字段的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好!字段有效性属于完整性约束内容,以后再介绍添加注释便于以后对数据库进行维护命令:CreateStudInfo与表相关的内容及概念1.字段名关系的属性名或表的列名表的各列名不能同名字段名命名规范:自由表字段名最长为10个字符数据库表字段名最长为128个字符字段名必须以字母或汉字开头字段名可以由字母、汉字、数字和下划线组成字段名中不能包含空格2.字段类型和宽度字段的数据类型决定存储在字段中的值的数据类型数据类型通过宽度限制可以决定存储数据的数量或精度与表相关的内容及概念3.空值NULL选项,表示是否允许字段为空值。空值是缺值或还没有确定值,不能理解为任何意义的数据与空(或空白)字符串、数值0等具有不同的含义4.字段有效性组框定义字段的有效性规则、违反规则时的提示信息和字段的默认值5.显示组框格式:是一个输出掩码,决定字段在表单、浏览窗口等界面的显示风格输入掩码是字段的一种属性,用以限制或控制用户输入的格式。如:规定教师的编号字母T和1到4位数字,则掩码为T9999标题用于字段显示时的内容,不指定标题则显示字段名,通常字段名用英文或缩写,则指定标题使界面友好!6.字段注释添加注释便于以后对数据库进行维护输入数据表字段输入记录对话框在表设计器中,定义完字段名、类型、宽度后,单击确定按钮,会显示“现在输入数据记录吗?”提示框。单击“是(Y)”按钮,进入输入记录操作;单击“否(N)”按钮,暂不输入记录,建立的数据库是一个空表,还没有数据记录的数据库表。输入记录对话框1.在记录输入操作窗口中,显示表中的字段名2.当前字段名后面有一条光带,表示在此输入字段的数值3.输入数值后,按Tab键或Enter键光标移向下面一个字段的光带4.用户按顺序输入各个字段的数值,当输入完一个记录的所有数值后,进入下一个记录的数据输入。5.记录输入结束后,单击窗口右上角的“关闭”按钮或按Ctrl+W组合键,关闭窗口。6.输入备注字段数据时,首先双击该字段或按Ctrl+PageDown组合键,进入文本编辑窗口,输入文本内容,输入结束按Ctrl+W组合键,关闭窗口,返回记录输入操作窗口。4.3.2修改表结构UseStudInfoModiStru显示表的结构命令命令:LISTSTRUCTURE[TOPRINTER|TOFILE文件名]命令功能显示当前数据库表的结构,包括字段定义数据、记录数、更新时间等相关信息例:UseStudInfoListStru4.4数据表记录的浏览与显示4.4.1使用Browse浏览记录命令browse功能浏览器窗口中可以进行浏览表中的数据、添加、删除和修改表中的记录等操作。UseStudInfoBrowseBrowseNoModifyBrowseAllforstudno'99070470'浏览数据库表记录UseStudInfoBrowseNoModify表中记录前带有“►”符号的,表示该记录为当前记录。查询记录(BROWSE)命令BROWSE[范围][条件][NOMODIFY]功能显示符合条件的记录范围:All:全部数据REST:当前记录和以后的全部记录NEXTN:当前记录和以后的n-1条记录条件:For逻辑条件:FORStudSex=‘男’ORStudNo=‘99070470示例:USESTUDINFOBROSWEALLFORStudNo=‘9907470’2.修改记录UseStudInfoBrowse将光标定位在要修改的记录和字段值上,直接输入数据,修改即可4.4.2表记录显示命令:LIST/DISPLAY[范围][[FIELDS]字段名表][FOR条件][OFF][TOPRINTER[PROMPT]|TOFILE文件名]命令功能:显示当前数据库表指定范围内所有满足条件的记录。LIST命令为连续显示命令执行结果;DISPLAY命令分屏显示范围All:所有记录Rest:从当前指针记录开始,后面的记录,包括当前记录Nextn:从当前指针记录开始,后面的n-1记录,包括当前记录FOR条件:显示满足条件的记录记录显示命令使用示例OPENDATABASEStudScoreDBUSEStudInfoLIST&&或使用命令:DISPLAYALLDISPLAYALLFORStudSex=‘男’表记录显示示例UseStudInfoListALLGo2ListrestGo2Listnext2ListallForStudNo=‘99070470’GotopDisplayAll4.5记录定位4.5.1记录绝对定位命令格式为:GO/GOTO记录号|TOP|BOTTOM命令功能将记录指针直接定位到指定的记录。GOTO和GO命令是等价的TOP:首记录Bottom:尾记录4.5.2记录相对定位命令:SKIP[n]命令功能以当前记录位置为基准,将记录指针向前或向后移动,指针移动记录个数由数值n来确定。n是正整数,则向表尾方向移动;n是负整数,则向表头方向移动;默认数值是1,则向表尾方向移动一个记录。4.5.3条件定位命令:LOCATE[范围]FOR[条件表达式]命令功能将记录指针定位在指定范围内满足条件的第一条记录上如果没有满足条件的记录则指针指向文件结束位置。如果缺省范围,指所有记录。指针定位成功后,如果要使指针指向下一条满足条件的记录,应使用CONTINUE命令。可以使用函数FOUND()判断是否找到了满足条件的记录。如果有满足条件的记录,该函数返回真(.T.),否则返回假(.F.)。4.5.4与记录定位相关的系统测试函数(1)表文件尾测试函数:EOF([工作区号|表别名])(2)表文件首测试函数:BOF([工作区号|表别名])(3)记录号测试函数:RECNO([工作区号|表别名])(4)记录个数测试函数:RECCOUNT([工作区号|表别名])(5)记录删除测试函数:DELETED([工作区号|表别名])记录定位示例USEstudinfoGO3&&记录指针指向3号记录DISPLAY&&显示3号记录的数据?RECNO()&&显示结果为:3,即当前记录指针仍指向3号记录?BOF()&&显示结果为:.F.4.6表记录操作4.6.1记录的追加、插入与删除1.追加记录命令:APPEND命令功能在当前表的尾部追加记录,交互输入新记录的数据一次可以连续输入多条记录。可以使用箭头移动光标按ESC