第03章 数据表的创建和操作_第1页
第03章 数据表的创建和操作_第2页
第03章 数据表的创建和操作_第3页
第03章 数据表的创建和操作_第4页
第03章 数据表的创建和操作_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-12-142/73 1.表结构的概念表结构的概念 问题:问题:1)如何将学生的信息存入电脑中?)如何将学生的信息存入电脑中?2)如何能够快速存取学生的信息?)如何能够快速存取学生的信息?两种方案:两种方案:高高效效Student.txtStudent.dbf有有结构结构低低效效无无结构结构DBMSStudent.dbf字段字段记录记录字段属性字段属性1.字段名字段名字段名用来标识字段的名称,它由字母或汉字开字段名用来标识字段的名称,它由字母或汉字开头,可由字母、数字、下划线或汉字组成。头,可由字母、数字、下划线或汉字组成。合法:姓名、编号、合法:姓名、编号、xm、gz_2008 不合

2、法:不合法:2008学生、成绩学生、成绩! 字段名的取名要注意三点:字段名的取名要注意三点:1)语义清楚)语义清楚 2)简洁)简洁 3)字段不可分)字段不可分2. 字段类型字段类型字段类型字段类型定义了在该字段空间上存储的数据的类型定义了在该字段空间上存储的数据的类型 。它决定。它决定了数据存储形式和数据操作方式。了数据存储形式和数据操作方式。3. 字段宽度字段宽度字段宽度字段宽度表示字段在计算机内所占存储空间的大小表示字段在计算机内所占存储空间的大小。字段宽度的选取应以该字段最大可能的输入值为准。字段宽度的选取应以该字段最大可能的输入值为准。 有些类型的字段宽度是可以由用户在定义表结构有些类

3、型的字段宽度是可以由用户在定义表结构时定义和修改的,如字符型字段,宽度在时定义和修改的,如字符型字段,宽度在1254之间;之间;数值型字段,宽度是包含了正负号、小数点和数字在内数值型字段,宽度是包含了正负号、小数点和数字在内的的120之间。但大部分字段的宽度是由之间。但大部分字段的宽度是由VFP固定了的,固定了的,如日期型为如日期型为8个字节,逻辑型为个字节,逻辑型为1个字节,备注型和通用个字节,备注型和通用型为型为4个字节等。个字节等。 4. 小数位数小数位数只有数值型、双精度型和浮动型字段才可以设置小只有数值型、双精度型和浮动型字段才可以设置小数位数。要注意的是小数点以及正负号均占用一位。

4、数位数。要注意的是小数点以及正负号均占用一位。 File(文件)菜单(文件)菜单 新建对话框新建对话框 创建对话框创建对话框为了使用户在创建新文件时,让新文件都保存在磁为了使用户在创建新文件时,让新文件都保存在磁盘的某个固定位置,可以设置文件的默认保存位置盘的某个固定位置,可以设置文件的默认保存位置 。1.命令方式:命令方式:SET DEFAULT TO 路径路径2.如:如: SET DEFAULT TO C:VFP2. 菜单方式:选择菜单菜单方式:选择菜单“Tools” 选择选择“Options” 定义字段属性(表结构)定义字段属性(表结构)3.1.3 输入数据输入数据两种编辑模式:两种编辑

5、模式:1)浏览模式)浏览模式两种编辑模式:两种编辑模式:2)编辑模式)编辑模式如果是打开表再次输入新记录,则必须选择如果是打开表再次输入新记录,则必须选择“添加添加模式模式”数据输入要点数据输入要点 1.输入时,有一个输入时,有一个 “I”型光标在空白字段中闪烁,型光标在空白字段中闪烁,表明当前是对该字段的值进行输入表明当前是对该字段的值进行输入 。2.逻辑型字段的输入只能接受单个字母,用逻辑型字段的输入只能接受单个字母,用“T”表表示真、用示真、用“F”表示假。不区分大小写表示假。不区分大小写 。3.日期型数据的输入必须与日期格式相符,默认按日期型数据的输入必须与日期格式相符,默认按美国日期

6、格式美国日期格式mm/dd/yy(月(月/日日/年)输入。年)输入。 数据输入要点数据输入要点4.备注字段数据的输入:备注字段数据的输入:l 在字段的在字段的“memo”上双击鼠标或按下上双击鼠标或按下Ctrl+PgDn都能打开备注型字段的编辑窗口都能打开备注型字段的编辑窗口l内容只能是文本内容只能是文本l内容真正存放在与表同名的备注型文件内容真正存放在与表同名的备注型文件.fpt中中 l某记录的备注型字段非空时,其字段标志首字母将某记录的备注型字段非空时,其字段标志首字母将以大写以大写“M”显示,否则用小写显示,否则用小写“m”表示表示数据输入要点数据输入要点5.通用型字段数据的输入:通用型

7、字段数据的输入:l通用型字段是用来存储诸如图形、图象、声音以及通用型字段是用来存储诸如图形、图象、声音以及动画等多媒体数据,或者电子表格、字处理文档等动画等多媒体数据,或者电子表格、字处理文档等 l当光标停留在通用型字段当光标停留在通用型字段“gen”上时,双击鼠标或上时,双击鼠标或按下按下Ctrl+PgDn打开通用型字段的编辑窗口打开通用型字段的编辑窗口 l选择选择Edit菜单菜单Insert Object,可以通过打开的,可以通过打开的“插入对象插入对象”对话框插入对象对话框插入对象 l内容真正存放在与表同名的备注型文件内容真正存放在与表同名的备注型文件.fpt中中 l某记录的通用型字段非

