1、化学化工学院Visual FoxPro课程没有最好,只有更好 第3章 VFP语言基础化学化工学院Visual FoxPro课程没有最好,只有更好 字符型(C)数值型(N)货币型 逻辑型(L)日期型(D)日期时间型(T)整型 浮点型 双精度型 备注型(M)通用型(G)二进制字符型 二进制备注型字段特有类型 3.1 数据类型化学化工学院Visual FoxPro课程没有最好,只有更好3.1 数据类型1.1.字符型数据字符型数据(Character)是指用各种文字字符表示的数据,由字母、数字、汉字、符号和空格等组成,长度为1254字节。3.3.数值型数据数值型数据(Numeric)是指可以进行算术运
2、算的数据,由数字09、小数点和正负号构成。3.3.货币型数据货币型数据(Cuyency)采用表示货币量的数据来代替用数值型数据表示货币,长度固定为8个字节。4.逻辑型数据逻辑型数据(Logic)是用来进行各种逻辑判断的数据,只有两个值:真或假,长度固定为1个字节。5.日期型数据日期型数据(Date)是用来表示日期的数据,存储格式为“YYYYMMDD”,其中YYYY代表年,MM代表月,DD代表日,长度固定为8个字节。化学化工学院Visual FoxPro课程没有最好,只有更好3.1 数据类型6日期时间型数据日期时间型数据(DateTime)描述日期和时间的数据,存储格式为“YYYYMMDDHHM
3、MSS”,其中YYYY代表年,前两个MM代表月,DD代表日,HH代表小时,后两个MM代表分钟,SS代表秒,长度固定为8个字节。7整型数据整型数据(Integer)是指不包含小数点部分的数值,以二进制形式存储,长度固定为4个字节。8 8浮点型数据浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价,但在存储形式上采取浮点格式,由尾数、阶数及字母E组成,占用8个字节。9 9双精度数据双精度数据(Double)是具有更高精度的数值型数据,长度固定为8个字节。化学化工学院Visual FoxPro课程没有最好,只有更好3.1 数据类型1010备注型数据备注型数据(Memo)用于存储字符型数
4、据块,长度固定为4个字节,用来存储指向实际数据存放位置的地址指针,实际数据存放在与数据表文件同名的.FPT文件中,其长度仅受磁盘空间的限制。1111通用型数据通用型数据(General)用于存储OLE对象,可以是文档、图片、电子表格等。通用型数据的长度固定为4个字节,用来存储指向.FPT文件位置的地址指针。13.13.字符型数据字符型数据(二进制二进制)用于存储任意不经过代码页修改而维护的字符型数据。1313备注型数据备注型数据(二进制二进制)用于存储任意不经过代码页修改而维护的备注型数据。化学化工学院Visual FoxPro课程没有最好,只有更好 3.3.1 常量 常量是指在数据处理过程中
5、其值始终保持不变的量。1.1.数值型常量数值型常量:是数学中的十进制整数或小数。如:10.25,-123.567 3.3.字符型常量字符型常量:是用单撇号/双撇号/方括号括起来的字符串 如:“ABCD”、1234、”中国北京”3.3.逻辑型常量逻辑型常量:用下圆点作为定界符,只有真和假两个值。如:.T.、.t.、.Y.、.y.(真),.F.、.f.、.N.、.n.(假)4.4.日期型常量日期型常量/日期时间型常量日期时间型常量:表示一个确切的日期和时间,用花括号作为定界符。如:2003-03-03、1996-03-20 12:30:15 也可以用CTOD函数进行转换,如 CTOD(”03/03
6、/2003”)化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量 变量是指在数据处理过程中其值可以改变的量。1.1.变量的命名变量的命名:以字母(汉字)或下划线开头,由字母、汉字、数字和下划线组成,长度不能超过128个字符。3.3.字段变量字段变量 存在于数据表中。当定义好一个数据表的结构,该表中的各个字段名就形成了各个字段变量。字段变量必须先定义然后才能使用。3.3.内存变量内存变量:是一种临时信息存储单元,独立于数据表,可以根据需要随时建立。其类型取决于变量值的类型,可以把不同类型的数据赋给同一个变量。当内存变量名与数据表中的字段变量名相同时,要访问该内存变量,必
7、须在变量名前加上前缀M.或M-,否则系统将优先访问同名的字段变量。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量(1)建立内存变量 格式1:=格式2:STORE TO 功能:在定义内存变量的同时确定内存变量的值和类型。例如,X=5&定义变量X,并把数值5赋给X STORE X+10 TO Y&定义变量Y,并将表达式X+10的值赋给Y STORE”北京”TO A,B,C&定义变量A,B,C,并赋于相同的字符数据 X=.F.&重新定义变量X,并赋逻辑值(2)输出内存变量 格式1:?格式2:?功能:计算中各表达式的值并在屏幕上显示出来。化学化工学院Visual FoxP
8、ro课程没有最好,只有更好3.3.2 变量(3)显示或打印内存变量 格式:LIST|DISPLAY MEMORY LIKE TO PRINTE|TO FILE 功能:显示或打印内存变量的当前信息。例如,在命令窗口中输入以下命令:LIST MEMORY LIKE X*结果显示在主窗口中。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量注释信息显示所有第一个字符为X的内存变量信息变量名作用域类 型变量值数值型内存变量的计算机内部表示化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量(4)清除内存变量 格式1:CLEAR MEMORY 格式2:R
9、ELEASE 格式3:RELEASE ALL LIKE|EXCEPT 功能:释放所有内存变量或指定的内存变量。例如,RELEASE X1&释放内存变量X1 RELEASE ALL LIKE X*&释放所有第1个字母为X的内存变量 RELEASE ALL&释放所有内存变量4.4.系统变量:系统变量:以字符“_”开头的、由VFP系统自动定义生成的变量,其名称也是系统事先定义好的。例如,_PAGENO,_ALIGNMENT化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量5 5数组数组 内存中连续的一片存储区域,由一组称为数组元素的变量组成。通过赋值语句可以为各个元素分别赋
10、值,且所赋值的数据类型可以不同。定义:DIMENSION(,),(,)数组必须先定义后使用,且使用时下标不能出界。每个数组元素通过数组名和相应的索引编号被引用。第1个元素 第2个元素 第3个元素 第4个元素 第5个元素 第6个元素内存中的数组元素数组示意图化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 变量例如,定义一个一维数组AA和一个二维数组BB DIMENSI0N AA(5),BB(2,3)将数值0赋给数组AA中的所有元素 STORE 0 TO AA 将字符串xyz赋给数组元素BB(1,1)BB(1,1)=”XYZ”将数值125赋给数组元素BB(2,1)BB(2,
11、1)=125 将逻辑真值T赋给数组元素BB(2,3)BB(2,3)=.T.化学化工学院Visual FoxPro课程没有最好,只有更好3.3.3 其它数据存储容器 1 1字段、记录和数据表字段、记录和数据表 数据表是一系列相关数据的集合。字段是数据表中存储、处理数据的基本元素,一个具体的字段只能存储一种类型的数据。记录是数据表中一组字段的集合,同一个数据表中所有记录都具有相同的字段名,且同名字段在每个记录中的数据类型、数据长度都是相同的。字段和记录构成了一个数据表的全部内容。3.3.对象对象(Object)对象是一个具有属性和行为特征的实体,在面向对象的程序设计中,对象是编程的基本元素,它将某
12、一数据和使用该数据的一组基本操作或过程封装在一起,构成一个统一体。每个对象都有自己的属性和行为特征。化学化工学院Visual FoxPro课程没有最好,只有更好 3.3 运算符和表达式 运算符是对相同类型数据进行运算操作的符号。用运算符将常量、变量和函数等数据连接起来的式子称为表达式。表达式的类型由运算符的类型决定,每个表达式按照规定的运算规则都产生一个惟一的值。化学化工学院Visual FoxPro课程没有最好,只有更好 3.3 运算符和表达式1.1.数值表达式:数值表达式:用算术运算符将数值型数据连接起来的式子,其结果仍是数值型数据。算术运算符 化学化工学院Visual FoxPro课程没
13、有最好,只有更好 3.3 运算符和表达式3.3.字符表达式:字符表达式:用字符串运算符将字符型数据连接起来的式子,其结果仍是字符型数据。(1)“+”运算符:两个字符串首尾相连形成一个新的字符串。(2)“-”运算符:两个字符串相连,并将前字符串尾部的空格移到合 并后的新字符串的尾部。例如,?”ABCD ”+”EFG”+”1234”&结果为:ABCD EFG1234?”ABCD ”-”EFG”+”1234”&结果为:ABCDEFG 12343.3.日期表达式:日期表达式:用算术运算符将日期型和数值型数据连接起来的式子,其结果为日期型数据或数值型数据。例如,?2002-01-20+5&结果为日期 2
14、002/01/25?2002-01-20-5&结果为日期 2002/01/15?2002-01-20-2001-10-28&结果为天数 84化学化工学院Visual FoxPro课程没有最好,只有更好 3.3 运算符和表达式4.4.关系表达式:关系表达式:用关系运算符将运算元素连接起来的式子,其结果为逻辑真值(.T)或逻辑假值(.F.)。例如:S1=”读者”S2=”读者文摘”SET EXACT ON?S1=S2,S2=S1,S2=S1&结果是.F.F.F.SET EXACT OFF?S1=S2,S2=S1,S2=S1&结果是.F.T.F.关系运算符 化学化工学院Visual FoxPro课程没
15、有最好,只有更好 3.3 运算符和表达式5.5.逻辑表达式:逻辑表达式:用逻辑运算符将逻辑型运算元素连接起来的式子,其结果仍是逻辑型数据。(1)AND(与):两个表达式的值均为真,结果才为真;否则为假。(2)OR(或):两个表达式的值均为假,结果才为假。(3)NOT、!(取反):真值变为假值,假值变为真值。例如,?105.AND.55.OR.5x2+y2.AND.NOT.(y1y2)的结果为.F.化学化工学院Visual FoxPro课程没有最好,只有更好3.4 函 数1.1.函数函数 函数是一种能够完成某种特定操作或功能的数据形式。一个函数可以接受一个或多个参数,并通过特定的运算返回一个值。
16、n 格式:函数名(参数1,参数2)n 函数值:函数的运算结果 n 说明:任何可以使用表达式的地方都可以使用函数。3.3.函数的类型函数的类型n 系统函数:由VFP提供的内部函数,包括数值处理函数、字符处理函数、日期和时间处理函数、数据类型转换函数、测试函数、其它函数等.n 自定义函数:由用户自己定义的函数化学化工学院Visual FoxPro课程没有最好,只有更好3.5 命令1.1.命令动词命令动词 所有命令都以命令动词开头,一般为一个英文动词,表示要执行的命令功能。3.3.子句子句 用来修饰或限制命令。(1)范围子句 指明在哪些记录范围内执行命令,有四种:n RECORD 表示指定第N个记录
17、;n NEXT 表示从当前记录开始的N个记录;n ALL 表示数据库的所有记录;n REST 表示从当前记录开始到最后一个记录。化学化工学院Visual FoxPro课程没有最好,只有更好3.5 命令(2)FIELDS子句 指明对数据表中的哪些字段执行命令。(3)FOR/WHILE子句 后面跟一个逻辑表达式,表示仅对符合 条件(即表达式的结果为.T.)的记录执行命令操作。例如,显示学生表中所有女生的学号、姓名、出生日期等信息,可使 用以下命令:LIST ALL FIELDS 学号,姓名,出生日期 FOR 性别=”女”显示命令范围要显示的字段条件化学化工学院Visual FoxPro课程没有最好
18、,只有更好3.5 命令3.3.命令书写规则命令书写规则(1)必须以命令动词开头,命令中可以含有一个或多个子句,子句的顺序任意。(2)命令动词和各子句之间用空格分开(空格数任意)。(3)命令动词可以缩写为前4个字符,且不区分大小写。(4)命令行的最大长度为254个字符,一行写不下时,要在行尾加续行符(西文分号;)分行,并在下行继续书写。化学化工学院Visual FoxPro课程没有最好,只有更好 第3章 VFP数据库及其操作化学化工学院Visual FoxPro课程没有最好,只有更好3.1 创建项目1.1.建立工作目录建立工作目录 组织和管理磁盘中的各类文件。3.3.建立项目文件建立项目文件(1
19、)菜单n 选择“文件|新建”命令n 单击常用工具栏中的“新建”按钮(2)命令:CREATE PROJECT 3 3打开项目文件打开项目文件 (1)菜单:选择“文件|打开”命令或单击常用工具栏中的“打开”按钮,在“打开”对话框中选择一个项目文件(*.PJX)。(2)命令:MODIFY PROJECT 化学化工学院Visual FoxPro课程没有最好,只有更好3.1 创建项目创建项目的方法化学化工学院Visual FoxPro课程没有最好,只有更好3.3.1 数据库的设计思想1 1设计步骤设计步骤(1)分析数据需求,确定数据库要存储哪些信息。(2)确定需要的数据表。(3)确定所需字段,即每个表中
20、要存储的信息(表的结构)。(4)确定关系,即各表之间的数据应该如何进行连接。(5)改进设计3.3.设计过程设计过程 (1)明确设计目的 (2)确定需要的数据表(3)确定表中需要的字段(4)确定表间关系(5)优化设计 化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 数据库的创建 数据库(.DBC)存储了所包含的表和表之间的关系,以及依赖于表的视图、连接和存储过程等信息。把表放入数据库中可以减少数据的冗余,保护数据的完整性。1.1.建立数据库建立数据库(1)项目管理器:“新建:数据库”(2)菜单:“文件|新建:数据库”(3)命令:CREATE DATABASE 3.3.在项
21、目中添加数据库在项目中添加数据库 方法是:在项目管理器中选定“数据库”项,单击“添加”按钮,在“打开”对话框中选择需要添加的数据库文件。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 数据库的创建选择“数据库”项单击“新建”按钮利用项目管理器建立数据库化学化工学院Visual FoxPro课程没有最好,只有更好3.3.3 数据库的基本操作1.1.打开数据库打开数据库(1)项目管理器:选定要打开的数据库,单击“打开”按钮。(2)菜单:选择“文件|打开”命令(3)命令 打开数据库文件 OPEN DATABASE 打开数据库文件所对应的数据库设计器 MODIFY DATABA
22、SE 化学化工学院Visual FoxPro课程没有最好,只有更好3.3.3 数据库的基本操作 3.3.关闭数据库关闭数据库(1)项目管理器:选定要关闭的数据库,单击“关闭”按钮。(2)命令:CLOSE DATABASES3.3.删除数据库删除数据库 (1)项目管理器:选定要删除的数据库,单击“移去”按钮,在对话框中选择“移去”命令,将从项目中移去选定的库文件;选择“删除”命令,则将选定的库文件从磁盘上删除。(2)命令:DELETE DATABABE 化学化工学院Visual FoxPro课程没有最好,只有更好3.3 创建数据表1.1.数据表和数据库数据表和数据库 表(Table)是 处理数据
23、和建立关系型数据库及应用程序的基本元素。数据库(DATABASE)是表的集合。3.3.数据表的类型数据表的类型(1)自由表:不属于任何数据库而独立存在的表(2)数据库表:属于某一数据库的表 使用项目管理器中的“移去”/“添加”命令,可以在数据库表和自由表之间相互转换。3.3.数据表的结构数据表的结构 形式上是一组相关联的数据按行和列排列的二维表格,用来描述一个实体。表中的每一列称为一个字段,每一行称为一条记录。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.1 基本概念n定义字段 为每个字段指定名称、数据类型和宽度,它们决定了表中的数据是如何被标识和保存的。(1)字段名 以
24、字母或汉字开头,由字母、汉字、数字或下划线组成,不能包含空格。数据库表字段名最长为128个字符,自由表字段名最长为10个字符。(2)字段类型 决定了存储在字段中的值的数据类型,有13种:字符型(C)、货币型(Y)、数值型(N)、浮点型(F)、日期型(D)、日期时间型(T)、双精度型(B)、整型(I)、逻辑型(L)、备注型(M)、通用型(G)、字符型(二进制)、备注型(二进制)。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.1 基本概念(3)字段宽度 指能够容纳存储数据的长度,字符型字段不得大于254个字节;浮点型和数值型字段的宽度为整数位和小数位的和再加 1(小数点占一位
25、),最多20位。(4)小数位 若字段的类型是数值型(N)和浮点型(F),还需给出小数位数。小数位数不能大于9,双精度型数据的小数位数不能大于18。(5)使用空值 在建立数据表时,可以指定字段是否接受空值(NULL)。n 输入数据 即给每个字段赋值。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 自由表的建立 1.1.定义表结构定义表结构 利用“表设计器”创建表的结构。打开表设计器有以下几种方法。(1)菜单:选择“文件|新建”命令。(2)命令:Create (3)项目管理器:在“数据”选项卡中选择“自由表”,单击“新建”命令。定义表结构就是设置表的字段属性,包括字段名、数
26、据类型、字段宽度和小数位数等。化学化工学院Visual FoxPro课程没有最好,只有更好打开表设计器的方法3.3.2 自由表的建立化学化工学院Visual FoxPro课程没有最好,只有更好3.3.2 自由表的建立3.3.输入记录输入记录 选择“显示”菜单下的“浏览”或“编辑”命令,打开“浏览”或“编辑”窗口。(1)一般数据的输入 字符型、数值型、逻辑型、日期型等字段类型可直接在浏览窗口或编辑窗口中输入数据。(2)备注型字段数据的输入 双击名为“memo”的备注字段标志,进入备注窗口,输入文本内容。(3)通用型字段数据的输入 双击名为“gen”的通用字段标志,进入通用型字段的输入编辑窗口。选
27、择“编辑|插入对象”命令,打开“插入对象”对话框,插入OLE对象。要删除备注字段或通用字段的内容,可双击字段名,打开编辑窗口,选择“编辑|清除”命令。化学化工学院Visual FoxPro课程没有最好,只有更好 3.3.2 自由表的建立 如果在数据表中定义了备注型或通用型字段,系统就会自动生成相应的备注文件(.FPT),其主文件名与相应的表文件名相同。备注文件是表文件的辅助文件,专门用于存放数据表中所定义的备注型或通用型字段的实际内容;它随着表文件的打开而打开,随着表文件的关闭而关闭。无论一个数据表中定义了多少个备注型或通用型字段,系统只生成一个备注文件,存放这个表文件中的所有备注型或通用型字
28、段的内容。化学化工学院Visual FoxPro课程没有最好,只有更好3.3.3 数据库表的建立1.1.在数据库中建立新表在数据库中建立新表 (1)项目管理器:在“数据”选项卡中,单击“数据库”项前的“+”号,展开该数据项;然后选定“表”,再单击“新建”按钮。使用项目管理器创建的表自动包含在项目文件中。(2)当数据库处于打开状态时,用建立自由表的方法创建的新表将包含在该数据库中。3.3.将自由表添加到数据库将自由表添加到数据库(1)项目管理器:在“数据”选项卡中展开”数据库“项,选择“表”项,再单击“添加”按钮。(2)命令:ADD TABLE 化学化工学院Visual FoxPro课程没有最好
29、,只有更好3.3.3 数据库表的建立 数据库中的表只能属于一个数据库文件,如果向当前数据库中添加的表已属于其它数据库,则需要先从其它数据库中移去该数据表,然后才能将它添加到当前数据库中。3 3从数据库中移去数据表从数据库中移去数据表(1)项目管理器:选中要移去的表,单击“移去”按钮,在提示对话框,选择“移去”。若选择“删除”,则不仅从数据库中移去该表,同时也从磁盘上删除了该表。(2)命令:REMOVE TABLE 化学化工学院Visual FoxPro课程没有最好,只有更好移去数据库表时的提示框3.3.3 数据库表的建立化学化工学院Visual FoxPro课程没有最好,只有更好3.4.1 数
30、据表的浏览1.1.打开数据表打开数据表(1)菜单:选择“文件|打开”命令。(2)命令:USE 3.3.浏览与显示表结构浏览与显示表结构 (1)浏览表结构 项目管理器:选定要浏览的表,单击“修改”按钮,打开表设计器。菜单:选择“文件|打开”命令,打开要浏览的数据表;然后选择“显示|表设计器”命令,打开表设计器。(2)显示表结构(主窗口)命令:LIST|DISPLAY STRUCTURE化学化工学院Visual FoxPro课程没有最好,只有更好3.4.1 数据表的浏览3.3.浏览与显示记录浏览与显示记录(1)在浏览窗口中浏览记录 项目管理器:选定要浏览的表,单击“浏览”按钮。对于备注型字段或通用
31、型字段内容,可以在浏览窗口中双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口浏览。菜单:选择“文件|打开”命令,打开要浏览的数据表。然后从“显示”菜单中选择“浏览”或“编辑”命令,打开浏览窗口。命令:BROWSE化学化工学院Visual FoxPro课程没有最好,只有更好3.4.1 数据表的浏览(2)在浏览窗口中有选择地浏览记录 菜单:打开浏览窗口,选择“表|属性”命令,打开“工作区属性”对话框。n 在“数据过滤器”中输入筛选条件,可以只显示满足筛选条件的记录。删除筛选表达式,可恢复显示所有记录。n 在“工作区属性”对话框的“允许访问”栏中,选中“字段筛选指定的字段”选项,单击“字
32、段筛选”按钮,打开“字段选择器”对话框,选择要显示的字段,可以只显示选定的字段内容。若在“允许访问”栏内选择“工作区中的所有字段”选项,可取消对字段访问的限制,恢复显示所有字段。化学化工学院Visual FoxPro课程没有最好,只有更好“工作区属性”对话框:设置数据过滤器输入筛选条件3.4.1 数据表的浏览化学化工学院Visual FoxPro课程没有最好,只有更好“工作区属性”对话框:设置字段筛选3.4.1 数据表的浏览化学化工学院Visual FoxPro课程没有最好,只有更好3.4.1 数据表的浏览 命令n 设置数据过滤器:SET FILTER TO n 设置字段过滤器:SET FIE
33、LDS TO ALL|(3)显示记录(主窗口)命令:LIST|DISPLAY FIELDS WHILE FOR 例如,要显示“学生”表中所有女生的学号、姓名和所在系的信息,可使用以下命令:USE E:VFP6DATA学生.DBF&打开学生表 LIST FIELDS 学号,姓名,系别 FOR 性别=”女”化学化工学院Visual FoxPro课程没有最好,只有更好3.4.2 记录的定位 1.1.记录指针记录指针 记录指针存放的是记录号。向表中录入数据时,系统会按照录入次序为记录加上记录号。数据表刚打开时,记录指针总是指向首记录;通过移动记录指针可以指定当前要操作的记录。数据表文件的逻辑结构 首记
34、录(TOP)第2条记录文件起始标识(BOF)第n-1条记录 尾记录(Bottom)文件结束标识(EOF)记录指针化学化工学院Visual FoxPro课程没有最好,只有更好3.4.2 记录的定位3.3.移动记录指针移动记录指针(1)菜单:打开浏览窗口,选择“表|转到记录”命令。化学化工学院Visual FoxPro课程没有最好,只有更好3.4.2 记录的定位(2)命令n 绝对移动:GO|TOP|BOTTOM功能:将记录指针定位在指定记录号的记录上。TOP表示第一条记 录,BOTTOM表示最后一条记录。n 相对移动:SKIP +|-功能:将记录指针从当前位置向前或向后移动若干条记录位置。n 条件
35、定位:LOCATE FOR WHILE 功能:查找满足条件的第一条记录。说明:使用 CONTINUE 命令可继续查找下一条满足条件的记录。化学化工学院Visual FoxPro课程没有最好,只有更好3.4.2 记录的定位例如,USE E:VFP6DATA学生 GO TOP&指向首记录 GO BOTTOM&指向最后一条记录GO 3&指向第3条记录 SKIP 5&指向第8条记录SKIP 5&指向第3条记录 *将记录指针定位在学生表中第一条性别为男的记录上 LOCATE FOR 性别=”男”CONTINUE&继续查找下一个满足条件的记录化学化工学院Visual FoxPro课程没有最好,只有更好 3
36、.5.1 修改表结构 在表设计器中可以修改表结构。1.1.项目管理器:项目管理器:选定要修改的表,单击“修改”按钮。(1)修改已有的字段(2)增加新字段(3)删除字段(4)改变字段顺序3.3.菜单:菜单:选择“文件|打开”、“显示|表设计器”3.3.命令:命令:Modify Structure 修改字段属性后,VFP将按新的属性改写整个.dbf 文件,可能造成数据丢失。化学化工学院Visual FoxPro课程没有最好,只有更好 3.5.2 添加记录1 1在浏览窗口中追加记录在浏览窗口中追加记录(1)菜单:打开浏览窗口,选择“显示|追加方式”命令,可以在原有记录的后面追加多条新记录。选择“表|
37、追加新记录”,每次只能添加一条新记录。(2)命令:APPEND 3.3.插入记录插入记录 命令:INSERT BEFORE 功能:在数据表的某个记录之前或之后插入一条记录。化学化工学院Visual FoxPro课程没有最好,只有更好 3.5.2 添加记录3 3从其它文件中追加记录从其它文件中追加记录 (1)菜单:打开浏览窗口,选择“表|追加记录”命令。(2)命令:APPEND FROM FIELDS FOR 功能:将满足条件的记录按指定的字段从源表文件中追加到当 前数据表的末尾。例如,将“课程”表中的相应数据追加到“课程安排”表中:USE E:VFP6DATA课程安排 APPEND FROM
38、E:VFP6DATA课程.DBF FIELDS 课程号,课程 化学化工学院Visual FoxPro课程没有最好,只有更好3.5.3 编辑记录1.1.在浏览窗口中编辑记录在浏览窗口中编辑记录(1)项目管理器:选定表,单击“浏览”按钮,打开浏览窗口,直接修改字段值。关闭浏览窗口,所做的修改将自动保存在表文件中。对于备注型字段或通用型字段内容,可以双击相应的字段标志(“Memo”或“Gen”),打开编辑窗口进行编辑或修改。(2)命令:BROWSE 3.3.批量修改记录批量修改记录 对一批记录中的若干字段进行编辑修改。(1)菜单:打开数据表,选择“表|替换字段”命令,出现“替换字段”对话框。化学化工
39、学院Visual FoxPro课程没有最好,只有更好3.5.3 编辑记录“替换字段”对话框要修改的字段修改后的值条件化学化工学院Visual FoxPro课程没有最好,只有更好3.5.3 编辑记录(2)命令:REPLACE WITH ADDITIVE ,WITH ADDITIVE FOR WHILE 功能:对表中指定范围内的满足条件的记录进行批量修改。例如,将“学生”表中管理系的每个学生减去15.5元助学金,加上50元奖学金。USE E:VFP6DATA学生 REPLACE ALL 助学金 WITH 助学金-15.50,;奖学金 WITH 奖学金+50.0 FOR 系别=”管理”化学化工学院V
40、isual FoxPro课程没有最好,只有更好 3.5.4 删除记录 1.1.逻辑删除逻辑删除:给记录加删除标记(1)鼠标操作:在浏览窗口中,单击左侧的白色方框使之变黑。(2)菜单:选择“表|删除记录”命令(3)命令:DELETE FOR WHILE 3.3.恢复逻辑删除恢复逻辑删除:取消删除标记(1)鼠标操作:单击逻辑删除标记,取消黑色方框。(2)菜单:选择“表|恢复记录”命令(3)命令:RECALL FOR WHILE 3.3.物理删除:物理删除:从磁盘上删除记录,不可恢复。(1)菜单:选择“表|彻底删除”,删除带有删除标记的记录。(2)命令:PACK(删除带有删除标记的记录)ZAP (清
41、除表中所有记录,仅保留表结构)化学化工学院Visual FoxPro课程没有最好,只有更好3.5.5 复制数据表1 1数据表文件的复制数据表文件的复制(1)菜单:打开表文件,选择“文件|导出”,显示“导出”对话框。(2)命令:COPY TO FIELDS FOR WHILE 3.3.数据表结构的复制数据表结构的复制 将表结构复制到一个新表中。命令:COPY STRUCTURE TO FIELDS 3.3.数据表文件的更名数据表文件的更名 在项目管理器中右击要重命名的表,从快捷菜单中选择“重命名”命令,打开“重命名文件”对话框,输入新的文件名。化学化工学院Visual FoxPro课程没有最好,
42、只有更好3.5.5 复制数据表利用“导出”对话框和“导出选项”对话框复制数据表复制后的新表数据源表选择要复制的记录范围条件选择要复制的字段化学化工学院Visual FoxPro课程没有最好,只有更好3.5.5 复制数据表更改数据库表的名称右击数据表更改后的表名化学化工学院Visual FoxPro课程没有最好,只有更好3.5.6 数据表与数组之间的数据交换1将表的当前记录复制到数组将表的当前记录复制到数组命令:SCATTER FIELDS MEMO TO|MEMVAR功能:将数据表的当前记录按字段顺序复制到数组或内存变量。例如,USE E:VFP6DATA学生 *将第1条记录的姓名、性别和系别
43、3个字段复制到数组AA中 SCATTER FIELDS 姓名,性别,系别 TO AA GO 5 *将第5条记录复制到数组BB中,包括备注型字段的内容 SCATTER TO BB MEMO 化学化工学院Visual FoxPro课程没有最好,只有更好3.5.6 数据表与数组之间的数据交换3.将数组复制到表的当前记录将数组复制到表的当前记录命令:GATHER FROM|MEMVAR FIELDS MEMO 功能:将数组元素或同名内存变量的值顺序复制到当前记录的指定 字段中。例如:USE E:VFP6DATA学生 *在表的末尾增加一条空记录 APPEND BLANK *将数组 AA 中的数据复制到当
44、前的空记录中 GATHER FROM AA FIELDS 姓名,性别,系别 化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.1 数据表排序 排序是把数据表中的记录按照某个字段值的大小重新排列,作为排序依据的字段称为“关键字”。按照关键字的值从小到大的排序称为升序,从大到小的排序称为降序。排序后生成一个新的数据表文件,其结构和数据可以与源文件完全相同,也可以取自源文件的一部分字段。命令:SORT TO ON /A/D/C ,/A/D/C ASCENDING/DESCENDING FOR FIELDS 化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.1
45、数据表排序例如,对“学生”表中所有贷款的学生按“系别”的升序进行排序,排序后的新表文件为“贷款学生”:USE E:VFP6DATA学生 SORT TO 贷款学生 ON 系别 FOR 贷款否 对“学生”表中的数据按“系别”升序进行排序,系别相同者,按“学号”降序进行排序。排序后的文件为“各系学生”:USE E:VFP6DATA学生 SORT TO 各系学生 ON 系别,学号/D化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.2 数据表索引 1 1 基本概念基本概念(1)索引 是由指向表记录的指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。索引文件和表文件分别存储,
46、并且不改变表中记录的物理顺序。(2)索引的类型 组织方式上分,有三类。独立索引 在索引文件中只包含一个单一的关键字或者组合关键字的索引,独立索引文件的扩展名为.IDX。结构复合索引 在索引文件中可以包含多个索引项的索引。结构复合索引文件的扩展名为.CDX,是最常用的一种索引类型。化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.2 数据表索引结构复合索引的特点:n 结构复合索引的文件主名与数据表文件主名相同n 在用一索引文件中可以包含多个索引关键字n 在打开数据表时自动打开n 对表进行添加、修改、更新、删除等操作时自动维护索引 非结构复合索引 索引文件的扩展名也是.CDX,
47、但文件主名与数据表文件不相同,它不会随着数据表文件的打开而打开,需要使用单独的打开命令。化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.2 数据表索引(3)索引关键字 是指建立索引用的字段或字段表达式,可以 是表中的单个字段,也可以是几个字段组成的表达式。复合索引表达式通常用字符串运算符“+”将几个字段连接起来。当各字段类型不同时,必须转换为相同的数据类型。创建索引文件时就是根据索引关键字值的大小从逻辑上重新安排数据表中各条记录的组织顺序。化学化工学院Visual FoxPro课程没有最好,只有更好3.6.2 数据表索引(4)索引关键字的类型 主索引:索引表达式的值唯一,
48、即记录不允许有重复值。只有数据库表才能有一个主索引。候选索引:索引表达式的值唯一,即记录不允许有重复值。一个表可以有多个候选索引。惟一索引:索引表达式的值惟一,若有重复,只取第一个值。一个表可以有多个唯一索引。普通索引:索引表达式的值允许有重复。一个表可以有多个普通索引。化学化工学院Visual FoxPro课程没有最好,只有更好3.6.2 数据表索引3.3.建立复合索引建立复合索引(1)利用表设计器:选择“索引”选项卡。化学化工学院Visual FoxPro课程没有最好,只有更好3.6.2 数据表索引(2)命令:INDEX ON TAG UNIQUE|CANDIDATEASCENDING|D
49、ESCENDINGFOR 例如,用INDEX命令为“学生”表建立结构复合索引,包含4个索引项:学号(候选索引)、性别(普通索引)、系别与性别(普通索引)、系别与出生日期(普通索引)。USE E:VFP6DATA学生 INDEX ON 学号 TAG 学号 CANDIDATE INDEX ON 性别 TAG 性别 INDEX ON 系别+性别 TAG 系别_性别 INDEX ON 系别+DTOC(出生日期)TAG 系别_生日化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.2 数据表索引3 3.按索引顺序浏览记录按索引顺序浏览记录 一个复合索引文件中可以建立多个索引项,每一项代
50、表了处理记录的一种逻辑顺序。使用索引之前,应先指定将要使用的索引项。(1)菜单:打开浏览窗口,选择“表|属性”命令,打开“工作区属性”对话框,在“索引顺序”框中选择一个索引项,浏览窗口中的记录就会按按照该索引顺序排列。(2)命令:SET ORDER TO TAG 化学化工学院Visual FoxPro课程没有最好,只有更好“工作区属性”对话框:设置索引顺序3.6.2 数据表索引选择索引顺序化学化工学院Visual FoxPro课程没有最好,只有更好 3.6.3 数据表查询 数据表建立索引后,就可以使用FIND、SEEK 等查询命令,快速定位记录,提高数据库应用系统的运行效率。1 1FIND F