第二章数据表的建立与操作2.1表结构的建立2.2表内容的输入2.3表内容的编辑和修改2.4表内容的索引及查找2.5表的其他操作2.6文件管理类命令2.7小结本章教学内容:1、建表的方法2、表结构的基本操作3、表记录的基本操作4、排序、索引的概念5、数据的查询、数据的统计本章的教学目的与要求:本章的教学重点与难点:重点:建表的方法、表记录的基本操作、表结构的基本操作、索引的概念、复合索引的建立及应用难点:排序、命令方式建立索引§2.1表结构的建立•2.1.1基本数据表•2.1.2表结构的建立•2.1.3表结构的显示与修改§2.1.1基本数据表1.基本数据表VFP是关系型数据库管理系统,用二维表示实体及实体间的关系,二维表由栏目头与表格行组成(见P61页),栏目头中的每个数据项称为字段,表格行称为记录。因此,建立一个表就是要确定每个字段的名称、类型、长度、小数位数(即建立表结构)和输入记录。VisualFoxPro系统对表结构的规定(1)文件名:数据表文件的扩展名为.DBF,文件名长度不能超过225个字符。(2)字段名:必须以字母或汉字开头,可以包括字母、汉字、数字和下划线,不要超过10个字符。(3)字段数:一个表文件最多可以有255个字段。(3)字段类型:共13种。它们是:字符型(C),数值型(N),逻辑型(L),日期型(D),备注型(M),通用型(G),整型(N),双精度型(N),浮点型(N),日期时间型(T),二进制字符型(C)和二进制备注型(M)§2.1.2表结构的建立(4)字段宽度:不同类型的字段具有不同的宽度。(5)小数位:数值型数据需要规定小数位数。(6)使用NULL值:可以指定字段是否接受NULL值,它是一个不存在的值。字段宽度逻辑型日期型备注型通用型二进制备注型整型日期时间型双精度型货币型固定宽度184444888§2.1.2表结构的建立2.设计表结构如上所说,首先确定所有字段的名称、类型、长度、小数位数字段名类型宽度小数位数学号字符型6姓名字符型8性别逻辑型1出生年月日期型8简历备注型4奖学金数值型62照片通用型4学生基本情况表(学生.DBF)§2.1.2表结构的建立字段名类型宽度小数位数课程号字符型4课程名字符型20课时数数值型30学分数数值型41开课学期字符型1考查标志逻辑型1课程情况表(课程.DBF)字段名类型宽度小数位数课程号字符型6学号字符型4成绩数值型51学生成绩表(成绩.DBF)§2.1.2表结构的建立3.建立表有二种方式可创建表,一是利用表设计器,另一种是利用表向导。⑴利用表设计器创建表①菜单方式单击“文件”菜单中的新建或工具栏中的“新建”按钮将弹新建对话框,在新建对话框中选“表”和“新建文件”后,弹出创建对对话框,在创建对话框的输入表名位置输入表名并在窗口中选择存放位置,点“保存”,就进入了表设计器,在表设计器窗口中输入表结构。§2.1.2表结构的建立②命令方式create[表文件名/?]数据输入完成后按CTRL+W或点关闭按钮则存盘退出。出现“现在输入数据记录?”时,点“是Y”则输入记录,否则不输入。若点“是Y”,则弹出记录输入窗口,可输入记录各字段的内容,在记录的最后一个字段回车时,自动弹出下一个记录,不再输入记录时按CTRL+W或点关闭按钮。注:备注字段在按CTRL+UP或CTRL+DOWN才能输入内容P84表文件的扩展名默认为.DBF§2.1.2表结构的建立文件位置设定约定用户文件均建立在指定目录下。文件位置设定操作步骤如下:步骤一:选定【工具】菜单的【选项】命令,出现如图所示界面;§2.1.2表结构的建立步骤二:选定【文件位置】选项卡,在列表中选定【默认目录】选项,按【修改】按钮,出现如图所示【更改文件位置】对话框;步骤三:选定【使用(U)默认目录】复选框,在“定位(L)默认目录”文本框键入路径D:\VisualFoxProExercise(或通过文本框右侧标有三个圆点的对话按钮选定路径);步骤四:在【更改文件位置】对话框按【确定】按钮返回【选项】界面,按【确定】按钮关闭该界面。可用命令:SETDEFAULTTOD:\VisualFoxProExercise§2.1.2表结构的建立⑵利用表向导利用表向导创建表适应于已有样表的情况。①单击“工具”菜单“向导”中的“表”②在对话框的“加入”项加入样表并选择样表,将样表中的字段通过加入表中,点下一步③若是自由表则选“创建自由表”,或是库表,则选“添加到数据库”并选择数据库,点下一步。§2.1.2表结构的建立④修改完每个字段的四要素后,点下一步⑤选择一个主关键字后点下一步⑥点完成,输入表名并保存,以后与前面操作相同。例:分别用上述方式建立:学生.DBF课程.DBF成绩.DBF2.通过复制产生表结构COPYSTRUCTURETO文件名[FIELDS字段名表]§2.1.2表结构的建立§2.1.3表结构的显示和修改1.显示表结构•格式一:LISTSTRUCTURE[TOPRINTER[PROMPT]/TOFILE文本文件名]•格式二:DISPLAYSTRUCTURE[TOPRINTER[PROMPT]/TOFILE文本文件名]功能:显示当前表结构的有关信息。包括表文件名、记录个数、最后一次修改日期、各字段的字段号、字段名、类型、宽度和小数位,一条记录的字节总数。参数说明:•[TOPRINTER]子句表示将操作结果送到打印机。后面可以接[PROMPT]参数,这一参数的在执行打印命令之前,先打开“打印设置”对话框,用以对打印机有关参数(如纸张大小、打印范围等)进行设置。[PROMPT]参数只能紧接TOPRINTER命令。•[TOFILE]子句表示将操作结果输出到指定的磁盘文件中。•LISTSTRUCTURE和DISPLAYSTRUCTURE命令的区别•DISPLAYSTRUCTURE在每显示一屏信息后暂停,等待用户按任意一键后继续显示;•LISTSTRUCTURE显示信息时没有周期性暂停,而是连续向下显示,直到显示完毕。•显示学生表的结构•USE学生•LISTSTRUCTURE§2.1.3表结构的显示和修改2.修改表文件的结构•格式:MODIFYSTRUCTURE•功能:显示表设计器,修改当前表文件的结构。•说明:如果没有在当前选定工件区打开表,则显示“打开”对话框,允许用户从中选择一个要修改的表。•对表结构的更改包括:添加和删除字段;修改字段名称、大小和数据类型;添加、删除或修改索引标识,以及指定是否支持NULL值等。•(1)、删除字段•将光标移到要删字段的任一位置或单击该字段的任意位置;按Ctrl+D删除该字段或单击【删除】命令按钮;按Ctrl+W或单击【确定】按钮存盘,返回命令窗口。•说明:若删除了某些字段,对应字段的内容也丢失。§2.1.3表结构的显示和修改(2)、插入新字段将光标移到要插入字段的下一行的任一位置或单击要插入字段的下一字段;按Ctrl+I或单击【插入】按钮,便可插入一个新的空字段,在空字段的位置上可以填入新字段名称、类型、宽度及小数位。按Ctrl+W或单击【确定】按钮存盘,返回命令窗口。(3)、修改字段名、宽度、类型和小数位将光标移到要修改处直接进行修改。①一个字段有四个结构参数项,每次只能修改其中的一项。如果需要修改其中的多项,为了不丢失数据,应分为多次进行修改,每次修改存盘后继续修改,直到结束。②修改字段类型时,可能造成数据丢失。③无论进行何种修改,退出MODIFYSTRUCTURE命令的方法与退出CREATE命令环境的方法相同。§2.1.3表结构的显示和修改§2.2表内容的输入•2.2.1表文件的打开与关闭•2.2.2表内容的输入•2.2.3表内容的显示§2.2.1表文件的打开与关闭1.打开和关闭表⑴打开表打开表实质上是表的数据进入内存,表的字段成为字段变量,有二种方式:①命令方式Use[表名|?][EXCLUSIVE][SHARED][ALIAS别名][IN工作区号|别名]说明:1)EXCLUSIVE是以独占方式打开;2)备注文件同时打开;3)ALIAS别名打开时给表一个别名;4)IN工作区号|别名指定打开表的工作区;5)一个工作区只能打开一个表,一个表可以在多个工作区打开;6)打开表时,记录指针指向第一条记录②菜单方式方法一:利用“文件”菜单中的“打开”选项或工具栏的“打开”按钮§2.2.1表文件的打开与关闭方法二:单击菜单栏中的“窗口”菜单中的“数据工作期”选项,在弹出的对话框中点“打开”,在弹出的“打开对话框”中选择文件。⑵关闭表有二种方式①命令方式USECLOSETABELSCLEARALLCLOSEALL功能:关闭当前工作区打开的表§2.2.1表文件的打开与关闭②菜单方式单击“窗口”菜单中的“数据工作期”,在打开的“数据工作期”对话窗口中选择“关闭”注:“数据工作期”对话窗口中的“属性”可用于修改表结构、建立并选择索引、定义筛选条件。“数据工作期”对话窗口中的“浏览”可用于查看、编辑、追加记录。§2.2.2表内容的输入2.表内容的输入表的数据录入有多种方法:第一种方法是在表结构建立时录入数据;第二种方法是在表结构建成并存盘关闭了“表设计器”之后,利用命令向表中追加记录。①命令方式格式:APPEND[BLANK]•参数描述:•[BLANK]:在当前表的末尾添加一条空记录。•功能:在表的末尾添加一个或多个新记录。•说明:•■可以在只有表结构而没有记录的空表中添加记录,也可以在已经录入数据的表中的尾部追加记录;•■它可以向当前表的尾部追加一条或多条新记录。省略可选项,§2.2.2表内容的输入记录的插入格式:Insert[blank][before]功能:在表的当前位置插入记录说明:有BLANK是插入一条空记录有before,则在当前记录前插入记录,无则在后插入。使用插入命令后,将进入插入窗口,输入完毕,CLTRL+W或点关闭退出§2.2.2表内容的输入②菜单方式打开表文件后,选择”显示”“浏览”进入表的浏览窗口追加任意条记录:选择”显示”“追加方式”命令.追加一个空记录:选择”表”“追加新记录”命令批量追加记录:选择”表”“追加记录(A)…”§2.2.2表内容的输入•备注型数据输入:备注型字段由于其长度不定,因此,该字段数据不能同其它类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。备注型字段数据输入的操作方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在“编辑”窗口或“浏览”窗口,把光标移到备注型字段下双击,即可进入备注字段的编辑窗口。在这个窗口内,用户可以输入或修改备注型数据。§2.2.2表内容的输入•通用型数据的输入:通用型字段数据多数是用于存储OLE对象,如图象、声音、电子表格和文字处理文档等,因为其长度的不确定性,通用型字段数据也不能和常规类型的字段一样在表“编辑”窗口或表“浏览”窗口输入。通用型字段数据输入的方法是,打开输入数据的表;进入表“编辑”窗口或“浏览”窗口;在表“编辑”窗口或表“浏览”窗口下,把光标移到通用型字段下双击,即可进入通用型字段的数据编辑窗口。然后再打开“编辑”菜单,选择“插入对象”;在“插入对象”窗口,在“对象类型”列表框中,选择插入对象类型“BMP图像”;选择“新建”或“由文件创建”按钮,BMP文件就被插入到通用字段中了。§2.2.2表内容的输入有命令方式和菜单方式二种①命令方式(1)显示命令格式一:LIST[OFF][FIELDS字段名列表][范围][FOR条件][WHILE条件][TOPRINTER[PROMPT]/TOFILE文本文件名]•格式二:DISPLAY[OFF][FIELDS字段名列表][范围][FOR条件][WHILE条件][TOPRINTER[PROMPT]/TOFILE文本文件名]功能:显示当前工作区中打开的表中的指定记录说明:1)有OFF时不显示记录号2)fields字段名表指定要显示的字段,省略时指所有字段§2.2.3表内容的显示3)范围,指