8、空时,其字段标志首字母将某记录的通用型字段非空时,其字段标志首字母将以大写以大写“G”显示,否则用小写显示,否则用小写“g”表示表示3.1.4 表的打开表的打开数据表是一种文件,存放在外存即磁盘中。外存数据表是一种文件,存放在外存即磁盘中。外存中的数据中的数据CPU是不能直接读取的,必须把它们调入是不能直接读取的,必须把它们调入到内容中才能读取和处理。数据表从外存被调入到到内容中才能读取和处理。数据表从外存被调入到内存中,这个过程叫内存中,这个过程叫“打开打开”。 1. 命令方式命令方式 命令格式:命令格式:USE 表名表名 注:若没有设置默认文件路径,则注:若没有设置默认文件路径,则“表名表

9、名”必须包必须包含详细的路径。含详细的路径。2.菜单方式菜单方式 选择选择File菜单菜单 Open,在打开的,在打开的“Open”对话框中对话框中选择文件类型为选择文件类型为“Table” 2.菜单方式菜单方式打开表文件的位置打开表文件的位置共享方式,表示打开共享方式,表示打开的表不能作任何修改的表不能作任何修改独占方式,表示打开独占方式,表示打开的表既可以修改结构的表既可以修改结构也可以修改数据;若也可以修改数据;若不选,则只可修改数不选,则只可修改数据而不可以修改结构据而不可以修改结构可输入也可选择可输入也可选择3.1.5 表的关闭表的关闭命令格式:命令格式:USE功能:关闭当前打开的表

10、。功能:关闭当前打开的表。也可用以下命令之一来关闭表:也可用以下命令之一来关闭表:(1)CLOSE ALL/:关闭所有打开的文件或指定:关闭所有打开的文件或指定的文件类型。的文件类型。(2)CLEAR ALL:关闭所有打开的表文件,同时释放所有:关闭所有打开的表文件,同时释放所有的内存变量。的内存变量。(3)CLOSE DATABASEALL:关闭当前数据库及其表;:关闭当前数据库及其表;若无打开的数据库,则关闭所有自由表;若带若无打开的数据库,则关闭所有自由表;若带ALL,则关闭所,则关闭所有数据库及自由表。有数据库及自由表。(4)CLOSE TABLESALL:关闭当前数据库中的表,但:关

11、闭当前数据库中的表,但不关闭数据库;若无数据库打开,则关闭自由表;若带不关闭数据库;若无数据库打开,则关闭自由表;若带ALL,则关闭所有数据库中的表及自由表。则关闭所有数据库中的表及自由表。3.2 操作数据表操作数据表3.2.1 浏览表浏览表3.2.3 记录指针记录指针3.2.4 查找记录查找记录3.2.3 插入记录插入记录3.2.4 追加记录追加记录3.2.5 删除记录删除记录3.2.6 恢复记录恢复记录3.2.7 修改记录修改记录VFP命令常用子句命令常用子句一、四种常用命令子句一、四种常用命令子句 命令格式命令格式: LIST / DISPLAY FOR WHILEOFF 1)范围子句)

12、范围子句(4种种) ALL:数据表的所有记录:数据表的所有记录 RECORD:数据表的第:数据表的第N条记录条记录 NEXT:从当前记录开始的:从当前记录开始的N条记录条记录 REST:从当前记录开始到数据表末尾的所有记录:从当前记录开始到数据表末尾的所有记录 若省略范围字句,则不同的命令有不同的默认范围(如若省略范围字句,则不同的命令有不同的默认范围(如LIST为为ALL, DISPLAY为当前一条记录)为当前一条记录)VFP命令常用子句命令常用子句2)FIELDS 子句子句 列出所有要操作的字段(若有多个字段用逗号分隔)列出所有要操作的字段(若有多个字段用逗号分隔)3)条件子句()条件子句

13、(FOR/WHILE) (1)FOR 子句子句 在指定范围内找出所有满足条件的记录在指定范围内找出所有满足条件的记录. (2)WHILE 子句子句 在指定范围内一旦遇到不满足条件的记录就退出在指定范围内一旦遇到不满足条件的记录就退出.4)TO子句子句表示命令结果的输出去向。如果命令不带表示命令结果的输出去向。如果命令不带TO子句,则将显子句,则将显示结果输出到显示屏;示结果输出到显示屏;TO PRINT,表示将结果输出到打印机;,表示将结果输出到打印机;TO,表示将结果输出到指定的文件中。,表示将结果输出到指定的文件中。VFP命令常用子句命令常用子句二、命令和子句的书写规则二、命令和子句的书写

