资源描述
Visual Foxpro Visual Foxpro 程序设计教程程序设计教程第第4章章 表的基本操作表的基本操作 第第4 4章章 表的基本操作表的基本操作n4.1 4.1 表的建立表的建立n4.2 4.2 表的显示与维护表的显示与维护n4.3 4.3 表的排序与索引表的排序与索引n4.4 4.4 表的统计与计算表的统计与计算n4.5 4.5 多个表的操作多个表的操作 nVFP中的表分为两种:中的表分为两种:自由表自由表和和数据库表数据库表。每个表均对应一个文件,扩展名为每个表均对应一个文件,扩展名为.DBFn表由表由表结构表结构和相应的和相应的记录记录组成。表结构相当组成。表结构相当于表格的框架,由各字段构成;记录则是表于表格的框架,由各字段构成;记录则是表中各行存放的数据。中各行存放的数据。学生表学生表学号学号姓名姓名性别性别出生日期出生日期少数民族否少数民族否籍贯籍贯简历简历2002010101张小勇张小勇男男84/02/14.T.2002010102李四李四男男83/10/25.F.4.1 4.1 表的建立表的建立n4.1.1 4.1.1 设计表的结构设计表的结构n4.1.2 4.1.2 建立表的结构建立表的结构n4.1.3 4.1.3 向表输入记录向表输入记录4.1.1 4.1.1 设计表的结构设计表的结构4.1.1 4.1.1 设计表的结构设计表的结构字段名字段名字段类型字段类型字段宽度字段宽度小数位数小数位数NULL学号学号字符型字符型6否否姓名姓名字符型字符型10是是性别性别字符型字符型2是是出生日期出生日期日期型日期型8是是少数民族否少数民族否逻辑型逻辑型1是是籍贯籍贯字符型字符型10是是入学成绩入学成绩数值型数值型51是是简历简历备注型备注型4是是照片照片通用型通用型4是是4.1.1 4.1.1 设计表的结构设计表的结构n1.1.字段名字段名n字段名是表中每个字段的名字。字段名是表中每个字段的名字。n它必须以汉字、字母或下划线开头,由汉它必须以汉字、字母或下划线开头,由汉字、字母、数字或下划线组成。字、字母、数字或下划线组成。n自由表中的字段名最多为自由表中的字段名最多为1010个字符,数据个字符,数据库表中的字段名最多为库表中的字段名最多为128128个字符。当数个字符。当数据库表转化为自由表时截去超长部分的字据库表转化为自由表时截去超长部分的字符。符。4.1.1 4.1.1 设计表的结构设计表的结构n2.2.字段类型字段类型n字段类型字段类型表示该字段中存放数据的类型。表示该字段中存放数据的类型。n在第三章中,已经介绍了在第三章中,已经介绍了Visual FoxProVisual FoxPro的类型类型。的类型类型。n在设计表的结构时,可根据需要确定表中在设计表的结构时,可根据需要确定表中各字段的类型各字段的类型4.1.1 4.1.1 设计表的结构设计表的结构n3.3.字段宽度字段宽度n字段宽度用以表明该字段允许存放的最大字段宽度用以表明该字段允许存放的最大字节数或数值位数。字节数或数值位数。n在建立表结构时,应根据所存数据的具体在建立表结构时,应根据所存数据的具体情况规定情况规定字符型、数值型、浮动型字符型、数值型、浮动型这这3 3种种字段的宽度,若有小数部分则小数点也占字段的宽度,若有小数部分则小数点也占一位。一位。4.1.1 4.1.1 设计表的结构设计表的结构n3.3.字段宽度(续)字段宽度(续)n其他类型字段的宽度均由系统统一规定,其他类型字段的宽度均由系统统一规定,它们是:它们是:货币型货币型、日期型日期型、日期时间型日期时间型、双精度型双精度型字段宽度均为字段宽度均为8 8字节,字节,逻辑型逻辑型字字段宽度为段宽度为1 1字节,字节,整型、备注型整型、备注型字段和字段和通通用型用型字段宽度均为字段宽度均为4 4字节。字节。4.1.1 4.1.1 设计表的结构设计表的结构n3.3.字段宽度(续)字段宽度(续)n注意,注意,备注型和通用型字段的备注型和通用型字段的内容内容都没有都没有直接存放在表文件中,而是存放在一个与直接存放在表文件中,而是存放在一个与表文件同名的表文件同名的备注文件备注文件(扩展名为(扩展名为.fpt.fpt)中。它们中。它们4 4个字节的宽度仅用于存放有关个字节的宽度仅用于存放有关内容在备注文件中的内容在备注文件中的实际存储地址实际存储地址。4.1.1 4.1.1 设计表的结构设计表的结构n4.4.小数位数小数位数n只有数值型与浮动型字段才有小数位数,只有数值型与浮动型字段才有小数位数,小数位数至少应比该字段的宽度值小小数位数至少应比该字段的宽度值小2 2。n若字段值是整数,则应定义小数位数为若字段值是整数,则应定义小数位数为0 0。n双精度型字段允许输入小数,但不需事先双精度型字段允许输入小数,但不需事先定义小数位数,小数点将在输入数据时输定义小数位数,小数点将在输入数据时输入。入。4.1.1 4.1.1 设计表的结构设计表的结构n5.5.是否允许为空是否允许为空n表示是否允许字段接受空值(表示是否允许字段接受空值(NULLNULL)。)。n空值是指无确定的值,它与空字符串、数空值是指无确定的值,它与空字符串、数值值0 0等是不同的。例如,表示成绩的字段,等是不同的。例如,表示成绩的字段,空值表示没有确定成绩,空值表示没有确定成绩,0 0表示表示0 0分。分。n一个字段是否允许为空值与字段的性质有一个字段是否允许为空值与字段的性质有关,例如作为关键字的字段是不允许为空关,例如作为关键字的字段是不允许为空值的。值的。4.1 4.1 表的建立表的建立n4.1.1 4.1.1 设计表的结构设计表的结构n4.1.2 4.1.2 建立表的结构建立表的结构n4.1.3 4.1.3 向表输入记录向表输入记录4.1.2 4.1.2 建立表的结构建立表的结构n1.1.菜单操作方式菜单操作方式n在在Visual FoxProVisual FoxPro中,要建立文件可选择中,要建立文件可选择“文件文件”菜单项中的菜单项中的“新建新建”命令,系统命令,系统提供一系列的窗口与对话框,用户只要根提供一系列的窗口与对话框,用户只要根据屏幕的提示,就可完成有关操作。据屏幕的提示,就可完成有关操作。“新新建建”对对话话框框表设计器窗口表设计器窗口4.1.2 4.1.2 建立表的结构建立表的结构是否输入记录对话框是否输入记录对话框4.1.2 4.1.2 建立表的结构建立表的结构4.1.2 4.1.2 建立表的结构建立表的结构n2.2.命令操作方式命令操作方式n可以在命令窗口中使用可以在命令窗口中使用CREATECREATE命令来建立命令来建立表的结构。其命令格式是:表的结构。其命令格式是:CREATE CREATE|?|?n在命令中使用在命令中使用?或省略该参数时,打开或省略该参数时,打开“创建创建”对话框,提示输入表名并选择保对话框,提示输入表名并选择保存表的位置。存表的位置。nCREATECREATE命令执行后,屏幕上弹出表设计器命令执行后,屏幕上弹出表设计器窗口,以后的操作方法与菜单操作相同。窗口,以后的操作方法与菜单操作相同。4.1 4.1 表的建立表的建立n4.1.1 4.1.1 设计表的结构设计表的结构n4.1.2 4.1.2 建立表的结构建立表的结构n4.1.3 4.1.3 向表输入记录向表输入记录4.1.3 4.1.3 向表输入记录向表输入记录记记录录输输入入窗窗口口第第4 4章章 表的基本操作表的基本操作n4.1 4.1 表的建立表的建立n4.2 4.2 表的显示与维护表的显示与维护n4.3 4.3 表的排序与索引表的排序与索引n4.4 4.4 表的统计与计算表的统计与计算n4.5 4.5 多个表的操作多个表的操作 4.2 4.2 表的显示与维护表的显示与维护n4.2.1 4.2.1 表的打开与关闭表的打开与关闭n4.2.2 4.2.2 表的显示表的显示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表记录指针的定位表记录指针的定位n4.2.5 4.2.5 表记录的增加与删除表记录的增加与删除n4.2.6 4.2.6 表的复制表的复制 4.2.1 4.2.1 表的打开与关闭表的打开与关闭n1.1.表的打开n菜单方式菜单方式n命令方式命令方式4.2.1 4.2.1 表的打开与关闭表的打开与关闭n1.1.表的打开n菜单方式菜单方式4.2.1 4.2.1 表的打开与关闭表的打开与关闭n1.1.表的打开表的打开n菜单方式(续)菜单方式(续)n在在“打开打开”对话框中还有对话框中还有“以只读方式打以只读方式打开开”和和“独占独占”两个复选框可供选择。两个复选框可供选择。n默认的打开方式由默认的打开方式由SET EXCLUSIVE ON|OFFSET EXCLUSIVE ON|OFF的设置值确定,系统原默认设置为的设置值确定,系统原默认设置为ONON。4.2.1 4.2.1 表的打开与关闭表的打开与关闭n1.1.表的打开表的打开n命令方式命令方式n命令格式是:命令格式是:USE USE NOUPDATE NOUPDATE EXCLUSIVE|SHARED EXCLUSIVE|SHARED 其中其中NOUPDATENOUPDATE指定以只读方式打开表,指定以只读方式打开表,EXCLUSIVEEXCLUSIVE指定以独占方式打开表,指定以独占方式打开表,SHAREDSHARED指定以共享方式打开表。指定以共享方式打开表。4.2.1 4.2.1 表的打开与关闭表的打开与关闭n2.2.表的关闭表的关闭n选择选择“窗口窗口”菜单中的菜单中的“数据工作期数据工作期”命命令,弹出数据工作期窗口,在数据工作期令,弹出数据工作期窗口,在数据工作期窗口中选择窗口中选择“关闭关闭”按钮关闭表。按钮关闭表。n在命令窗口中使用不带文件名的在命令窗口中使用不带文件名的USEUSE命令,命令,亦可关闭打开的表。亦可关闭打开的表。4.2 4.2 表的显示与维护表的显示与维护n4.2.1 4.2.1 表的打开与关闭表的打开与关闭n4.2.2 4.2.2 表的显示表的显示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表记录指针的定位表记录指针的定位n4.2.5 4.2.5 表记录的增加与删除表记录的增加与删除n4.2.6 4.2.6 表的复制表的复制 4.2.2 4.2.2 表的显示表的显示n1.1.表结构的显示表结构的显示n列出指定表的结构,包括文件更新日期、列出指定表的结构,包括文件更新日期、记录个数、记录长度及各字段的名称、类记录个数、记录长度及各字段的名称、类型、宽度和小数位数等内容。命令格式是:型、宽度和小数位数等内容。命令格式是:LIST|DISPLAY STRUCTURE TO PRINTER LIST|DISPLAY STRUCTURE TO PRINTER PROMPT|TO FILE PROMPT|TO FILE 4.2.2 4.2.2 表的显示表的显示n2.2.表记录的显示表记录的显示n显示当前表中的记录或指定的表达式的值显示当前表中的记录或指定的表达式的值也是使用也是使用LISTLIST或或DISPLAYDISPLAY命令。命令格式命令。命令格式是:是:LIST|DISPLAY FIELDS LIST|DISPLAY FIELDS FOR FOR WHILE WHILE TO PRINTER PROMPT|TO FILE TO PRINTER PROMPT|TO FILE OFFOFF4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n FIELDS 规定当前处理的字段或表达式。如果省略,则显示所有字段(不包括备注和通用型)在使用FIELDS子句时,如果已经由SET FIELDS TO命令建立了内存字段表,而且内存字段表已打开(即SET FIELDS ON),那么在FIELDS子句中出现的字段名必须是内存字段表中已存在的,否则就会发生语法错误。4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n表示命令对数据库操作的记录范围,有4种选择:ALL:对数据库文件的全部记录进行操作。NEXT n:只对包括当前记录在内的以下n个记录进行操作。RECORD n:只对第n个记录进行操作。REST:自当前记录开始到文件尾的所有记录。其中n(n0)为数值量。若有小数则自动舍去小数部分4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n FOR :在规定的范围中,按条件检查全部记录。即从第一条记录开始,满足条件的记录就执行该命令,不满足就跳过该记录,继续搜索下一记录,直到最后一条记录也不执行。若省略则默认为ALLn WHILE :在规定的范围内,只要条件成立,就对当前记录执行该命令,并把记录指针指向下一个记录,一旦遇到使条件不满足的记录,就停止搜索并结束该命令的执行。若省略则默认为RESTn若同时使用FOR和WHILE子句,WHILE有较高的优先级4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n如果FOR子句或WHILE子句以及范围全省略,对于LIST缺省为所有记录,即取ALL,对于DISPLAY缺省为当前记录,即取NEXT 1。n此外,对于DISPLAY命令是分屏输出,对于LIST是连续输出。n选用OFF时,表示只显示记录内容而不显示记录号。若省略该项则同时显示记录号和记录内容。4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n例例 就学生表,写出进行如下操作的命令:就学生表,写出进行如下操作的命令:(1 1)显示前)显示前5 5条记录。条记录。(2 2)显示记录号为奇数的记录。)显示记录号为奇数的记录。(3 3)显示汉族男学生的记录。)显示汉族男学生的记录。(4 4)显示湖北)显示湖北/湖南学生的姓名、性别、年龄湖南学生的姓名、性别、年龄以及简历以及简历4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n操作命令如下:操作命令如下:nUSE 学生学生n(1 1)显示前)显示前5 5条记录。条记录。nLIST NEXT 5n(2 2)显示记录号为奇数的记录。)显示记录号为奇数的记录。nLIST FOR MOD(RECNO(),2)=1n(3 3)显示汉族男学生的记录。)显示汉族男学生的记录。nLIST FOR!少数民族否少数民族否 AND 性别性别=男男4.2.2 4.2.2 表的显示表的显示n1.1.表记录的显示表记录的显示(续续)n操作命令如下操作命令如下(续)(续)n(4 4)显示湖北)显示湖北/湖南学生的姓名、性别、年龄湖南学生的姓名、性别、年龄以及简历以及简历 nLIST 姓名姓名,性别性别,YEAR(DATE()-YEAR(出生出生日期日期),简历简历 FOR 湖湖$籍贯籍贯 nUSEnVisual FoxPro命令的结构Visual FoxPro命令通常由两部分组成。第一部分是命令动词,它的词意指明了该命令的功能。第一部分是命令动词,它的词意指明了该命令的功能。第二部分包含有几个跟随在命令动词后面的短语,这些短第二部分包含有几个跟随在命令动词后面的短语,这些短语通常用来对所要执行的命令进行某些限制性的说明。语通常用来对所要执行的命令进行某些限制性的说明。在命令格式中,约定界限符中的内容是可选的,界限符中的内容是必选的,|表示在其中任选一项。Visual FoxProVisual FoxPro命令概述命令概述n命令书写的规则(1)每个命令必须以一个命令动词开头,而命令中的各个子句可以按任意次序排列。(2)命令行中各个词应以一个或多个空格隔开,如果两个词之间嵌有双撇号、单撇号、括号、逗号等分界符,则空格可以省略。但应注意,.T.或.F.两个逻辑值中的小圆点与字母之间不许有空格。(3)一个命令行的最大长度是254个字符。如果一个命令太长,一行写不下,可以使用续行符“;”在行末进行分行,并在下一行继续书写。各物理行的长度之和不得超过254个字符。(4)命令可以用英文的大写、小写或大小混写。(5)命令短语可以用其前4个以上字母缩写表示。如,DISPLAY STRUCTURE可简写为DISP STRU。(6)不可用A到J之间的单个字母作数据库文件名,不可用操作系统规定的输出设备名作文件名。(7)尽量不要用命令动词、短语等Visual FoxPro的保留字作文件名、字段名、变量名等,以免发生混乱。(8)一行只能写一条命令,命令结束按回车键。
展开阅读全文