版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual
FoxPro数据库与程序设计教程奥通课件前言
VisualFoxPro6.0关系数据库管理系统是新一代数据库管理系统的杰出代表,以它强大的性能、完整而又丰富的工具、超高速的速度、极其友好的界面,以及完备的兼容性等特点,吸引众多的国内外用户,倍受广大用户的欢迎。
VisualFoxPro6.0及它的中文版,是可运行于Windows95和Windows98平台的数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。VisualFoxPro6.0使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。用户利用可视化的设计工具和向导,可以快速创建表单,查询和打印报表。
VisualFoxPro6.0还提供了一个集成化的系统开发环境,它不仅支持过程式编程技术,而且在语言方面作了强大的扩充,支持面向对象可视化编程技术。由于VisualFoxPro6.0拥有功能强大的可视化程序设计工具,使程序设计简单易行。
本课程是根据教育部提出的非计算机专业计算机基础教学三个层次要求,并配合全国计算机等级考试“VisualFoxPro二级”考试大纲的知识要点,以VisualFoxPro6.0为主要内容,介绍关系数据库管理系统基础理论及应用系统开发知识。不仅介绍数据库基础理论,介绍了VisualFoxPro6.0的基本操作;而且介绍面向对象可视化编程、应用系统开发的方法、步骤。目录第一章数据库系统概述第二章VisualFoxPro系统概述第三章VisualFoxPro6.0语言基础第四章表和索引第五章数据库及其操作第六章查询与视图第七章结构化查询语言第八章程序设计基础第九章面向对象程序设计第十章表单设计第十一章报表设计第十二章菜单设计
第十三章应用程序的生成和发布第一章数据库系统概述返回目录本章要点数据库系统基础知识现实世界的数据描述关系模型关系操作关系完整性关系的规范化返回目录1.1数据库系统基础知识
1.1.1数据库系统基本概念1.数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。2.信息(Information)是客观事物属性的反映。它所反映的是关于某一客观系统中某一事物的某一方面属性或某一时刻的表现形式。
上一页下一页要点
3.
数据与信息在概念上是既有联系又有区别的。数据是信息的载体,信息是数据的内涵。
4.数据处理是从已知的、原始的或杂乱无章的数据中推导出对人们有用的数据或信息的过程。数据处理的目的是从大量的数据中获得人们所需要的资料并提取有用的数据成份,作为行为和决策的依据。数据管理是指数据的收集、整理、组织、存储、查询和传送等各种操作,是数据处理的基本环节。数据库技术就是一种数据管理技术。上一页下一页要点
1.1.2数据管理技术发展数据管理技术的发展经历了人工管理阶段、文件管理阶段和数据库管理阶段。1.手工管理阶段(20世纪50年代中期以前)(1)数据不能存储(2)没有软件对数据实施统一管理(3)数据不能共享(4)数据的独立性差
上一页下一页要点
2.文件管理阶段(20世纪50年代后期~60年代中期)(1)数据可以长期保存(2)应用程序和数据之间具有“设备独立性”(3)数据可以重复利用
上一页下一页要点
3.数据库管理阶段(20世纪60年代末以后)(1)采用复杂的数据模型表示数据结构(2)有较高的数据独立性(3)数据共享性高,冗余度低,易扩充(4)数据由DBMS统一管理和控制上一页下一页要点
1.1.3数据库系统组成
1.软件部分(1)操作系统(OS)(2)数据库(DB)(3)数据库管理系统(DBMS)(4)其他支持软件(5)应用软件上一页下一页要点2.硬件部分(1)要求有足够大的内存(2)有足够大的能直接存储的磁盘空间(3)CPU要有一定的处理速度(4)要求系统有较高的通信能力3.人员(1)数据库管理员(2)系统分析员(3)应用程序员(4)用户上一页下一页要点
1.1.4数据库体系结构1.数据库系统模式的概念模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到类型的描述,而不涉及到具体的数值。
2.数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、概念模式和内模式三级模式构成。3.数据库的两级映像功能与数据的独立性
数据库的三级模式体系结构之间的差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级模式结构之间提供了两个层次的映像,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中具体的表示方式和存储方式。(1)外模式/概念模式映像(2)概念模式/内模式映像1.1.5数据库管理系统1.数据库管理系统(DBMS)的功能DBMS是位于用户和操作系统之间的一层数据管理软件,它属于系统软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新以及各种数据控制。DBMS的主要功能如下:(1)定义功能DDL。(2)数据操作功能DML。(3)数据库的运行管理。(4)数据库的建立和维护功能。2.数据库管理系统组成DBMS由两大部分组成:查询处理器和存储管理器。(1)查询处理器有4个主要部分:DDL编译器、DML编译器、嵌入式DML的预编译器和查询运行核心程序。(2)存储管理器有4个主要部分:授权的完整性管理器、事务管理器、文件管理器和缓冲区管理器。数据库管理系统(DBMS)是数据库系统的核心。DBMS总是基于某种数据模型的,根据数据模型的不同,DBMS可以分为层次型、网状型、关系型和面向对象型等。1.2数据模型1.2.1数据描述1.现实世界现实世界是存在于人们头脑之外的客观世界,是客观事物及其相互联系。2.信息世界信息世界是现实世界的符号描述,即将客观世界用数据来描述。信息世界就是数据世界。3.机器世界信息世界中的数据在机器世界中的存储,成为计算机的数据。上一页下一页要点1.2.2概念模型概念模型是独立于计算机系统的数据模型,用于描述某个特定的信息结构,属于信息世界的建模。
概念模型的表示方法很多,其中最为常用的是P.P.Chen于1976年提出的实体-联系图方法,简称E-R模型。E-R模型中包含“实体”、“联系”和“属性”三个基本成分。上一页下一页要点图1-6教学管理E-R模型图学生课程教师职称性别姓名教师号所在系学号性别姓名课程名课程号3学时学分学教成绩N1MN出生日期1.2.3数据模型基本要素为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。数据模型是数据库管理系统用来表示实体及实体间联系的方法。数据库的数据模型包含数据结构、数据操作和完整性约束三个部分。(1)数据结构是实体和实体间联系的表示和实现。(2)数据操作是数据库的查询和更新操作的实现。(3)数据完整性约束是数据及其联系应具有的制约和依赖规则。上一页下一页要点
1.2.4数据模型分类数据库管理系统所支持的数据模型分为四种:层次模型、网状模型、关系模型和面向对象模型。面向对象模型是将面向对象技术与数据库技术相结合的产物,完全面向对象的数据库管理系统目前并未成熟,因此传统的数据模型有层次模型、网状模型、关系模型三种。上一页下一页要点图1-7层次结构示意图大学学院处系1系2研究所研究室科教研室1教研室1ABCBACADCB(A)(B)(C)1.3关系模型
1.3.1关系模型概念、组成和性质1.关系模型概念
一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。2.关系的组成关系是以元组为元素的集合。简单的说,关系就是集合,可以用大写字母R1,R2,R来表示。关系中涉及的概论如下:(1)元组(2)属性(3)域(4)关键字(5)候选关键字(6)主关键字(7)外部关键字(8)主属性和非主属性上一页下一页要点表1-1一个实际的关系学号姓名性别出生日期党员否专业代码200501001王小岩男10/12/87F01200501002赵军男03/16/88T01200402001张新女07/10/88F02200403001李华女09/20/87F03200403002陈丽萍女11/15/87T03上一页上一页下一页要点1.3.2建立关系模型图1-9教学管理模式E-R图学号姓名出生日期性别学生学生-课程课程成绩课程号课程名学分专业代码学时党员否表1-3学生信息学号姓名性别出生日期党员否专业代码200501001王小岩10/12/87F01200501002赵军男03/16/88T01200402001张新女07/10/88F02200403001李华女09/20/87F03200403002陈丽萍女11/15/87T03表1-4课程信息课程号课程名学分学时0101数据库原理3480102数据结构3320103C语言2320201数学分析3480202高等代数2320301当代文学2 32表1-5学生-课程学号课程号成绩2005010010101962005010020101872005010010102762005010020102672004030010301542004030020301821.4关系操作
1.4.1集合运算1.并:两个相同结构关系的并是由属于这两个关系的元组组成的集合。2.交:两个具有相同结构的关系R和S,它们的交是由既属于R又属于S的元组组成的集合。交运算的结果是R和S的共同元组组成。3.差:设有两个相同结构的关系R和S,R差S的结果是由属于R但不属于S的元组组成的集合,即差的运算结果是从R中去掉S中也有的元组。4.笛卡尔积运算:笛卡尔积是关系这类集合所特有的一种运算,其运算符号是运算符“×”,是一个二元关系运算,两个运算对象可以是同类型的关系也可以是不同类型的关系,若R1是m元的关系,R2是n元的关系,则R1×R2是m+n元的关系,R1×R2的元组是由R1的分量和R2的分量组成。上一页下一页要点
1.4.2特殊的集合运算1.选择:从关系中找出满足给定条件的元组的操作称为选择。2.投影:从关系模式中指定若干个属性组成新的关系称为投影。投影是从列的角度进行的运算,相当于对关系进行垂直分解。3.联接:联接是关系的横向结合。联接运算将两个关系模式连接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。4.自然联接:在联接运算中,按照对应属性值相等为条件进行联接的操作称为等值联接。自然联接是去掉重复属性的等值联接。上一页下一页要点1.5关系完整性1.5.1关系模式关系模式是对关系的描述,一个关系模式对应一个关系的结构,关系模式的定义包括:模式名、属性名、值域名以及模式的主键。由于不涉及物理存储方面的描述,因此关系模式仅仅是对数据特性的描述。1.5.2实体完整性实体完整性规则要求记录关键字的字段不能为空,不同记录的关键字的字段值也不能相同,否则,不能区分现实世界存在的实体。例如,学号、职工号这些属性都不能取空值。1.5.3参照完整性参照完整性规则要求关系中“不应使用不存在的实体”。例如在联系成绩-课程中课程号字段出现的课程号,必须在课程关系中存在,假如在关系课程中找不到“小学算术”这个课程的课程号,而在成绩-课程中出现了记录:(200501001,C01(小学算术),99),那么这条记录就是一条错误的记录,因为它违背了参照完整性规则。1.5.4用户定义完整性用户定义完整性是针对某一具体数据的约束条件,由应用环境决定。第二章VisualFoxPro系统概述返回目录本章要点VisualFoxPro系统概述
VisualFoxPro基本知识
辅助设计工具
项目管理器
返回目录2.1VisualFoxPro系统概述2.1.2VisualFoxPro6.0性能指标
参见教材11页2.1VisualFoxPro系统概述
2.1.3VisualFoxPro6.0的特点1.采用面向对象的程序设计技术2.一种可视化的程序设计方法3.对FoxBase的兼容4.友好的程序设计界面5.增加了数据类型和函数6.采用了OLE技术7.客户机/服务器功能
上一页下一页要点2.1.4文件类型
书13页是VisualFoxPro6.0的主要文件类型。上一页下一页要点2.1.5VisualFoxPro6.0的安装和启动安装VFP6.0
2.启动系统3.退出系统上一页下一页要点
2.2VisualFoxPro基本知识2.2.1初识VisualFoxPro6.02.2.2VisualFoxPro6.0的系统设置2.2.3VisualFoxPro的窗口组成2.2.1~2.2.3参见教材。菜单栏工具栏命令窗口状态栏工作区标题栏上一页下一页要点菜单栏菜单栏位于屏幕的第二行,它包含文件、编辑、显示、格式、工具、程序、窗口和帮助8个菜单选项。当单击其中一个菜单选项时,就可以打开一个对应的“下拉式”菜单,在该“下拉式”菜单下,通常还有若干个子菜单选项,当选择其中一个子菜单选项时,就可以执行一个操作。上一页下一页要点激活工具栏的操作步骤
显示
工具栏
“常用”确定上一页下一页要点工具栏VisualFoxPro系统提供了11种常用的工具栏:(1)常用工具栏(2)布局工具栏(3)表单控件工具栏(4)表单设计器工具栏(5)查询设计器工具栏(6)视图设计器工具栏(7)数据库设计器工具栏(8)报表控件工具栏(9)报表设计器工具栏(10)调色板工具栏(11)打印预览工具栏上一页下一页要点命令窗口命令窗口位于菜单栏和状态栏之间,是VisualFoxPro系统命令执行、编辑的窗口。在命令窗口中,可以输入命令实现对数据库的操作管理;也可以用各种编辑工具对操作命令进行修改、插入、删除、剪切、拷贝、粘贴等操作;还可以在此窗口建立命令文件并运行命令文件。在“窗口”菜单下,选择“隐藏”,可以关闭命令窗口;选择“命令窗口”,可以弹出命令窗口。
上一页下一页要点工作区与状态行状态行位于屏幕的最底部,用于显示某一时刻的管理数据的工作状态。(1)SetStatusoff/on,可控制屏幕上的状态行是否出现。(2)如果当前工作区中没有表文件打开,状态行的内容是空白;如果当前工作区中有表文件打开,状态行显示表名、表所在的数据库名、表中当前记录的记录号、表中的记录总数、表中的当前记录的共享状态等内容。上一页下一页要点2.2.4命令语法规则
1.命令格式
2.命令的书写格式
3.命令执行
4.命名规则
1.命令格式(1)命令结构:命令动词+对象+子句(2)格式说明中的符号约定:[]表示可选项、<>表示必选项、|表示在其左右参量中任选一项;命令动词、关键字、参量之间用空格分隔。2.命令的书写格式(1)命令动词必须放在句首,子句可以放在任意位置;(2)一行只能写一条命令;(3)一条命令可以使用续行符(;)分多行书写;(4)命令动词和关键字可以用前四个字符简写;(5)命令动词、关键字、变量名和文件名中的字母可以大小写混合。
上一页下一页要点
3.命令执行(1)在“命令”窗口中输入VFP命令,按Enter键执行;(2)在按Enter键执行命令之前,按Esc键删除文本;(3)将光标移到以前命令行的任意位置,按Enter键可重新执行此命令;(4)选择要重新处理的代码块,然后按Enter键。上一页下一页要点
4.命名规则(1)命令一般由字母(汉字)、数字和下划线组成;(2)不能用保留字;(3)文件名、对象名、属性名、事件名和方法程序名用首字母大写方式表示;(4)如果名称中包含多个单词,则将各单词连写,并且每个字母的首字母大写;(5)库名、表名和字段名通常用小写字母表示。上一页下一页要点
2.3辅助设计工具
2.3.1VisualFoxPro向导
VisualFoxPro系统为用户提供许多功能强大的向导。用户通过系统提供的各种不同的向导设计器,不用编程就可以创建良好的应用程序界面,并完成许多有关对数据库的操作。
常用的向导设计器有:表向导、报表向导、表单向导、查询向导等。上一页下一页要点
2.3.2VisualFoxPro设计器VisualFoxPro系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。常用的设计器有:表设计器、查询设计、视图设计器、列表框生成器、报表设计器、数据库设计器、菜单设计器等。上一页下一页要点2.3.2VisualFoxPro生成器VisualFoxPro系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。用户可以将生成器生成的用户界面直接转换成程序代码,把用户从逐条编写程序、反复调试程序的工作中解放出来。常用的生成器有:组合框生成器、命令组生成器、表达式生成器、列表框生成器等。上一页下一页要点
2.4项目管理器
2.4.1项目管理器的功能1.项目文件2.项目的组成3.项目文件的创建4.项目文件的打开5.项目管理的功能(1)数据管理(2)文档管理(3)类、代码和其他管理上一页下一页要点2.4.2项目管理器的界面操作1.查看项目中的内容2.添加或移去文件3.创建和修改文件4.查看项目中文件的详细内容5.项目间共享文件习
题
一、简答题1.简述项目文件的创建步骤?2.解释下列工具的作用。(1)设计器(2)生成器(3)向导3.在项目管理器中怎样添加文件和移去文件?二、选择题1.在VFP中若要制定工具栏,应操作的菜单是()。 A.“显示” B.“工具” C.“窗口” D.“文件”2.项目管理器中有6个选项卡,以下名字中不属于选项卡的是()。A.类 B.数据C.程序 D.文档3.显示和隐藏命令窗口的操作是()。A.单击“常用”工具栏上的“命令窗口”按钮B.通过“窗口”菜单下的“命令窗口”选项来切换C.直接按Ctrl+F2或Ctrl+F4组合键D.以上方法都可以4.在使用项目管理器时,如果需要在项目管理器中创建文件,则可以用“新建...”命令按钮,那么新建的这个文件将()。 A.自动包含在该项目中B.不被包含在该项目中C.既可包含也可不包含在该项目中D.可被任何项目包含5.在使用项目管理器时,如果要移去一个文件,在提示的框中选择“Remove(移去)”按钮,系统将会把所选择的文件移走。选择“Delete(删除)”按钮,这系统将会把该文件()。A.仅仅从项目中移走B.仅仅从项目中移走,磁盘上的文件未被删除C.不仅从项目中移走,磁盘上的文件也被删除D.只是不保留在原来的目录中6.打开VFP“项目管理器”的“文档”选项卡,其中包含()。 A.表单(Form)文件B.报表(Report)文件 C.标签(Label)文件D.以上三种文件7.VFP主界面的菜单栏中不包括菜单项是()。A.“编辑” B.“工具”C.“窗口”D.“项目”8.在VFP中,通过()可定义表单或报表所使用的数据源,包括表、视图和关系。A.数据库设计器 B.查询设计器C.视图设计器 D.数据环境设计器三、填空题1.项目管理器的
选项卡用于显示和管理数据库、自由表和查询等。2.在VFP中,项目文件的扩展名是
。3.扩展名为.prg的程序文件在“项目管理器”的
选项卡中显示和管理。4.利用应用程序向导创建一个新项目有两种途径,一是创建一个
,用来分类管理其他文件;二是使用
生成一个项目和一个VFP应用程序框架。
第三章VisualFoxPro6.0语言基础返回目录本章要点常量、变量和数据类型
常用函数及其应用运算符和表达式
返回目录3.1常量、变量和数据类型3.1.1数据类型
1.字符型
字符型(Character)数据是描述不具有计算能力的文字数据类型,是常用的数据类型之一。字符型数据由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,最大长度是254个字符。
上一页下一页要点2.数值型
数值型数据在VisualFoxPro系统中被细分为以下4种类型。(1).数值型(Numeric)数据是由数字(0~9)、小数点和正负号组成。最大长度为20个字符(包括+、-号和小数点)。(2).浮点型(Float)数据是数值型数据的一种,与数值型数据完全等价,只是在存储形式上采取浮点格式且数据的精度要比数值型数据高。上一页下一页要点
(3).双精度型(Double)数据是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储。(4).整型(Integer)数据是不包含小数点部分的数值型数据。3.货币型(Money)数据是数值型数据的一种特殊形式,在数据的第一个数字前冠一个货币符号($)。货币型数据小数位的最大长度是4个字符,小数位超过4个字符的数据,系统将会按四舍五入原则自动截取。上一页下一页要点
3.日期型日期型(Date)数据是用于表示日期的数据,长度固定为8个字符。日期型数据包括年、月、日三个部分,每部分间用规定的分隔符分开。表现形式由以下几个SET命令决定:SetDateToSetCenturyOn/OffSetDateSetStrictdateTo上一页下一页要点4.
日期时间型日期时间型(DateTime)数据是描述日期和时间的数据,长度固定为8个字符。日期时间型数据除包括日期数据的年、月、日外,还包括时、分、秒以及上午、下午等内容。5.逻辑型逻辑型(Logic)数据是描述客观事物真假的数据,用于表示逻辑判断结果。逻辑型数据只有真和假两种值,长度固定为1个字符。上一页下一页要点6.备注型备注型(Memo)数据用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为4个字符,而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。上一页下一页要点7.通用型
通用型(General)数据是用于存储OLE对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。通用型数据长度固定为4个字符,实际数据长度仅受限于现有的磁盘空间。上一页下一页要点3.1常量、变量和数据类型
3.1.2常量常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的操作中其值不变。
常量类型有以下6种:
1.数值型常量2.货币型常量3.字符型常量4.逻辑型常量5.日期常量6.日期时间型常量上一页下一页要点1.字符型常量字符型常量是由ASCII中的可打印字符(英文字母、数字、标点符号等)和汉字构成的由定界符括起来的串。在VisualFoxPro6.0中,字符型定界符有三种:("")、('')或([])。如,"中华人民共和国"、'English'、[123_Abc]等都是合法的字符型常量。2.数值型常量数值型常量由数字、小数点和正负号构成。如,-123.89、80、+42.37等都是合法的数值型常量。3.浮点型常量浮点型常量是数值型常量的一个特殊情形,是用指数法或称为科学计数法表示的数值常量。如-1.23e+7、30e-3分别表示-1.23×107和30×10-3。4.逻辑型常量逻辑型常量由代表真或假的符号及定界符“..”构成。逻辑真的表示有:.t.、.T.、.y.、.Y.;逻辑假值的表示有:.f.、.F.、.n.、.N.。逻辑真假值常用于条件判断。5.日期型常量(1)日期型常量的输入与输出格式①常用的日期型常量的系统输出格式为:mm/dd/yy②常用的日期型常量的系统输入格式为:{^yyyy/mm/dd}其中,mm代表月份值,dd代表日值,yy或yyyy代表年份值。如,04/20/81是合法的日期输出常量、{^1981/04/20}是合法的日期输入常量。(2)改变日期输入输出格式及分隔符的设置①SetMarkto[分隔符]——设置日期分隔符其中,分隔符要用([])或("")或('')括起来。分隔符只能是一个可显示的字符。如,SetMarkto[=],即用“=”作为分隔符,则日期显示格式为04=20=81。②SetCenturyOn/Off——设置世纪格式开关当SetCenturyOn时,年份值为4位,否则年份值为2位。③SetDatetoAmerican|Mdy|Ymd——设置日期格式American和Mdy格式均为mm/dd/yy格式,Ymd格式为yy/mm/dd格式。还有其他的日期格式设置值,在此不一一介绍了。④SetStrictdateto[0/1/2]——设置日期格式检查功能0:不对日期数据的格式进行检查;1:输入日期必须符合{^yyyy/mm/dd}格式要求;2:对日期格式进行检查,同时也对CTOD()和DTOC()函数中的日期数据进行同样的检查。6.日期时间型常量(1)常用的日期时间型常量的系统输出格式为:mm/dd/yyhh:mm:ssAM|PM(2)常用的日期型常量的系统输入格式为:{^yyyy/mm/ddhh:mm:ssAM|PM}其中,第一个mm代表月份值,dd代表日值,yy或yyyy代表年份值,hh表示小时值,第二个mm表示分钟值,ss表示秒值,AM表示上午,PM表示下午。如有赋值:tt={^1981/3/220:30:50},则输出tt值为03/02/8108:30:50PM。除以上6种常量外,在数据表中的每个数据项均为合法常量。
3.1.3变量分类所谓变量就是在程序运行期间其值可以被改变的量。每个变量都有一个名称来标识,称为变量名。变量名最长可包含254个字符,是由字母、数字、汉字和下划线等汉字和字符构成,其中,字母不分大小写。在给变量起名时,应尽量作到见名知义。他分为:字段变量,内存变量,系统变量
上一页下一页要点
3.2.4字段变量字段变量就是指数据表中已定义的任意一个字段。在一个数据表中,同一个字段名下有若干个数据项,而数据项的值取决于该数据项所在记录行的变化,所以称它为字段变量,也有人把字段变量称为字段名变量。
上一页下一页要点(1)字段变量与内存变量的区别 可以看出,字段变量不同于内存变量的是字段变量一定属于某个数据表,另外,字段变量是多值变量,表中有多少条记录,字段变量就有多少个取值。上一页下一页要点
(2)字段变量的类型每个字段变量的类型是在建立数据表时由用户定义的,字段变量的类型有字符型(C)、逻辑型(L)、数值型(N)、浮点型(F)、双精度型(B)、整型(I)、日期型(D)、日期时间型(T)、货币型(Y)、通用型(G)和备注型(M)等。上一页下一页要点3.4表达式
表3-1学生登记简表学号姓名性别生日党员专业代码200501001王小岩男10/12/87F01200501002赵军男03/16/88T01200402001张新女07/10/88F02200403001李华女09/20/87F03200403002陈丽萍女11/15/87T03上一页下一页要点
1.内存变量内存变量是在系统内存中定义的简单变量,是内存中的一个临时存储单元,用来保留程序运行过程中的中间值或最终结果,以变量名称来标记该内存变量的存储单元地址。每一个内存变量在每时每刻可以保留一个值,内存变量的类型由所赋值的类型决定。在VisualFoxPro6.0中,内存变量的类型有数值型(N)、字符型(C)、货币型(Y)、逻辑型(L)、日期型(D)、日期时间型(T)和屏幕型(S)7种。上一页下一页要点
内存变量名的长度可以达到254个字符,是由字母、数字和下划线组成的。如果内存变量与数据表中的字段变量同名时,用户在引用内存变量时,要在其名字前加一个m.或(m-)。
内存变量的赋值和输出,可以使用Store、“=”或“?”等命令进行操作完成。
内存变量的作用域,可以通过Local、Private、Public命令确定,也可以使用系统默认的范围作为内存变量的作用域。释放内存变量可用Release、ClearAll/ClearMemorey命令。显示内存变量,可用list/display来显示上一页下一页要点
2.数组变量数组(Array)变量是一组有序内存变量的集合,或者说是由同一个名字标记起来的由下标进行区分的一组简单内存变量的集合。数组下标从1开始,每一个下标惟一对应着一个数组中的分量(或元素)。实际上,通过一个数组可以定义一组相互之间有一定关系的简单变量,由数组名来标识,但只算作一个内存变量。数组类型为A,每个数组元素可存储不同类型的值。上一页下一页要点在VisualFoxPro6.0中,只有一维数组和二维数组,没有多维数组。更确切地说,只有一维数组,二维数组是为了描述客观事物更方便些,它也是一维数组的一个变换形式。
(1)数组的定义格式1:DIMENSION<数组名1>(下标1[,下标2])[,<数组名2>(下标1[,下标2])],…格式2:DECLARE<数组名1>(下标1[,下标2])[,<数组名2>(下标1[,下标2])],…上一页下一页要点如,DIMENSIONA(8),B(2,3)或DECLAREA(8),B(2,3)就定义了一个一维数组A和一个二维数组B。A中含有8个分量,分别为A(1),A(2),…,A(8);B中含有6(2×3)个分量,分别为B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3),或者对应为B(1),B(2),…,B(6)。数组必须先定义后使用。例如,给数组A,B元素赋值,A(3)=100,B(2,1)=.t.,或B(4)=.t.等。未经赋值的数组元素,系统将自动赋以逻辑假值(.F.)。(2)数组的引用定义数组或使用数组元素时,可以用圆括号“()”把下标括起来,也可用方括号“[]”把下标括起来。上一页下一页要点3.1.4内存变量的常用命令1.赋值命令格式1:STORE<表达式>TO<内存变量表>格式2:<内存变量>=<表达式>格式3:SAVESCREENTO<内存变量>2.变量及表达式的输出命令格式1:?[<表达式表>]格式2:??<表达式表>功能:计算<表达式表>中各个表达式的值,并在输出设备上输出。3.释放内存变量命令格式1:CLEARMEMORY格式2:RELEASEALL[LIKE|EXCEPT<通配符>]格式3:CLEARALL通配符有“?”和“*”两种,前者代表单个字符,后者代表一个或多个字符。例如,RELEASEALLLIKEAB*——清除所有以AB字母开头的内存变量RELEASEALLEXCEPTAB?——清除所有除了以字母AB开头第三个字母为任意字符的内存变量RELEASEALL——同CLEARMEMORY,清除所有内存变量4.存储内存变量命令格式:SAVEALL[LIKE|EXCEPT<通配符>]TO<内存变量文件名>功能:将所有指定通配符的内存变量以文件的形式保留到磁盘上,以备将来使用。说明:内存变量文件的扩展名自动定义为“.MEM”。5.恢复内存变量命令格式:RECALLALL[LIKE|EXCEPT<通配符>]FROM<内存变量文件名>[ADDITIVE]功能:将指定通配符的内存变量从磁盘文件调入到内存中。6.数据表与数组之间数据的传递命令(1)当前记录值传入一维数组格式:SCATTER[FIELDS<字段名表>|FIELDSLIKE<通配符>|FIELDSEXCEPT<通配符>][MEMO]TO<数组名>[BLANK]功能:将数据表中当前记录指定字段的值顺序存入一个一维数组中。例如,命令“SCATTERTOAAFIELDSLIKE说明*MEMO”的功能就是将当前记录中各“说明”(说明1,说明2,…)字段(含备注型字段)的值按字段先后顺序存入一个一维数组AA中。(2)一维数组值传入当前记录格式:GATHERFROM<数组名>[FIELDS<字段名表>|FIELDSLIKE<通配符>|FIELDSEXCEPT<通配符>][MEMO]功能:将一维数组中的值按顺序存入指定字段中。3.2常用函数及其应用参见教材3.2.1字符处理函数参见教材3.2.2数值函数参见教材3.2.3日期和时间处理函数iif(表达式1,表达式2,表达式3)表达式1是关系表达式或逻辑表达式当表达式1真,函数值为表达式2值,否则取表达式3值3.2.4数据类型转换函数参见教材3.2.5测试函数函数名格式功能BOFBOF([工作区])记录指针指向首记录之前返回.T.,否则返回.F.EOFEOF([工作区])记录指针指向末记录之后返回.T.,否则返回.F.Recno()返回当前记录号FOUNDFOUND([工作区])用locate,continue,seek,或find查找到符合条件的记录时返回.T.,否则返回.F.3.3运算符和表达式3.3.1算术表达式、字符表达式和日期表达式1.算术表达式算术表达式是由算术运算符将数值型常量、变量和函数连接起来的式子。算术运算的结果为数值型常数。算术运算符有**或^(乘方)、*(乘)、/(除)、%(取余)、+(加)、-(减或取负)。其优先级由高到低的排列顺序为:(1)**,^(2)*,/,%(3)+,-例如,10%3=1,-10%3=2,10%-3=-2,-10%-3=-1。2.字符表达式字符表达式可由字符运算符连接的字符型常量、变量和函数组成。字符运算的结果为字符型常数或逻辑型常数。字符运算符有+(连接)、-(连接)和$(包含)。(1)连接运算C1+C2,完成两个字符串C1和C2的首尾连接。如,"中国"+"北京市"="中国北京市"。(2)尾空格移位连接运算C1-C2,将C1尾部的空格移到结果串的尾部。如,"中国"-"北京市"="中国北京市"。(3)字符串包含运算C1$C2,判断C1是否包含在C2中,是则返回真值(.T.),否则返回假值(.F.)。如,[中国]$'中华人民共和国'=.F.,[中国]$'发展中国家'=.T.。3.日期表达式日期表达式可由日期运算符连接的日期时间型常量、变量和函数组成。日期运算的结果为日期时间型常量或数值型常量。日期运算符有“+”(加)和“-”(减)。(1)日期加减天数运算(D±N),将得到一个新的日期。如,{^1988/09/20}+10=09/30/88,{^1988/09/30}-10=09/20/88。(2)两个日期相减运算(D1-D2),将得到两个日期相差的天数。如,{1988/09/30}-{1988/09/20}=10(3)日期时间加减秒数运算(T±N),将得到一个新的日期时间。如{2005/8/1010:20:40AM}+100=08/10/0510:22:20AM。(4)两个日期时间相减运算(T1-T2),将得到两个日期时间相差的秒数。如{2005/8/1010:22:20}-{2005/8/1010:20:40}=100。3.3.2关系表达式关系表达式是由关系运算符将字符表达式、算术表达式和日期时间连接起来的式子。关系运算符两端必须为可比较的同类型的表达式,运算结果为逻辑常量。关系运算符有<(小于)、>(大于)、=(等于)、<=(小于等于)、>=(大于等于)、==(恒等于)和<>、#、!=(不等于)。如,3*7>20=.T.,运算符含义规则=等于两个字符串的串首相等即为真,例如:”abcd”=“ab”为真==完全等于两个字符串完全等才为真,例如:”abcd”==“ab”为假<>,#,!=不等于和运算符=的规则刚好相反”abcd”<>“ab”$包含左字符串是右字符串的字串才为真例如:”ab”$”abcd”为真3.3.3逻辑表达式逻辑表达式是由逻辑运算符将逻辑型常量、变量、函数和关系表达式连接起来的式子。逻辑运算结果为逻辑常数。逻辑运算符有.NOT.(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。优先级由高到底的顺序为.NOT.、.AND.、.OR.。例如,判断某年YEAR是否为闰年的表达式为:YEAR%4=0.AND.YEAR%100!=0.OR.YEAR%400=03.3.4表达式生成器在VFP系统中任何可以写表达式的地方单击鼠标右键,在弹出的菜单中选中“表达式生成器”选项,即可弹出“表达式生成器”对话框,如图3-1所示。第四章表和索引返回目录本章要点表向导创建表
使用表设计器创建表
表结构的修改和复制
表数据的操作
排序和索引
查询命令
统计命令
返回目录4.1表向导创建表
4.1.1基本概念1.数据表在VFP中,表(Table)是收集和存储信息的基本单元,所有的工作都是在数据表的基础上进行的。在VisualFoxPro系统中,一张二维表对应一个数据表,称为表文件(Table)。
上一页下一页要点定义数据表的结构,就是定义数据表的字段个数、字段名、字段类型、字段宽度及是否以该字段建立索引等。
一张二维表由表名、表头、表的内容三部分组成,一个数据表则由数据表名、数据表的结构、数据表的记录三要素构成。
2.数据表的类型在VFP中,根据表是否属于数据库,可以把表分为两类:(1)数据库表。属于某一数据库的表称为“数据库表”。(2)自由表。不属于任何数据库而独立存在的表称为“自由表”。
3.数据表的结构无论是数据库表还是自由表,在形式上都是一个二维表结构,表文件以.DBF为扩展名存储在磁盘上。每一列称为一个字段,字段有字段名和字段值,所有字段名的集合构成了表的第一行(表头),叫做数据表的结构;每一行称为一条记录。(1)字段名字段名必须以字母或汉字开头,由字母、汉字、数字或下划线组成,不能包含空格,且字段名应尽量与内容相关。数据库表字段名最长为128个字符,自由表字段名最长为10个字符。(2)字段类型字段的数据类型决定了存储在字段中的值的数据类型,共有13种,分别是字符型(C)、货币(Y)、数值型(N)、浮点型(F)、日期型(D)、日期时间型(T)、双精度型(D)、整型(I)、逻辑型(L)、备注型(M)、通用型(G)、二进制字符型和二进制备注型。(3)字段宽度字段宽度必须能够容纳将要显示的信息内容,字符型字段宽度不得大于254个字节,否则可用备注型字段存储。浮点型和数值型字段的最大宽度为20个字节。(4)小数位数若字段的类型是数值型和浮点型,还需给出小数位数,若是整数,小数位为0。小数位的长度是总长的一部分,在VFP中,小数位数不能大于9;双精度型数据的小数位数不能大于18。(5)使用空值在建立数据表时,可以指定字段是否接受空值(NULL)。它不同于零、空字符串或者空白,而是一个不存在的值。当数据表中某个字段内容无法知道确切信息时,可以先赋予NULL值,当内容明确之后,再赋予实际意义的信息。表4-1学生信息表结构上一页下一页要点字段名类型宽度学号C9(4位年级,2位系号,3位学号)姓名C8性别C2出生日期D8党员否L1专业代码C2简介M4照片G4表4-2成绩表结构字段名类型宽度学号C9课程号C4成绩N34.1.2利用表向导创建表
图4-1项目管理器中的“新建”对话框图4-2“表向导”的第1个对话框4.2使用表设计器创建表4.2.1创建表结构1.菜单方式①选择“文件”菜单的“新建”命令,打开“新建”对话框,选择“表”按钮,单击“新建文件”按钮,进入“表设计器”的“创建”对话框,如图4-3所示。图4-3“创建”对话框(2)在“创建”对话框中,选择合适的路径后输入表名。在“输入表名”文本框中输入“学生信息表”,单击“保存”按钮,出现“表设计器”对话框,如图表4-4所示。图4-4[表设计器]对话框注意:在表中定义了备注型或通用型字段后,系统会自动生成与表文件同名且扩展名为.FPT的备注文件,用来存放备注型或通用型字段的实际内容。表备注文件将随着表文件的打开而打开,随着表文件的关闭而关闭。无论一个表中定义了多少个备注型字段或通用型字段,系统只生成一个.FPT文件,存放这个表中的所有备注型字段和通用型字段的内容。图4-5立即输入记录提示框利用表设计器创建表的操作步骤文件新建新建文件
表的名字表设计器字段名字字段类型字段宽度字段索引保存上一页下一页要点
4.1.2利用表设计器创建表
2.命令方式(1)Create<表名>(2)CreateTable<表名>([<字段名1>]类型(长度)[,[<字段名2>]类型(长度)……])
上一页下一页要点4.2.2输入数据在图4-5所示的提示框中单击“是”按钮,进入数据输入窗口,可以向数据表中输入数据。1.显示表记录方式显示表记录方式有两种:一种是浏览模式,一种是编辑模式。前者是一条记录占一行,后者是一个字段占一行。如下图所示。图4-6浏览窗口图4-7编辑窗口2.输入数据表文件的数据是以字段为输入单位。窗口中左侧纵向列出的各字段名称,其排列次序与已定义的表结构相同。图4-8备注字段编辑窗口
图4-9通用字段编辑窗口图4-10“插入对象”对话框注意,此时“gen”变成“Gen”表示已经输入数据。4.2.3打开和关闭表文件1.打开数据表(1)通过选择“文件”菜单下的“打开…”命令,弹出“打开”对话框,选择表文件,打开表文件。(2)命令方式打开表文件格式:USE<表名>[ALIAS<别名>][EXCLUSIVE|SHARED]功能:打开指定的数据表文件。2.关闭数据表(1)可利用“数据工作期”窗口关闭表文件。在“数据工作期”窗口中,选定表(例如:学生信息表),单击“关闭”按钮,即可关闭表文件。(2)可使用以下命令方式关闭表文件。格式1:USE功能:关闭当前数据表文件。格式2:CLOSEDATABASES功能:关闭所有已打开的数据库和数据表文件。格式3:CLOSEALL功能:关闭所有已打开的对象,当然包括数据库和数据表文件。格式4:CLEARALL功能:关闭所有的表文件,释放内存变量,用户定义菜单和窗口格式3:CLOSETABLES功能:关闭当前数据库的数据表文件,但不关数据库。4.2.4浏览表记录1.打开记录浏览窗口(1)项目管理器方式。在“项目管理器”中选择“数据”选项卡,然后选定表文件(例如:学生信息表),单击“浏览”按钮,打开浏览窗口浏览数据。(2)当数据表打开之后,则可以选择“显示”菜单下的“浏览”命令,打开浏览窗口浏览数据。(3)通过“数据工作期”窗口选定表文件,然后单击“数据工作期”窗口上的“浏览”按钮,打开浏览窗口浏览数据。(4)命令方式。格式1:BROWSE[<范围>][FIELDS<字段名列表>][FOR<条件表达式>][WHILE<条件表达式>]格式2:EDIT[<范围>][FIELDS<字段名列表>][FOR<条件表达式>][WHILE<条件表达式>]功能:格式1在“浏览”窗口中按要求显示当前表的记录内容,浏览窗口如图4-6所示。格式2在“编辑”窗口中按要求显示当前表的记录内容,编辑窗口如图4-7所示。格式1:LIST|DISPLAY[<范围>][FIELDS<字段名列表>][FOR<条件表达式> [WHILE<条件表达式>][OFF][TOPRINTER[PROMPT]|TOFILE<文件名>]功能:在主窗口中显示记录。说明:①范围:ALL:全部记录;NEXT<n>:当前记录开始的连续n条记录;REST:当前记录开始到表尾的所有记录;RECORD<n>:第n条记录,n为物理记录号。②FIELDS子句:字段筛选,在“浏览”或“编辑”窗口中只显示列出的字段;省略此子句时默认为全部字段。在其他命令中也有相同的意义。③FOR条件子句:记录过滤,在“浏览”或“编辑”窗口中只显示满足条件的记录;省略此子句时默认为全部记录。④WHILE条件子句:记录过滤,在“浏览”或“编辑”窗口中只显示连续满足条件的记录,遇到一个不满足条件的记录,就停止搜索;省略此子句时默认为全部记录。Off:有他则不显示记录号,无他则显示记录号【例4-1】浏览学生信息表中的记录。(1)以浏览方式显示性别为男的学生的学号、姓名和性别。USE学生信息表BROWSEFIELDS学号,姓名,性别FOR性别="男"(2)以编辑方式显示出生日期大于1984年12月11日的学生的学号、姓名和出生日期。USE学生信息表EDITFIELDS学号,姓名,出生日期FOR出生日期>{1984/12/11}图4-11“浏览”和“编辑”窗口2.“浏览”窗口4.3表结构的修改和复制4.3.1显示、修改、复制表的结构1.显示当前已打开的表的结构LIST|DISPLAYSTRUCTURE[TOPRINTER[PROMPT]|TOFILE<文件名>]2.修改表的结构对于数据库表,还可以修改或删除有效规则等,修改表结构可以在“表设计器”中进行。采用命令方式:ALTERTABLE<表名>ADD|ALTER[COLUMN]<字段名><字段类型>[(<字段宽度>[,<小数位数>])]删除一个字段:ALTERTABLE<表名>DROP[COLUMN]<字段名>重命名ALTERTABLE<表名>RENAME[COLUMN]<字段名1>TO]<字段名2>2.数据表结构的复制格式:COPYSTUCTURETO<新表文件名>[FIELDS<字段名表>]功能:将当前表文件的结构全部或部分复制到新的数据表文件中。表内容复制Copyfile<文件名1>to<文件名2>Copyto<文件名>[<范围>][FIELDS<字段名列表>][FOR<条件表达式>][WHILE<条件表达式>]【例4-2】
利用“学生信息表”的表结构,建立一个新的“学生情况”表,保存在D:\VFP文件夹下,其中包括“姓名”、“出生日期”和“性别”3个字段。USED:\VFP\学生信息表.DBFCOPYSTRUCTURETOD:\VFP\学生情况.DBFFIELDS姓名,出生日期,性别USED:\VFP\学生情况.DBFLISTSTRUCTUREUSE显示结果为:表结构D:\VFP\学生情况.DBF数据记录数:0最近更新的时间:09/03/05代码页:936字段字段名类型宽度小数位索引排序1姓名字符型82出生日期日期型83性别字符型2**总计**19图4-12“字段选择器”对话框4.3.2限制对字段的访问图4-13经字段过滤后的浏览表2.命令方式字段筛选:SETFIELDSTO[[<字段名1>[,<字段名2>…]]|ALL[LIKE
<通配字段名>|EXCEPT<通配字段名>]SETFIELDSON|OFF功能:限定命令操作能作用的字段。记录过滤器命令:SETfilterto<条件>SETfilterto【例4-3】只显示学生信息表中的学号、姓名、出生日期。 USE学生信息表 SETFIELDSTO学号,姓名,出生日期
LIST&&指显示学号,姓名,出生日期三个字段的数据 SETFIELDSOFF LIST &&显示所有字段的数据4.4表数据的操作4.4.1记录指针定位GO|GOTO命令格式:GO|GOTO记录号|TOP|BOTTOM功能:将记录指针移动到指定的位置。说明:可以省略GO或GOTO命令而只指定记录号。TOP选项将记录指针定位在表逻辑顺序的第一个记录上。BOTTOM选项将记录指针定位在表逻辑顺序的最后一个记录上。
【例4-4】分别显示学生信息表中的第1条、第3条、最后一条记录,学生信息表中有5条记录。USE学生信息表GOTOPDISPLAY GO3DISPLAYGOBOTTOMDISPLAYUSE3.SKIP命令格式:SKIP
<记录数>功能:使记录指针在表中向前或向后移动。说明:①记录数指定记录指针需要移动得记录条数。若省略记录数,将使指针从当前记录移到下一条记录;若记录数为正,记录指针就向文件尾方向移动;若记录数为负,记录指针则向文件头移动。②如果表有一个主控索引,使用SKIP命令将使记录指针移到由索引排序决定的逻辑顺序的记录上。
【例4-5】显示学生信息表中的记录,学生信息表中有5条记录。USE学生信息表 SKIP ?RECNO(),BOF() SKIP3 ?RECNO(),EOF() SKIP–1 ?RECNO(),BOF() GOBOTTOM SKIP?RECNO(),EOF()USE 显示的结果为: 2.F. 5.F. 4.F. 6.T.4.4.2追加表记录1.记录的追加格式1:APPEND[BLANK]格式2:APPENDFROM<来源文件名>[FIELDS<字段列表>][FOR<条件表达式>]功能:格式1在当前表的末尾追加一条或多条新记录。格式2从其他源文件成批追加满足条件的表记录到当前表中。2.插入新记录格式:INSERT[BEFORE][BLANK]功能:如果不指定BEFORE则在当前记录之后插入一条新的记录,否则在当前记录之前插入一条新记录。如果不指定BLANK则直接出现一个界面,并以交互方式输入记录的值。否则在当前记录之后(或之前)插入一条空白记录
3.INSERTINTOINSERTINTO<表名>[(<字段名1>[,<字段名2>,…])]<VALUES>[(<表达式1>[,<表达式2>,…])]例:insertintorsb(编号,姓名,性别)values(‘100’,’zhangb’,’nan’)【例4-6】在学生信息表中第3个记录的前面插入一条记录。 第一种方法: USE学生信息表 GO3 INSERTBEFORE USE 第二种方法:USE学生信息表 GO2 INSERT USE4.4.3编辑记录1.在浏览窗口或编辑窗口中编辑记录2.批量修改记录(1)菜单方式图4-14“替换字段”对话框(2)命令方式格式:REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>[ADDITIVE]]…[<范围>][FOR<条件>][WHILE<条件>] 功能:在当前表的指定记录中,将有关字段的值用相应的表达式值来替换。如缺省范围和条件选项,只对当前记录的有关字段进行替换。4.4.4删除记录删除分逻辑删除和物理删除两种操作。逻辑删除是对要删除的记录加上删除标记,记录仍然存在,以后还可以恢复;而物理删除则是将带删除标记的记录从表中彻底删除,以后不能恢复。
命令方式(1)逻辑删除记录格式:DELETE[<范围>][FOR<条件>][WHILE<条件>]功能:逻辑删除当前表中指定范围内满足条件的记录,即对这些记录作删除标记。(2)恢复记录格式:RECALL[<范围>][FOR<条件>][WHILE<条件>]功能:恢复当前表中指定范围内满足条件的被逻辑删除的记录,即取消这些记录的删除标记。(3)显示或隐藏被逻辑删除的记录格式:SETDELETEDON|OFF功能:控制显示还是隐藏被逻辑删除的记录。(4)物理删除记录格式:PACK功能:物理删除当前表中所有带删除标记的记录,即彻底地删除这些记录。(5)删除全部记录格式:ZAP功能:物理删除当前表中所有记录,使表成为空表。图4-16“工作区属性”对话框4.4.5筛选表记录图4-17筛选记录2.命令方式格式:SETFILTERTO[<条件>]功能:从当前表过滤出符合条件的记录,不符合条件的记录将被“遮蔽”,随后的操作仅限于满足条件的记录。说明:缺省条件表示取消前面设置的过滤器。字段表格式:SETFIELDSTO[<字段名1>….][ALLLIKE<通配符>|ALLEXCEPT<通配符>]
【例4-7】只显示“学生信息表”中所有女学生的记录。USE学生信息表SETFILTERTO性别="女"LIST&&只显示性别为“女”的记录SETFILTERTOUSE4.5排序和索引4.5.1排序1.排序的定义排序(Sort)就是把数据表中的记录按照某个字段值的大小顺序重新排列,排序操作的结果是创建一个新的数据表文件。2.数据比较大小的依据在VFP中,数据大小的比较规则为:(1)数值型数据按其数值的大小进行比较。(2)字符型数据按其机内码顺序比较,对于西文字符是ASCII码的值,对于汉字是汉字国标码的值;常用的一级汉字是按照拼音顺序排列的,也就是字典顺序。(3)日期型数据按年、月、日的顺序进行比较。3.排序的实现在VFP中,排序是用SORT命令实现的。格式:SORTON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][ASCENDING/DESCENDING][<范围>][FOR<条件>][WHILE<条件>][FIELDS<字段名表>]TO<文件名>功能:将当前数据表中指定范围内满足条件的记录,按指定字段的升序或降序重新排列,并将排序后的记录按FIELDS子句指定的字段写入新的表文件中。
【例4-8】对“学生信息表”中所有的学生按“姓名”升序排序,并将排序后的新表文件命名为“XM.DBF”,存放在“D:\VFP文件夹中。USED:\VFP\学生信息表.DBFSORTON姓名TOD:\VFP\XMUSED:\VFP\XMLIST显示结果:。4.5.2索引1.基本概念(1)索引的概念VFP索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序。索引文件和表文件分别存储,并且不改变表中的物理顺序。与排序相比,两者都能重新安排原数据表中记录的组织顺序。不同的是,排序的结果是从物理上改变了原数据表中的记录顺序,另外又建立了一个与原数据表内容相同且只是记录顺序不同的新表文件;而索引的结果仅是从逻辑上改变了系统处理记录的顺序,不会另外生成新的表文件。(2)索引文件的类型有独立索引和复合索引
①单索引独立索引文件只能包含一个单一的关键字或者组合关键字的索引,它的索引路径、文件名和扩展名可以自定义,默认扩展名为“.IDX”。在表文件打开时,它们不随表文件自动打开,也不能自动重新索引。自由表和数据库表文件均可根据需要建立一个或多个独立索引文件。②非结构化复合索引文件
非结构化复合索引文件可以包含多项索引,它的索引路径、文件名和扩展名可以自定义,默认扩展名为“.CDX”。在表文件打开时,它们不随表文件自动打开,也不能自动重新索引。自由表和数据库表文件均可根据需要建立一个或多个非结构化复合索引文件。③结构化复合索引
结构化复合索引可以包含多项索引,它的索引路径和文件名与表名相同,默认扩展名为“.CDX”。在表文件打开时,结构化复合索引也将自动打开,并且当表文件的记录发生变化并关闭表文件时,结构化复合索引文件也将自动重建索引后关闭。只有数据库的表文件可以有且最多有一个结构化复合索引文件。(3)索引类型****在VFP中,索引关键字可分为4类:主索引、候选索引、唯一索引和普通索引。①
主索引:是指定字段或表达式中不允许出现重复值的索引,“不允许出现重复值”是指建立索引的字段值不允许重复。
必须注意的是一个表只能有一个主关键字,所以一个表只能创建一个主索引。而且只有数据库表能够创建主索引,自由表是不能创建主索引的。②候选索引:候选索引与主索引的要求和作用完全一样,只是因为一个表中仅能拥有一个主索引,但是却可以有多个候选索引。③唯一索引:唯一索引可以在数据库表或自由表中创建。它允许存在重复值。但是,唯一索引在索引文件中只保存指定的字段或表达式的第一个重复值。④普通索引:也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。2.建立索引
(1)在“表设计器”中建立索引例如:在“学生信息表”中,用“姓名”和“性别”两个字段组成一个索引项时,相应的索引表达式应表示为“姓名+性别”,其含义是:先按姓名索引,当“姓名”相同时,再按“性别”索引。当用“性别”和“出生日期”两个字段组成一个索引项时,相应的索引表达式应表示为“性别+DTOC(出生日期)”。
(2)通过命令方式建立索引格式:INDEXON<索引关键字表达式>to<单索引文件名>|TAG<索引标识名>[of<复合索引文件名>][UNIQUE|CANDIDATE][ASCENDING|DESCENDING][FOR<条件>]功能:建立索引说明:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班健康活动教案:大脑
- 一年级上册数学导学案-3.2 还剩下多少 北师大版
- 《三位数乘两位数》(教案)2023-2024学年数学四年级上册 人教版
- 一年级下册数学教案-2.2 十几减8、7、6|人教新课标
- 2024年企业云存储服务合同
- 一年级下册数学教案-第7单元 找规律1∣人教新课标
- 二年级下册数学导学案-3.1 数一数(一)(1) 北师大版
- 充电桩与电网互动方案
- 大班安全教案及教学反思《安全做运动》
- 大班数学公开课教案及教学反思《为中心区分左右》
- 导管滑脱预防措施pdca循环图应用分析(罗燕小组)课件
- 无产权证房屋买卖合同
- DBJ53-T-40-2011 云南省城镇园林工程施工质量验收规程
- 晕厥(课件)课件
- 江南药王的传奇课件
- 浅谈博物馆陈列从设计到布展-以大同市博物馆为例
- 河北省保定市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 非常规时段施工安全管理方案
- 模具验收报告单
- 银行行长讲合规讲话稿例文5篇 银行行长讲合规工作上的讲话
- 如何培养农村中学生自主学习的能力
评论
0/150
提交评论