14、规则(1)命令要以命令动词开头或含有命令符号)命令要以命令动词开头或含有命令符号(2)各部分须用空格隔开,但各子句的次序允许任意排列。)各部分须用空格隔开,但各子句的次序允许任意排列。(3)命令符号、间隔符号、运算符号等只能是英文符号,不)命令符号、间隔符号、运算符号等只能是英文符号,不能为中文符号。如问号?与能为中文符号。如问号?与?、双引号、双引号“”“”与与、逗号,与、逗号,与,的的区别。区别。(4)命令中的)命令中的 、 、 | 、 符号都不是命令本身的语法符号都不是命令本身的语法成分,使用时不能照原样输入。成分,使用时不能照原样输入。(5)命令动词、保留字、函数名都要可简写为前)命令

15、动词、保留字、函数名都要可简写为前4 个字符。个字符。(6)一条命令可容量)一条命令可容量8192个字符。若要换行,可在适当位置个字符。若要换行,可在适当位置输入续行符输入续行符 “;” 。3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 命令,二选一命令,二选一3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条

16、件 OFF TO PRINTER PROMPT | TO FILE FileName 字段子句字段子句3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 范围子句范围子句3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 条件子句条

17、件子句3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 条件子句条件子句3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 不输出记录号不输出记录号3.2.1 浏览表浏览表命令格式:命令格式:LIST|DISPLAY FIELDS

18、 字段列表字段列表 Scope FOR 条件条件 WHILE 条件条件 OFF TO PRINTER PROMPT | TO FILE FileName 输出目标输出目标实例实例1)显示表)显示表students.dbf全部信息全部信息 USE studentsLIST & 等价于等价于DISP ALLRecord# SID SNAME SEX PMEMBER BIRTHDAY NATIVE SNOTE PHOTO 1 200736001 龙云梅龙云梅 女女 .T. 06/29/88 四川省自贡市四川省自贡市 Memo Gen 2 200736002 张洋张洋 男男 .T. 04/23

19、/88 云南省昆明市云南省昆明市 memo Gen 3 200736003 陈冰冰陈冰冰 女女 .F. 08/26/89 山东省大连市山东省大连市 memo Gen 4 200736004 李敏李敏 女女 .F. 09/15/87 辽宁省辽阳市辽宁省辽阳市 Memo Gen 5 200826041 徐明辉徐明辉 男男 .F. 04/09/87 云南省陆良县云南省陆良县 Memo Gen 6 200826042 周东亮周东亮 男男 .F. 08/10/88 江苏省睢宁县江苏省睢宁县 memo Gen 7 200826043 陈曦陈曦 女女 .T. 08/02/89 江西省崇仁县江西省崇仁县 Me

20、mo Gen 8 200826044 刘永杰刘永杰 男男 .F. 12/27/87 浙江省温岭市浙江省温岭市 memo Gen2)显示所有女生的学号、姓名、出生日期和籍贯)显示所有女生的学号、姓名、出生日期和籍贯信息,并不显示记录号信息,并不显示记录号 LIST sid , sname , birthday , native for sex = 女女 offSID SNAME BIRTHDAY NATIVE 200736001 龙云梅龙云梅 06/29/88 四川省自贡市四川省自贡市200736003 陈冰冰陈冰冰 08/26/89山东省大连市山东省大连市200736004 李敏李敏 09/1

21、5/87 辽宁省辽阳市辽宁省辽阳市200826043 陈曦陈曦 08/02/89 江西省崇仁县江西省崇仁县3)显示)显示1988年以后出生的学生的学号、姓名、性年以后出生的学生的学号、姓名、性别、出生日期和籍贯信息别、出生日期和籍贯信息 LIST sid,sname,sex,birthday,native for YEAR(birthday) = 1988 或或LIST sid,sname,sex,birthday,native for 出生日期出生日期 = 1988-01-01Record# SID SNAME SEX BIRTHDAY NATIVE 1 200736001 龙云梅龙云梅 女

22、女 06/29/88 四川省自贡市四川省自贡市 2 200736002 张洋张洋 男男 04/23/88 云南省昆明市云南省昆明市 3 200736003 陈冰冰陈冰冰 女女 08/26/89 山东省大连市山东省大连市 6 200826042 周东亮周东亮 男男 08/10/88 江苏省睢宁县江苏省睢宁县 7 200826043 陈曦陈曦 女女 08/02/89 江西省崇仁县江西省崇仁县4)显示是党员的男生的姓名、出生日期和籍贯信)显示是党员的男生的姓名、出生日期和籍贯信息息 LIST sname,birthday,native for sex = 男男 AND pmember = .T. 或

23、或LIST sname,birthday,native for sex = 男男 AND pmemberRecord# SNAME BIRTHDAY NATIVE 2 张洋张洋 04/23/88 云南省昆明市云南省昆明市命令命令LIST和和DISPLAY的区别的区别1)若省略范围字句,命令有不同的默认范围。LIST为ALL, DISPLAY为当前的一条记录;2)当显示结果超过一屏幕时,LIST滚屏显示,DISPLAY分屏显示;3)LIST执行完后记录指针被移到末尾,DISPLAY不影响记录指针(注意状态栏的变化)。LIST / DISPLAY FOR WHILEOFF 表结构的显示与修改表结构

