1、Visual FoxPro考试大纲串讲 1.1.1 Visual FoxPro基础 考核知识点一 数据库基础知识 ㈠.计算机数据管理的发展 1.数据与数据处理 数据是指存储在某一种媒体上能够识别的物理符号。数据的概念包括两个方面:其一是描述事物特性的数据内容:其二是存储在某一种媒体上的数据形式。数据形式可以是多种多样的。 数据处理是指将数据转换成信息的过程。从数据处理的角度而言,信息是一种被加工成特定形式的数据,这种数据形式对于数据接收者来说是有意义的。 2、计算机数据管理 数据处理的中心问题是数据管理。计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手
2、段。 计算机在数据管理方面也经历了由低级到高级的发展过程。计算机数据管理随着计算机硬件、软件技术和计算机应用范围的发展而不断发展,多年来经历了人工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统等几个阶段。 ㈡.数据库系统 1、有关数据库的概念 ①数据库 数据库(Data Base)是存储在计算机存储设备上,结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。 ②数据库应用系统 数据库应用系统是指系统开发人员利用数据库系统资源开发出来的。面向某一类实际应用的应用软件系统。 ③数据库管理系统 数据库管理系统DBMS可以对数据库的建立
3、使用和维护进行管理。 ④数据库系统 数据库系统是指引进数据库技术后的计算机系统。实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统由五部分组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。 2.数据库系统的特点: 数据库系统的主要特点如下: ①实现数据共享,减少数据冗余。 ②采用特定的数据模型: ③具有较高的数据独立性: ④有统一的数据控制功能。 ㈢.数据模型 1、实体的描述 ①实体 客观存在并且可以相互区别的事物称为实体。 ②实体的属性 描述实体的特性称为属性。 ③实体集和实体型 字段值的集合表示一
4、个实体,而属性的集合表示一种实体的类型,称为实体型。同类的实体的集合,称为实体集。在Visual FoxPro中,用“表”来存放同一类实体,即实体集。 2.实体间联系及联系的种类 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。 实体间联系的种类是指一个实体型中可能出现的每一个实体与另一个实体型中多个具体实体存在联系。两个实体间的联系可以归结为三种类型。 ①一对一联系: ②一对多联系: ③多对我联系: 3.数据模型简介 数据模型是数据库管理系统用来表示实体及实体间联系的方法。一个具体的数据模型应当正确地反映出数据之间存在的整体逻辑关系。 任何一个数据库管理系统都
5、是基于某种数据模型的。数据库管理系统所支持的数据模型分为三种:层次模型、网状模型、关系模型。因此,使用支持某种特定数据库管理系统开发的应用系统相应地称为层次数据库系统、网状数据库系统、关系数据库系统。 考核知识点二 关系数据库 ㈠.关系模型 关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。这各用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。 1、关系术语 在Visual FoxPro中,一个“表”就是一个关系。 ①关系:一个关系就是一张二维表,每个关系有一个关系名。在Visual FoxPro中,一个关系存储为一个文件,文件扩展名为.dbf,称为“表”
6、 对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其格式为: 关系名(属性名1、属性名2、属性名3,……,属性名n) 关系名(字段名1、字段名2、字段名3,……,字段名n) ②元组:在一个二维表(一个具体关系)中,水平方向的行称为元组,每一行是一个元组。元组对应存储文件中的一个具体记录。 ③属性:二维表中垂直方向的列称为属性,每一列有一个属性名,与前面讲的实体属性相同,在Visual FoxPro中表示为字段名。每个字段的数据类型、宽度等在创建表的结构时规定。 ④域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。 ⑤关键字:属性或属性的组合,其值能够惟一地
7、标识一个元组。 ⑥外部关键字:如果表中的一个字段不是本表的主关键字或候选字,而是另外一个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。 2.关系的特点 ①关系必须规范化。 ②在同一个关系中不能出现的属性名,Visual FoxPro不允许同一个表中相同的字段名。 ③关系中不允许有完全相同的元组。 ④在一个关系中元组次序无关紧要。也就是说,任意交换两行的位置并不影响数据的实际含义。日常生活中经常见到的“排名不分先后”正反这种意义。 ⑤在一个关系中列的次序无关紧要。任意交换两列的位置也不影响数据的实际含义。 ㈡.关系运算 1.传统的集合运算 进行并、差、交集合运算
8、的两个关系必须具有相同的关系模式,即相同结构。 2.专门的关系运算 ①选择: ②投影: ③联接: ④自然联接。 考核知识点三、 数据库设计基础 ㈠.数据库设计步骤 1.设计原则 为了合理组织数据,应遵从以下基本设计原则: ①关系数据库的设计应遵从概念单一化、“一事一表”的原则: ②避免在表之间出现重复字段: ③表中的字段必须是原始数据和基本数据元素: ④用外部关键字伪保证需要有关的表之间的联系。 2.设计的步骤 ①需要分析: ②确定需要的表: ③确定所需字段: ④确定联系: ⑤设计求精。 ㈡.数据库设计过程 1.需要分析 用户需求主要包括三个方面:
9、 ①信息要求: ②处理需求: ③安全性和完整性要求。 2.确定需要的表 3.确定所需字段 下面的确定字段时需要注意的问题: ①每个字段直接和表的实体相关: ②以最小的逻辑单位存储信息: ③表中的字段必须是原始数据: ④确定主关键字字段。 4.确定联系 要建立两个表的联系,可以把其中一个表的主关键字添加到另一个表中,使两个都有该字段。具体方法如下: ①一对多联系: ②多对多联系: ③一对一联系。 5.设计求精 考核知识点四 Visual FoxPro系统概述 Visual FoxPro6.0的特点: Visual FoxPro6.0提供了一系列新特色:它成功地
10、解决了计算机2000年问题,使用户基于开发软件顺利地跨入新世纪的门坎:增强了Internet技术,WWW数据库的设计,最新流行的ActiveX和一系列的向导、生成器以及控件等集成工具。 1.1.2 Visual FoxPro系统初步 考核知识点一 Visual FoxPro6.0的安装与启动 个人计算机的软硬件基本配置要求如下: ①处理器:带有486DX/66MHz处理器,推荐使用pentium或更高档处理器的PC兼容机: ②内存储器:16MB以上的内在,推荐使用24MB内存: ③硬盘空间:典型安装需要85MB的硬盘空间:最大安装需要90MB硬盘空间: ④需要一个鼠标、一个光盘驱
11、动器,推荐使用VGA或更高分辨率的显视器: ⑤操作系统:由于Visual FoxPro是32位产品,需要在Windows95/98(中文版)或者WindowsNT4.0(中文版)或更高版本的操作系统上运行。 ㈠.安装Visual FoxPro6.0 Visual FoxPro可以从CD-ROM或网络上安装。 ㈡.启动Visual FoxPro6.0 1.启动系统 在Windows中启动Visual FoxPro6.0的方法与启动任何其他应用程序相同,单击Windows的“开始”按钮,依次选择“程序”\“Microsoft Visual FoxPro6.0”菜单项即可。 2.退出系
12、统 有四种方法可以退出Visual FoxPro6.0返回Windows,用户可以根据自己的习惯,任选其中一种方法: ①用鼠标左键单击Visual FoxPro6.0标题栏最右面的关闭窗口按钮。 ②从“文件”下拉菜单中选择“退出”选项。 ③单击窗口左上方的狐狸图标,从窗口下拉菜单中选择“关闭”选项,或者按Alt+F4键。 ④在命令窗口中左上方键入QUIT命令,单击Enter键. 考核知识点二 Visual FoxPro6.0的用户界面 Visual FoxPro有三种工作方式:利用菜单系统或工具栏按钮执行命令:在命令窗口直接输入命令进行交互式操作:利用各种生成器自动产生程序,或者
13、编写FoxPro程序(命令文件),然后执行它。前两种方法属于交互式工作方式,可以通过这两种方法得到同一结果。执行命令文件为自动化工作方式,菜单工作方式为最终用户提供了更加使便利的操作手段。 考核知识点三 项目管理器 所谓项目是指文件、数据、文档和Visual FoxPro对象的集合。“项目管理器”是Visual FoxPro中处理数据和对象主要组织工具,它为系统开发者提供了极为便利的工作平台,一是提供了简便的、可视化的方法来组织和处理表、数据库、表单、报表、查询和其他一切文件,通过单击鼠标就能实现对文件的创建、修改、删除等操作:二是在项目管理器中可以将应用系统编译成一个扩展名为app的应用
14、文件或.exe的可执行文件。 考核知识点四 Visual FoxPro向导、设计器、生成器简介 ㈠.Visual FoxPro的向导 向导是一种交互式程序,用户在一系列向导屏幕上回答问题或者选择选项,向导会根据回答生成文件或者执行任务,帮助用户快速完成一般性的任务。例如,创建表单、编排报表的格式、建立查询、制作图表、生成数据透视表、生成交叉表报表以及在Wbe上按HTML格式发布等。Visual FoxPro中带有超过21种的向导。 ㈡.Visual FoxPro的设计器 Visual FoxPro设计器是创建和修改应用系统各种组件的可视化工具。利用各种设计器使得创建表、表单、数据、查
15、询和报表以及管理数据变得轻而易举,为初学者提供了方便的工具。 ㈢.Visual FoxPro的生成器 生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改过程。每个生成器显示一系列选项卡,用于设置选中对象的属性。可使用的生成器在数据库之间生成控件、表单、设置控件格式和创建参照完整性。 1.1.3数据与数据运算 考核知识点一 常量与变量 ㈠.常量 常量用以表示一个具体的、不变的值。不同类型的常量有不同的书写格式。 1.数值型常量 数值型常量也就是常数,用表示一个数量的大小,有数字0~9、小数点和正负号构成。 2.货币型常量 货币型常量用来表示货币值
16、其书写格式与数值型常量类似,但要加上一个前置的符号($)。货币数据在存储和计算时,采用4位小数.如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。 3.字符型常量 字符型常量也称为字符串,其表示方法是用半角单引导\双引号或方括号把字符串括起来。这里的单引号、双引号或防括号成为定界符。许多常量都有定界符。定界符虽然不作为常量本身的内容,但它规定了常量的类型以及常量的其始和终止界限。 字符型常量的定界符必须成对匹配,不能一边用单引号而另一边用双引号。如果某中定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。 4.日期型常量 日期型常量的定界符是一对花括
17、号。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。系统默认为斜杠(/)分隔符。常用的其他日期分隔符有连字号(-)、句点(.)和空格。 5.日期时间型常量 日期时间型常量包括日期和时间两部分内容:{<日期>,<时间>}。<日期>部分与日期时间型常量相似,也有传统的和严格的两种形式。 <时间>部分的格式为[hh[:mm[:ss][alp]]]。其中hh、mm和ss分别代表时、分和秒,默认值分别为12、0和0。A和p分别代表上午和下午,默认值为a,如果指定的时间大于等于12,则默认为下午的时间。 6.逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值。逻辑真的常量表示形式有:.
18、T.、.t.、.Y.和.y.。逻辑假的常量表示形式有:.F.、.f.、.N.和.n.。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用一个字节。 ㈡.变量 变量值是能够随时更改的。Visual FoxPro的变量分为字段变量和内存变量两大类。由于表中的各条记录对同一个字段名可能取值不同,因此,表中的字段名就是变量,成为字段变量。内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。 简单内存变量 每一个变量都有一个名字,可以通过变量名访问变量。如果当前表中存在一个同名的字段变量,则在访问内存
19、变量时,必须在变量名前加上前缀M.(或M-),否则系统将访问同名的字段变量。 数组 数组是内存中连续的储存区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。每个数组元素相当于一个简单变量,可以给各元素分别赋值。在Visual FoxPro中,一个数组中各元素的数据类型可以不同。 与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLKARE命令显式创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。 创建数组的命令格式为: DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,……
20、] DECLARE错误,应该为Declare <数组名>(<下标上限1>[,<下标上限2>])[,……] 以上两种格式的功能完全相同.数组创建后,系统自动给每个数组元素赋以逻辑假.F.。 内存变量与常用命令 1.内存变量的赋值 格式1:STORE <表达式> TO<变量名表> 格式2:<内存变量名>=<表达式> 功能:计算表达式并将表达式值赋给一个或多个内存变量,格式2只能给一个变量赋值。 2.表达式值的显示 格式1: ?[<表达式表>] 格式2:?? [<表达式表>] 功能:计算表达式表中的各表达式并输出各表达式值。 不管有设有指定表达式表,格式1都会输出一个回
21、车行符。如是指定了表达式表,各表达式值将在下一行的起始处输出。 格式2不会输出一个回车换行符,各表达式值在当前行的光标所在处直接输出。 3.内存变量的显示 格式1:LIST MEMORY [ LIKE<通配符>] [TO PRINTER TO FILE<文件名>] 格式2:DISTLAY MEMORY [LIKE<通配符>] [TO PRINTER TO FILE<文件名> ] 功能:显示内在变量的当前信息,包括变量名、作用域外、类型、取值。 选用LIKE短语只显示与通配符相匹配的内在变量,通配符包括*和?。*表示任意多个字符,?表示任意一个字符。 可选子TO PRITER或
22、TO FILE<文件名>用于在显示的同时送往打印机,或者存入给定文件名的文本文件中,文件的扩展名为.txt。 LIST MEMORY一次显示与通配符匹配的所有内存变量,如果内存变量多,一屏显示不下,则自动向上滚动。DISPLAY MEMORY分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再继续显示下一屏。 4.内存变量的清除 格式1:CLEAR MEMORY 格式2:RELEASE<内存变量表> 格式3:RELEASE ALL〔EXTENDED〕 格式4:RELEASE ALL〔LIKE<通配符>1EXCEPT<通配符>〕 功能:格式1清除所有
23、内存变量。 格式2清除指定内存变量。 格式3清除所有内存变量,在人机会话状态其作用与格式1相同。如果出现在程序中,则应该加上短语EXTENDED,否则不能删除公共内存变量。 格式4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除与通配符不相匹配的内存变量。 5.表中数据与数组数据之间的交换 表文件的数据内容是以记录的方式存储和使用的,而数组是把一批数据组织在一起的数据处理方法,为了使它们之间主便地进行数据交换,以利于程序的使用,Visual FoxPro提供了相互之间数据传递的功能,可以方便地完成表记录与内存变量之间的数据交换。 ①将表的当前记录复制到数组
24、格式1:SCATTER〔FIELDS<字段名表>〕〔MEMO〕TO<数组名>〔BLANK〕 格式2:SCATTER 〔FIELDS LIKE<通配符> ┃FIELDS EXCEPT<通配符>〕〔MEMO〕TO<数组名>〔BLANK〕 ②将数组数据复制到表的当前记录 格式1:GATHER FROM<数组名>〔FIELDS<字段名表>〕〔MEMO〕 格式2:GATHER FROM<数组名>〔FIELDS LIKE<通配符> ┃FIELDS EXCEPT<通配符>〕〔MEMO〕 ③ copy to array 数组名 ④ append from array 数组名 [for 条件] [[
25、fields 字段名表] 考核知识点二 表达式 ㈠.数值表达式 数值表达式由算术运算符将数值型数据连接起来形成,其运算结果仍然是数值型数据。数值型数据可以是数值型常量或者变量。 ㈡.字符表达式 字符表达式由字符串运算符将字型数据连接起来形成,其运算结果仍然是字符型数据。字符串运算符有以下两个,它们的优先级相同: +:前后两个字符串首尾连接形成一个新的字符串。 -:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。 ㈢.日期时间表达式 日期时间表达式中可以使用的运算符也有+和-两个。 日期时间表达式的格式有一定限制,不能任意组合。 ㈣.关系表达式 1.关
26、系表达式 关系表达式通常称为简单逻辑表达式,它由关系运算符将两个运算对象连接起来形成,即:<表达式1><关系运算符><表达式2> 关系运算符的作用是比较两个表达式的大小或前后,其运算结果是逻辑型数据。 2.设置字符的排序次序 当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较,一量发现两个对应字符不同,就根据这两字符的排序序列决定两个字符串的大小。对字符序列的排序设置有人机会话和命令两种方式。 ㈤.逻辑表达式 逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符有三个:.NOT.或!(逻辑非)、AND)(逻辑与)以及OR(逻辑或)。也
27、可以省略两端的点,写成NOT、AND、OR。其优先级顺序依次为NOT、AND、OR。 ㈥运算符优先级 先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。 圆括号作为运算符,可以改变其他运算符的运算次序。圆括号中的内容作为整个表达式的子表达式,在与其他运算对象进行各类运算前,其结果首先要被计算出来。我们说圆括号的优先级最高,其含义就在于此。圆括号可以嵌套。 考核知识点三 常用函数 ㈠.数值函数 数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往者是数值型数据。 1.绝对值和符号函数 格式:ABS(<数值表达式>) SEGNSign
28、 (<数值表达式>) 功能:ABS()返回指定的数值表达式的绝对值。 SIGN()返回指定数值表达式的符号。当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。 2.求平方根函数 格式:SQRT(<数值表达式>) 功能:返回指定表达式的平方根。自变量表达式的值不能为负。 3.圆周率函数 格式:PI() 功能:返回圆周率的值(数值型)。该函数没有自变量。 4.求整数函数 格式:INT(<数值表达式>) CEILING(<数值表达式>) FLOOR(<数值表达式>) 功能:INT()返回指定数值表达式的整数部分。 CEILING()返回大于或等于指定数值表达式
29、的最小整数。 FLOOR()返回小于或等于指定数值表达式的最大整数。 5.四舍五入函数 格式:ROUND(<数值表达式1><数值表达式2>) 功能:返回指定表达式在指定位置四舍五入后的结果。<数值表达式2>指明四舍五入的位置。若<数值表达式2>大于等于0,那么它表示的是要保留的小数位数;若<数值表达式2>小于0,那么它表示的是整数部分的舍入位数。 6.求余数函数 格式:MOD(<数值表达式1><数值表达式2>) 功能:返回两个数值相除后的余数。<数值表达式1>是被除数,<数值表达式2>是除数。余数的正负号与除数相同。如果被除与除数同号,那么函数值即为两数相除的余数;如果被除数与除
30、数异号,则函数值为两数相除的余数再加上除数的值。 7.求最大值和最小值函数 格式:MAX(<数值表达式1>,<数值表达式2>〔,<数值表达式3>..〕) MIN(<数值表达式1>,<数值表达式2>〔,<数值表达式3>...〕) 功能:MAX()计算各自变量表达式的值,并返回其中的最小值。 MIN()计算各自变量表达式的值,并返回其中的最小值。 自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。 ㈡.字符函数 字符函数是指自变量一般是字符数据的函数。 1.求字符串长度函数 格式:LEN(<字符表达式>) 功能:
31、返回指定字符表达式值的长度,即所包含的字符个数。函数值为数值型。 2.大小写转换函数 格式:LOWER(<字符表达式>) UPPER(<字符表达式>) 功能:LOWER()将指定表达式值中的大写字母转换成小写字母,其他字符不变。 UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。 3.空格字符串生成函数 格式:SPACE(<数值表达式>) 功能:返回由指定数目的空格组成的字符串。 4.删除前后空格函数 格式:TRLM(<字符表达式>) LTRIM(<字符表达式>) ALLTRIM(<字符表达式>) 功能:TRLM()返回指定字符表达式值去掉尾部空格后形
32、成的字符串。 LTRIM(<字符表达式>)返回指定字符表达式值去掉前部空格后形成的字符串。 ALLTRIM(<字符表达式>)返回指定字符表达式值去掉前部和尾部空格后形成的字符串。 5.取子串函数 格式:LEFT(<字符表达式>,<长度>) RIGHT(<字符表达式>,<长度>) SUBSTR(<字符表达式>,<起始位置>,〔<长度>〕) 功能:LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值。 RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值。 SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。 在SUBSTR()函数中,
33、若缺省第三个自变量<长度>,则函数从指定位置一直取到最后一个字符。 6.计算子串出现次数函数 格式:OCCURS(<字符表达式2>,<字符表达式1>)。 功能:返回第一个字符串在第二个字符中出现的次数,函数值为数值型。若第一个字符串不是第一个字符串的子串,函数值为0。 7.求子串位置函数 格式:AT(<字符表达式1>,<字符表达式2>)[<数置表达式1>]。 ATC(<字符表达式1>,<字符表达式2>)[<数置表达式1>] 功能:AT()函数值为数值型。如果<字符表达式2>是<字符表达式1>的子串,则返回<字符表达式1>值的首字符在<字符表达式2>值中的位置;若不是子串,则返回0
34、 ATC()与AT()功能类似,但在子串比较时不区分字母大小写。 第三个自变量<数值表达式1>用于表明要在<字符表达式2>值中搜索<字符表达式1>值的第几次出现,其默认值是1。 8.子串替换函数 格式:STUEF(<数值表达式1>,<起始位置>,<长度>,<字符表达式2>) 功能:用<字符表达式2>值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。替换和被替换的字符个数不一定相等。如果<长度>值是0,<字符表达式2>则插在由<起始位置>指定的字符前面。如果<字符表达式2>值是空串,那么<字符表达式1>中由<起始位置>和<长度>指明的子串被删去。 9.字符替换函数
35、格式:CHRTRAN(<字符表达式1>,<字符表达式2>,<字符表达式3>) 该函数的自变量是一个字符表达式。当第一个字符串中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符串中的对应字符(相同位置)替换这些字符。如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将被删除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符被忽略。 10.字符串匹配函数 格式:LIKE(<字符表达式1>,<字符表达式2>) 功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T
36、),否则返回逻辑假(.F.)。<字符表达式1>中可以包含通配符*和?。*可以与任何数目的字符相匹配,?可以与任何单个字符相匹配。 ㈢.日期和时间函数 日期和时间函数的自变量一般是时期型数据或日期时间型数据。 1.系统日期和时间函数 格式:DATE() TIME() DATETIME() 功能:DATE()返回当前系统日期,函数值为日期型。 TIME()以24小时制、hh:mm:ss格式返回当前系统时间,函数值为字符型。 DATETIME()返回当前系统日期时间,函数值为日期时间型。 2.求年份、月份和天数函数 格式:YEAR(<日期表达式>|<日期时间表达式>) MO
37、NTH(<日期表达式>|<日期时间表达式>) DAY(<日期表达式>|<日期时间表达式>) 功能:YEAR()从指定的日期表达式或日期时间表达式中返回年份(如2001) MONTH()从指定的日期表达式或日期时间表达式中返回月份 DAY()从指定的日期表达式或日期时间表达式中返回月里面的天数。 这三个函数的返回值都为数值型。 3.时、分和秒函数 格式:HOUR(<日期时间表达式>) MINUTE(<日期时间表达式>) SEC(<日期时间表达式>) 功能:HOUR()从指定的日期时间表达式中返回小时部分(24小时制)。 MINUTE()从指定的日期时间表达式中返回分钟部分。
38、 SEG()从指定的日期时间表达式中返回秒数部分。 这三个函数的值都为数值型。 ㈣.数据类型转换函数 数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。 1.数值转换成字符串 格式:STR(<数值表达式>,[,<长度>[,<小数位数>]]) 功能:将<数值表达式>的值转换成字符串,转换时根据需要自动进行四舍五入。返回字符串的理想长度L应该是<数值表达式>值的整数部分位数加上小数位数>值,再加上1位小数点。如果<长度>值大于L,则字符串加前部空格以满足规定的<长度> 要求;如果<长度>值大于等于<数值表达方式>值的整数部分位数(包括负号)但又小于L,则优先满足整数
39、部分而自动调整小数位数;如果<长度>值小于<数值表达方式>值的整数部分位数,则返回一串星号(*)。 <小数位数>的默认值为0,<长度>默认值为10。 2.字符串转换成数值 格式:VAL(<字符表达方式>) 功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成响应的数值型数据。若字符串内出现非字符,那么只转换前面部分;若字符串的首字符不是数字符号,则返回数值零,但忽略前部空格。 3.字符串转换成日期或日期时间 格式:CTOD(<字符表达式>) CTOT(<字符表达式>) 功能:CTOD将<字符表达式>值转换成日期数据。 CTOT将<字符表达式>值转换成日期时间型数据。
40、 字符串中的日期部分格式要与SET DATE TO命令设置的格式一致。其中的年份可以用四位,也可以用两位。若用两位,则世纪由SET CENTURY TO语句指定。 Set date to ymd Set century on Set century to 19 rollover 51 ?ctod(“50/01/01”),ctod(“51/01/01”) 4.日期或日期时间转换成字符串 格式:DTOC(<日期表达式><日期时间表达式>[,1]) TTOC(<日期时间表达式>[,1]) 功能:DTOC() 将日期型数据或日期时间数据的日期部分转换策划能够字符串。 TTOC()将
41、日期时间数据转换成字符串。 字符串中日期部分的格式与SET DATE TO语句的设置和SET CENTURY ON/OFF(ON为四位数年份,OFF为两位数年份)语句的设置有关。时间部分格式受SET HOURS TO 12/24语句的设置影响。 对DTOC()来说,如果使用选项1,则字符串的格式总是为YYYMMDD,共8个字符。 对TTOC()来说,如果使用选项1,则字符串的格式总是为YYYYMMDDHHMMSS,采用24小时制,共14个字符。 5.宏替换函数 格式:&<字符型变量>[.] 功能:替换出字符型变量的内容,即&的值是变量中的字符串。如果该函数与其后的字符无明确分
42、界,则要用“.”作函数结束标识。宏替换可以嵌套使用。 ㈤.测试函数 1.值域测试函数 格式:BETWEEN(<表达式T>,<表达式L>,<表达式H>) 功能:判断一个表达式的值是否介于另外两个表达式的值之间。当<表达式T>值大于等于<表达式L>且小于等于<表达式H>时,函数值为逻辑真(.T.),否则函数值为逻辑假(.F.)。 如果<表达式L>或<表达式H>有一个是NULL值,那么在范围内函数值也是NULL值,不在范围内则显示 .F.。 该函数的自变量类型既可以是数值型,也可以是字符型、日期型、日期时间型、浮点型、整型、双精度型和货币型。但三个自变量的数据类型要一致。 2.空值(N
43、ULL)值测试函数 格式:ISNULL(<表达式>) 功能:判断一个表达式的运算结果是否为NULL值,若是NULL值返回逻辑真(.T.),否则返回逻辑假(.F.)。 3.空值测试函数 格式:EMPTY(<表达式>) 功能:根据指定表达式的运算结果是否为“空”值,返回逻辑真(.T.)或逻辑假(.F.)。 首先要注意,这里所指的“空”值与NULL值是两个不同的概念。函数EMPTY(.NULL.)的返回值为逻辑假(.F.)。其次,该函数自变量表达式的类型除了可以是数值型以外,还可以是字符型、逻辑型、日期型等类型。不同类型数据的“空”值,有不同的规定。 4.数据类型测试函数 格式:VA
44、RTYPE(<表达式>[,<逻辑表达式>]) 功能:测试<表达式>的类型,返回一个大写字母,函数值为字符型。 5.表文件尾测试函数 格式:EOF(<工作区号><表别名>)) 功能:测试指定表文件中的记录指针是否指向文件尾,若是返回逻辑真.T.。否则返回逻辑假.F.。表文件尾是指最后一条记录的后面位置。若缺省自变量,则测试当前表文件。 若在指定工作区上没有打开表文件,函数返回逻辑假.F.。若表文件中不包含任何记录,函数返回逻辑真.T.。 6.表文件首测试函数 格式:BOF(<工作区号>1<表别名>)) 功能:测试当前表文件(若缺省自变量)或指定表文件中的记录指针是否指向文件首,若
45、是返回逻辑真.T.,否则返回逻辑假.F.。若表文件首是指第一条记录的前面位置。 若指定工作区上没有打开表文件,函数返回逻辑假.F.。若表文件中不包含任何记录,函数返回逻辑真.T.。 7.记录号测试函数 格式:RECNO(<工作区号><表别名>)) 功能:返回当前表文件(若缺省自变量)或指定表文件中当前记录(记录指针所指记录)的记录号。如果指定工作区上没有打开表文件,函数值为0。如果记录指针指向文件尾,函数值为表文件中的记录数加1。如果记录指针指向文件首,函数值为表文件中第一条记录的记录号。 8.记录个数测试函数 格式:RECCOUNT(<工作区号><表别名>) 功能:返回当前表文
46、件(若缺省自变量)或指定表文件中的记录个数。如果指定工作区上没有打开表文件,函数值为0。 RECCOUNT()返回的是表文件中物理上存在的记录个数。不管记录是否被逻辑删除以及SET DELETED的状态如何,也不管记录是否过滤(SET FLTER),该函数都会把它们考虑在内。 9.条件测试函数 格式:IIF(<逻辑表达式>,<表达式1>,<表达式2>) 功能:测试<逻辑表达式>的值,若为逻辑真 .T.,函数返回<表达式1>的值;若为逻辑假.F.,函数返回<表达式2>的值。<表达式1>和<表达式2>的类型不要求相同。 10.记录删除测试函数 格式:DELETED(<表的别名><工作
47、区号>)) 功能:测试指定的表,或在指定工作区中所打开的表,记录指针所指的当前记录是否有删除标记“*”,若有为真,否则为假。若缺省自变量,则测试当前工作区中所打开的表。 1.1.4 Visual FoxPro数据库及其操作 考核知识点一 Visual FoxPro数据库及其建立 ㈠.建立数据库 建立数据库的常用方法有以下三种: 在项目管理器中建立数据库; 通过“新建”对话框建立数据库; 使用命令交互建立数据库。 ㈡.使用数据库 在数据库中建立表或使用数据库中的表时,都必须先打开数据库,与建立数据库类似,常用的打开数据库的方式也有三种; 在项目管理器中打开数据库; 通过“
48、打开”对话框打开数据库; 使用命令打开数据库。 ㈢.修改数据库 可以用以下三种方法打开数据库设计器; 从项目管理器中打开数据库设计器; 通过“打开”对话框打开数据库设计器; 使用命令打开数据库设计器。 ㈣.删除数据库 Visual FoxPro的数据库文件并不真正含有数据库表或其他数据库对象,只是在数据库文件中登录了相关的条目信息,表、视图或其他数据库对象是独立存放在磁盘上的。所以不管是“移去”还是“删除”操作,都没有删除数据库中的表等对象,删除数据库时同时删除表等对象,需要使用命令方式删除数据库。删除数据库的命令是DELETE DATABASE,具体命令格式如下: DELE
49、TE DATABASE DatabaseName ┃? [DELETETABLES][RECYCLE] 其中各参数和选项的含义如下: DatabaseName:给出要从磁盘上删除的数据库文件名,此时要删除的数据库必须处于关闭状态;如果使用问号“?”,则会打开“删除”对话框请用户选择要删除的数据库文件。 DELETETABLES:选择该选项则在删除数据库文件的同时从磁盘上删除该数据库所含的表(.DBF文件)等。 RECYCLE:选择该选项则将删除的数据库文件和表文件等放入Windows的回收站中,如果需要的话,还可以还原它们。 注意:如果SETSAFETY设置值为ON,则Visual
50、FoxPro会提示是否要删除数据库,否则不出现提示,直接进行删除操作。 考核知识点二 建立数据库表 ㈠.在数据库中建立表 1.字段名 字段名即关系的属性名或表的更名。一个表由若干列(字段)构成,每个列都必须有一个惟一的名字——字段名,将来可以通过字段名直接引用表中的数据。在中文Visual FoxPro中字段名可以是汉字或合法的西文标识符。 2.字段类型和宽度 字段的数据类型决定存储在字段中的值的数据类型,数据类型通过宽度限制可以决定存储数据的数量或精度。 3.空值 字段有“NULL”选项,它表示是否允许字段为空值。空值也是关系数据库中的一个重要念,在数据库中可能会遇到尚未存储