24、的显示与修改1. 表结构的显示LIST / DISPLAY STRUCTURE2. 表结构的修改MODIFY STRUCTURE3.2.2 复制数据表复制数据表命令格式:命令格式:COPY TO FileName FIELDS FieldList Scope FOR lExpression1 WHILE lExpression2功能:将当前表指定的内容复制成一个新表。功能:将当前表指定的内容复制成一个新表。前提条件:准备复制的源表必须处于打开状态。前提条件:准备复制的源表必须处于打开状态。说明:说明:l如果省略如果省略FIELDS子句、范围子句和条件子句,则复制的新表子句、范围子句和条件子句,

25、则复制的新表和源表完全一样。和源表完全一样。l如果用如果用FIELDS子句选定的字段中含有备注型或通用型字段,子句选定的字段中含有备注型或通用型字段,则系统在复制扩展名为则系统在复制扩展名为.dbf的表文件时,自动复制扩展名为的表文件时,自动复制扩展名为.fpt的备注型文件,其名称与新表的名称同名。的备注型文件,其名称与新表的名称同名。 实例实例1)原样复制表)原样复制表student.dbf,新表文件名为,新表文件名为stu1.dbf USE studentsCOPY TO stu1USE stu1LIST2)只含有学号、姓名和性别的新表,新表文件名为)只含有学号、姓名和性别的新表,新表文件

26、名为stu2.dbf。3)只包含云南籍学生的姓名、性别和籍贯信息,)只包含云南籍学生的姓名、性别和籍贯信息,新表文件名为新表文件名为stu3.dbf。COPY TO stu2 FIELDS sid, sname, sexCOPY TO stu3 FIELDS sname, sex, native FOR AT(云南云南, native)03.2.3记录指针记录指针VFP为每一个打开的表都会自动分配一个记录指针为每一个打开的表都会自动分配一个记录指针,指向该表的某条记录。记录指针指向的这条记录称,指向该表的某条记录。记录指针指向的这条记录称为为“当前记录当前记录”。虽然记录指针对用户而言是不可见

27、的,但用户可以虽然记录指针对用户而言是不可见的,但用户可以通过通过VFP提供的命令或函数去操纵和检测它。提供的命令或函数去操纵和检测它。在在VFP中,记录的定位分为绝对定位与相对定位两中,记录的定位分为绝对定位与相对定位两种种 。1. 绝对定位绝对定位命令格式:命令格式:GO|GOTO TOP | BOTTOM | n功能:将当前表的记录指针定位到指定的位置。功能:将当前表的记录指针定位到指定的位置。说明:说明:lGO和和GOTO命令可以等价使用。命令可以等价使用。lGO TOP:将记录指针定位在表的第一条记录上。:将记录指针定位在表的第一条记录上。lGO BOTTOM:将记录指针定位在表的最

28、后一条:将记录指针定位在表的最后一条记录上。记录上。lGO n:将记录指针定位在表的第:将记录指针定位在表的第n条记录上。其中条记录上。其中n为一个数值型数据,且大小不能超出表的记录条数为一个数值型数据,且大小不能超出表的记录条数的范围。的范围。 实例实例USE studentsLISTGO top & 将记录指针定位到第一条记录将记录指针定位到第一条记录DISPLAY& 显示第显示第1条记录条记录GO 3& 将记录指针定位到第将记录指针定位到第3条记录条记录DISPLAY& 显示第显示第3条记录条记录GO bottom& 将记录指针定位到最后一条记将记

29、录指针定位到最后一条记录录DISPLAY& 显示第显示第8条记录条记录VFP提供了一个函数提供了一个函数RECNO()用于检测当前记()用于检测当前记录指针指在哪一条记录上。录指针指在哪一条记录上。例:例:GO 5? RECNO( )& 显示当前记录的记录号显示当前记录的记录号52. 相对定位相对定位命令格式:命令格式:SKIP n功能:把记录指针从当前位置向前或向后移动若干功能:把记录指针从当前位置向前或向后移动若干条记录。条记录。说明:说明:l不带参数不带参数n的的 SKIP 命令将把记录指针移到下一条命令将把记录指针移到下一条记录,即等价于记录,即等价于 SKIP 1。l

30、n为整数,可正也可负。正整数表示向表尾部方向为整数,可正也可负。正整数表示向表尾部方向移动,负整数表示向表首部方向移动,数值的大小表移动,负整数表示向表首部方向移动,数值的大小表示记录指针移动的记录个数。示记录指针移动的记录个数。l绝对定位表示将记录指针直接移动到指定的位置,绝对定位表示将记录指针直接移动到指定的位置,而相对定位表示相对当前记录而言记录指针移动多少而相对定位表示相对当前记录而言记录指针移动多少次。次。 实例实例USE studentsLISTGO 3& 将记录指针定位到第将记录指针定位到第3条记录条记录DISPLAY& 显示第显示第3条记录条记录SKIP 3 &

31、amp; 将记录指针移到第将记录指针移到第6条记录条记录DISPLAY& 显示第显示第6条记录条记录SKIP -1 & 将记录指针移到第将记录指针移到第5条记录条记录DISPLAY& 显示第显示第5条记录条记录记录指针的相对移动受记录范围的限制。如果记录记录指针的相对移动受记录范围的限制。如果记录指针已经到了表的头部,是不能再往上移的;同样,指针已经到了表的头部,是不能再往上移的;同样,如果记录指针已经指向了表的尾部,是不能再往下移如果记录指针已经指向了表的尾部,是不能再往下移的。的。VFP提供了两个函数提供了两个函数BOF()和()和EOF(),用来分(),用来分别检

32、测当前记录指针是否指向了表的头部或尾部。别检测当前记录指针是否指向了表的头部或尾部。 函数:函数:BOF( )说明:值为逻辑型,说明:值为逻辑型,“.T.”表示记录指针指向了表表示记录指针指向了表的头部;的头部;“.F.”表示没有指向表的头部。表示没有指向表的头部。函数:函数:EOF( )说明:值为逻辑型,说明:值为逻辑型,“.T.”表示记录指针指向了表表示记录指针指向了表的尾部;的尾部;“.F.”表示没有指向表的尾部。表示没有指向表的尾部。数据表的第一条记录不是表的头部,最后一条记录数据表的第一条记录不是表的头部,最后一条记录也不是表的尾部,也不是表的尾部,详解详解 1 200736001

33、龙云梅龙云梅 女女2 200736002 张洋张洋 男男3 200736003 陈冰冰陈冰冰 女女4 200736004 李敏李敏 女女5 200826041 徐明辉徐明辉 男男6 200826042 周东亮周东亮 男男7 200826043 陈曦陈曦 女女8 200826044 刘永杰刘永杰 男男BOF( )为真,头部为真,头部BOF( )为假为假EOF( )为假为假EOF( )为真,尾部为真,尾部3.2.4 查找记录查找记录查找命令由查找命令由LOCATE命令和命令和CONTINUE命令来完命令来完成成命令格式:命令格式:LOCATE Scope FOR 条件条件 WHILE 条件条件功能

34、:在指定范围内按照记录的物理顺序依次查找功能:在指定范围内按照记录的物理顺序依次查找满足条件的第一条记录。满足条件的第一条记录。命令格式:命令格式:CONTINUE功能:继续执行先前的功能:继续执行先前的 LOCATE 命令,即查找满命令,即查找满足条件的下一条记录。足条件的下一条记录。 VFP 9.0提供一个检测函数提供一个检测函数FOUND( )来判断是否找来判断是否找到。到。 函数:函数:FOUND( )功能:功能:检测检测LOCATE命令或命令或CONTINUE命令是否命令是否找到符合条件的记录。若找到,函数返回找到符合条件的记录。若找到,函数返回.T.(真),(真),否则函数返回否则

35、函数返回.F.(假)。(假)。 说明:说明:lLOCATE命令缺省范围表示命令缺省范围表示ALL。l若若LOCATE命令找到了符合条件的第一条记录,记命令找到了符合条件的第一条记录,记录指针就指向这条记录;若没有找到,则记录指针指录指针就指向这条记录;若没有找到,则记录指针指向表末尾。向表末尾。l若查找范围是若查找范围是ALL时,也可利用函数时,也可利用函数EOF( )来判断来判断是否找到符合条件的记录。因为若找到,记录指针必是否找到符合条件的记录。因为若找到,记录指针必然指向了某条记录,此时然指向了某条记录,此时EOF( )函数值为假,表示记函数值为假,表示记录指针没有到达表尾;若没有找到,

36、则记录指针必然录指针没有到达表尾;若没有找到,则记录指针必然到达了表尾,此时到达了表尾,此时EOF( )函数值为真。函数值为真。lCONTINUE命令只能和带有条件的命令只能和带有条件的LOCATE命令命令配对使用,不能单独使用。配对使用,不能单独使用。 实例实例请逐个查找出是党员的女生,显示其姓名、性别和请逐个查找出是党员的女生,显示其姓名、性别和出生日期信息,并显示函数出生日期信息,并显示函数FOUND( )和和EOF( )的值的值。 USE studentsLOCATE FOR sex=女女 AND pmember? FOUND( ) , EOF( ) & 显示显示 .T. .F

37、.DISPLAY FIELDS sname, sex, birthdayRecord# SNAME SEX BIRTHDAY 1 龙云梅龙云梅 女女 06/29/88? FOUND( ) , EOF( )& 显示显示 .T. .F.DISPLAY FIELDS 姓名姓名,性别性别,出生日期出生日期Record# SNAME SEX BIRTHDAY 7 陈曦陈曦 女女 08/02/893.2.3 插入记录插入记录命令格式:命令格式:INSERT BLANK BEFORE功能:功能:在当前表中插入一条新记录。在当前表中插入一条新记录。说明:说明:l若使用若使用BLANK子句,则立即插入一

38、条空白记录而子句,则立即插入一条空白记录而不进入编辑窗口;若缺省不进入编辑窗口;若缺省BLANK子句,则会打开记子句,则会打开记录编辑窗口,等待用户输入新记录的各字段的值。录编辑窗口,等待用户输入新记录的各字段的值。l若使用若使用BEFORE子句,则表示在当前记录之前插入子句,则表示在当前记录之前插入一条新记录,否则在当前记录之后插入一条新记录。一条新记录,否则在当前记录之后插入一条新记录。3.2.4 追加记录追加记录1. 从键盘追加数据从键盘追加数据命令格式:命令格式:APPEND BLANK功能:功能:在当前表的末尾追加一条新记录。在当前表的末尾追加一条新记录。说明:说明:l用用APPEN

39、D增加的新记录始终在表的尾部。增加的新记录始终在表的尾部。l若使用若使用BLANK子句,则立即在表的尾部插入一条空白记录而子句,则立即在表的尾部插入一条空白记录而不进入编辑窗口;若缺省不进入编辑窗口;若缺省BLANK子句,则会打开记录编辑窗口子句,则会打开记录编辑窗口,等待用户输入新记录的各字段的值。,等待用户输入新记录的各字段的值。l在实际操作中,在实际操作中,APPEND命令一般和修改记录的命令命令一般和修改记录的命令REPLACE结合起来使用,即追加一条新记录后立刻用结合起来使用,即追加一条新记录后立刻用REPLACE命令修改该记录的各字段的值。命令修改该记录的各字段的值。2. 从现有的

40、文件中追加数据从现有的文件中追加数据命令格式:命令格式:APPEND FROM FileName | ? FIELDS FieldList FOR lExpression TYPE 功能:功能:从一个文件中读入一批记录,追加到当前表的尾部。从一个文件中读入一批记录,追加到当前表的尾部。说明:说明:l源文件的类型缺省为表,若是其它类型的文件必须用源文件的类型缺省为表,若是其它类型的文件必须用TYPE子子句指明。句指明。l源文件可以不用打开,但目标表必须先打开作为当前表。源文件可以不用打开,但目标表必须先打开作为当前表。l若源文件为若源文件为“?”,表示打开文件对话框,从中选择从哪个表,表示打开文

41、件对话框,从中选择从哪个表中读入记录。中读入记录。l追加的数据的类型要与当前表的对应字段的类型一致。追加的数据的类型要与当前表的对应字段的类型一致。3.2.5删除记录删除记录1.逻辑删除逻辑删除命令格式:命令格式:DELETE Scope FOR lExpression1 WHILE lExpression2功能:功能:在指定范围内对当前表中要删除的记录打上删除标记在指定范围内对当前表中要删除的记录打上删除标记。说明:说明:l此命令为逻辑删除,即不是真正的删除,仅在被删除的记录此命令为逻辑删除,即不是真正的删除,仅在被删除的记录前面增加一个删除标记前面增加一个删除标记“*” (在浏览窗口中标记

42、为黑色方格(在浏览窗口中标记为黑色方格)。被逻辑删除的记录仍在表中,可用)。被逻辑删除的记录仍在表中,可用RECALL命令恢复。命令恢复。l缺省范围和条件子句时,默认为当前记录。若带条件子句,缺省范围和条件子句时,默认为当前记录。若带条件子句,默认范围为默认范围为ALL。实例实例逻辑删除逻辑删除Students表末尾追加的两条新记录。表末尾追加的两条新记录。 USE studentsDELETE FOR RECNO( )=9 & 函数函数RECNO( )的值为的值为当前当前LIST 记录的记录号记录的记录号Record# SID SNAME SEX PMEMBER BIRTHDAY N

43、ATIVE1 200736001 龙云梅龙云梅 女女 .T. 06/29/88 四川省自贡市四川省自贡市 2200736002 张洋张洋 男男 .T. 04/23/88 云南省昆明市云南省昆明市 33 200736003 陈冰冰陈冰冰 女女 .F. 08/26/89 山东省大连市山东省大连市 44 200736004 李敏李敏 女女 .F. 09/15/87 辽宁省辽阳市辽宁省辽阳市 55 200826041 徐明辉徐明辉 男男 .F. 04/09/87 云南省陆良县云南省陆良县 66 200826042 周东亮周东亮 男男 .F. 08/10/88 江苏省睢宁县江苏省睢宁县 77 20082

44、6043 陈曦陈曦 女女 .T. 08/02/89 江西省崇仁县江西省崇仁县 88 200826044 刘永杰刘永杰 男男 .F. 12/27/87 浙江省温岭市浙江省温岭市 9 * 张洋张洋 男男 .F. / / 云南省昆明市云南省昆明市10 * 徐明辉徐明辉 男男 .F. / / 云南省陆良县云南省陆良县 2. 物理删除物理删除命令格式:命令格式:PACK功能:功能:从当前表中永久删除标有删除标记的记录。从当前表中永久删除标有删除标记的记录。说明:说明:该命令只能删除被逻辑删除打上删除标记的该命令只能删除被逻辑删除打上删除标记的记录,删除后不能恢复。记录,删除后不能恢复。3. 彻底删除全部

45、记录彻底删除全部记录命令格式:命令格式:ZAP功能:功能:从当前表中彻底删除所有记录从当前表中彻底删除所有记录说明:说明:l该命令一次性地将当前表中的所有记录全部删除,该命令一次性地将当前表中的所有记录全部删除,不管有没有打上删除标记,并且被删除的记录不可恢不管有没有打上删除标记,并且被删除的记录不可恢复,因此使用此命令一定要慎重。复,因此使用此命令一定要慎重。l该命令执行后,虽然记录全部被删除了,但表的结该命令执行后,虽然记录全部被删除了,但表的结构仍在。构仍在。 3.2.7 修改记录修改记录命令格式:命令格式:REPLACE FieldName1 WITH eExpression1 , F

46、ieldName2 WITH eExpression2 Scope FOR lExpression1 WHILE lExpression2 功能:功能:在指定范围内批量快速地用表达式的值替换在指定范围内批量快速地用表达式的值替换相应字段的值。相应字段的值。说明:说明:l参数参数“FieldName1 WITH eExpression1”:用eExpression1表达式的值替换表达式的值替换FieldName1字段的值。字段的值。l如果要对多个字段修改其值,字段间用英文逗号如果要对多个字段修改其值,字段间用英文逗号“,”分隔。分隔。l当缺省范围和条件子句时,默认范围为当前记录。当缺省范围和条件

47、子句时,默认范围为当前记录。实例实例对表对表stu2.dbf按以下要求完成任务。按以下要求完成任务。(1)在表尾增加一条记录)在表尾增加一条记录USE stu2.dbf EXCLUSIVELISTAPPEND BLANKGO bottomREPLACE sid WITH 200840001, sname WITH 王小东王小东, sex WITH 男男LIST2)增加四个字段:)增加四个字段:maths N(3)、english N(3)、computer N(3)、total N(3),并对这三门科目输入相,并对这三门科目输入相关数据。关数据。 请用命令一次性计算请用命令一次性计算total

48、字段的值。字段的值。 REPLACE ALL total WITH maths+english+computerBROWSE3.3 工作区工作区在进行表的打开操作时,会发现打开一张表的同时在进行表的打开操作时,会发现打开一张表的同时会关闭原来已经打开的表,即某一时刻只能操作一张会关闭原来已经打开的表,即某一时刻只能操作一张表,其原因涉及到工作区的概念。表,其原因涉及到工作区的概念。一个工作区中最多只能打开的一个表,如果要求同一个工作区中最多只能打开的一个表,如果要求同时打开多个数据表,就必须将表指定到不同的工作区时打开多个数据表,就必须将表指定到不同的工作区。3.3.1 工作区的概念工作区的概

49、念打开一张表的过程,实际上就是将表从外存读取到打开一张表的过程,实际上就是将表从外存读取到内存的过程。内存的过程。工作区工作区就是内存中的一个存储区域,用来存放打开就是内存中的一个存储区域,用来存放打开的表,以及与其相关的备注型文件、索引文件等。的表,以及与其相关的备注型文件、索引文件等。一个工作区最多只能对应一张表。一个工作区最多只能对应一张表。如果要打开多张表,就需要将它们放入不同的内存如果要打开多张表,就需要将它们放入不同的内存区域,即选择不同的工作区,在不同的工作区中打开区域,即选择不同的工作区,在不同的工作区中打开不同的表。不同的表。选择工作区时可以用工作区的区号或别名进行选择选择工

50、作区时可以用工作区的区号或别名进行选择1. 工作区号工作区号VFP提供了提供了32767个工作区,每个区都有一个编号个工作区,每个区都有一个编号,从,从1到到32767。因此,系统中可以同时打开的表最多。因此,系统中可以同时打开的表最多可以达可以达32767个。个。2. 别名别名VFP系统保留了用系统保留了用AJ十个字母作为前十个字母作为前10个工作区个工作区的别名。的别名。工作区的别名也可以用在该工作区中打开的表的别工作区的别名也可以用在该工作区中打开的表的别名来表示。名来表示。在用在用USE命令打开表时,可以给表取一个别名。如命令打开表时,可以给表取一个别名。如:命令格式:命令格式:USE

51、 TableName ALIAS cTableAlias如果打开表时不带如果打开表时不带ALIAS子句,系统将表名视为表子句,系统将表名视为表的别名,即表名或表的别名都可以作为工作区的别名的别名,即表名或表的别名都可以作为工作区的别名。 多工作区操作有以下几个特点:多工作区操作有以下几个特点:1)每个工作区只允许打开一张表。在同一工作区打开另一张)每个工作区只允许打开一张表。在同一工作区打开另一张表时,原来打开的表会自动关闭。表时,原来打开的表会自动关闭。2)一张表只能在一个工作区中打开。如果试图在其它工作区)一张表只能在一个工作区中打开。如果试图在其它工作区打开一个已经打开的表,打开一个已经

52、打开的表,VFP会提示会提示“文件正在使用文件正在使用”的警告的警告信息。信息。3)不论使用多少个工作区,只有一个工作区处于当前状态。)不论使用多少个工作区,只有一个工作区处于当前状态。在当前工作区中打开的表称为当前表。在当前工作区中打开的表称为当前表。VFP启动后,默认启动后,默认1号工号工作区是当前工作区。作区是当前工作区。4)每个工作区中的数据表是独立存储的,系统为每个数据表)每个工作区中的数据表是独立存储的,系统为每个数据表都自动分配一个记录指针指向该表的当前记录。除非表间关联都自动分配一个记录指针指向该表的当前记录。除非表间关联,各个工作区中表的记录指针是独立移动的,互不干扰。,各个

53、工作区中表的记录指针是独立移动的,互不干扰。 3.3.2 工作区的选择和使用工作区的选择和使用命令格式:命令格式:SELECT nWorkArea | cTableAlias功能:功能:选择一个工作区作为当前工作区。选择一个工作区作为当前工作区。说明:说明:l参数参数“nWorkArea”:工作区号,取值范围为:工作区号,取值范围为032767。若为。若为 0(零零),表示选择当前未使用的最低编号,表示选择当前未使用的最低编号的工作区作为当前工作区。的工作区作为当前工作区。l参数参数“cTableAlias”:工作区别名。:工作区别名。l可用函数可用函数SELECT()返回当前工作区的区号。(

54、)返回当前工作区的区号。l多工作区方式下,可用多工作区方式下,可用.字段名或字段名或字段名访问其它工作区中打开的表的字字段名访问其它工作区中打开的表的字段。段。实例实例按以下要求完成任务:按以下要求完成任务:(1)同时打开表)同时打开表Students.dbf和表和表stu2.dbf。(2)不改变当前工作区的情况下打开表)不改变当前工作区的情况下打开表stu3.dbf(3)显示表)显示表stu3.dbf的内容。的内容。CLOSE ALL& 关闭所有打开的表,回到关闭所有打开的表,回到1号工作区号工作区USE students? 当前工作区的区号:当前工作区的区号: , SELECT(

55、) & 显示当前区号为显示当前区号为1SELECT 2USE stu2? 当前工作区的区号:当前工作区的区号: , SELECT( ) & 显示当前区号为显示当前区号为2USE stu3 IN 0 & 当前未使用的最小工作区的区号是当前未使用的最小工作区的区号是3号号? 当前工作区的区号:当前工作区的区号: , SELECT( )& 显示当前区号为显示当前区号为3SELECT stu3& 选择表选择表stu3所在的工作区所在的工作区LIST& 显示表显示表stu3的内容的内容3.4.1 显示表结构显示表结构命令格式:命令格式:LIST | DIS

56、PLAY STRUCTURE TO PRINT | TO FILE FileName功能:功能:显示当前表的结构。显示当前表的结构。说明:说明:当显示结果超过一屏幕时,当显示结果超过一屏幕时,LIST为滚动显为滚动显示,示,DISPLAY为分屏显示。为分屏显示。3.4.2 修改表结构修改表结构命令方式:命令方式:MODIFY STRUCTURE菜单方式:选择菜单方式:选择ViewTable Designer功能:功能:打开表设计器窗口,从中可以修改表的结构打开表设计器窗口,从中可以修改表的结构。前提条件:前提条件:要修改的表处于打开状态,并且是以独要修改的表处于打开状态,并且是以独占方式打开的

57、。以共享方式打开的表其结构为只读状占方式打开的。以共享方式打开的表其结构为只读状态,不允许修改态,不允许修改 表的结构定义好后一般不会经常变动,但如果遇到表的结构定义好后一般不会经常变动,但如果遇到以下情况之一则需要修改表的结构:以下情况之一则需要修改表的结构:(1)字段名需要修改。)字段名需要修改。(2)字段的宽度不合理。)字段的宽度不合理。(3)字段的类型不符合要求。)字段的类型不符合要求。 如原来把学号字段如原来把学号字段“sid”定义成了数值型,结果导致某些学号的前定义成了数值型,结果导致某些学号的前导导“0”不能保存下来。因为数值型的前导不能保存下来。因为数值型的前导“0”是无意义的

58、,系统将自是无意义的,系统将自动将其省略掉,应该把它的类型改为字符型。动将其省略掉,应该把它的类型改为字符型。(4)数值型的小数位数需要修改。)数值型的小数位数需要修改。 如原来某个数值型字段没有定义小数位数,现在又需要如原来某个数值型字段没有定义小数位数,现在又需要1位小数位。位小数位。 3.4.3 复制表结构复制表结构1. 命令方式复制表结构命令方式复制表结构命令格式:命令格式:COPY STRUCTURE TO TableName FIELDS FieldList 功能:功能:用当前表的结构创建一个空的新自由表,新用当前表的结构创建一个空的新自由表,新表的结构和当前表的结构一致,但不含任

59、何数据。若表的结构和当前表的结构一致,但不含任何数据。若命令带有命令带有FIELDS子句,则新表的结构只包含指定的子句,则新表的结构只包含指定的字段,同时字段顺序也和字段,同时字段顺序也和FieldList中字段出现的顺序中字段出现的顺序一致。一致。前提条件:前提条件:必须先打开要复制结构的表,即源表。必须先打开要复制结构的表,即源表。实例实例利用表利用表Students.dbf的结构,建立新表的结构,建立新表stubak.dbf,并且只包含学号、姓名、性别和简历。并且只包含学号、姓名、性别和简历。 USE studentsCOPY STRUCTURE TO stubak FIELDS sid

60、, sname, sex, snoteUSE stubak & 生成的新表要打开才能查看生成的新表要打开才能查看LIST STRUCTUREField Field Name Type Width Dec Index Collate Nulls 1 SID Character 9 No 2 SNAME Character 8 No 3 SEX Character 2 No 4 SNOTE Memo 4 No2. 利用向导复制表结构利用向导复制表结构选择了表和字段后按提示依次操作。选择了表和字段后按提示依次操作。3.5 表的索引表的索引3.5.1 索引的概念索引的概念3.5.2 索引和索引文件的类型索引和索引文件的类型3.5.3 索引的建立索引的建立3.5.4 索引的使用索引的使用3.5.1 索引的概念索引的概念1. 记录的物理顺序和逻辑顺序记录的物理顺序和逻辑顺序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论