资源描述
Vfp课件重点总汇:
1. Visual FoxPro及它的中文版,是可运行于Windows 98 和 Windows NT 平台的32位数据库开发系统
2. Visual FoxPro 还提供了一个集成化的系统开发环境,
支持面向对象可视化编程技术。
第一章
1.1.1
本节重点:
· 什么是信息、数据?
· 信息与数据的区别与联系?
· 数据管理的三个阶段,各个阶段的特点?重点掌握数据库系统阶段。
1. 信息(Information):
信息是客观事物属性的反映。它所反映的是关于某一客观系统中某一事物的某一方面属性或某一时刻的表现形式。
2. 数据(Data):
数据是反映客观事物属性的记录,是信息的载体。对客观事物属性的记录是用一定的符号来表达的,因此说数据是信息的具体表现形式。数据所反映的事物属性是它的内容,而符号是它的形式。
3. 两者关系:
· 区别:
数据与信息在概念上是有区别的。信息是有用的数据,数据是信息的表现形式。
· 联系:
信息是通过数据符号来传播的,数据如不具有知识性和有用性则不能称其为信息。
1.1.2
数据的管理技术的发展大致经历了三个阶段:人工管理阶段、文件系统阶段以及数据库系统阶段。
1.人工管理阶段特点:
数据一般不需要长期保存;数据管理没有统一的管理软件;数据不能共享;数据不具有独立性(即不能独立于程序)。
2.文件系统阶段特点:
数据可以以文件形式长期保存;程序与数据之间具有相对的独立性;数据文件组织多样化。
3. 数据库系统阶段特点:
采用数据模型表示复杂的数据结构,实现数据共享;有较高的数据独立性;提供数据安全性、完整性等管理与控制功能;统一管理和控制数据。
1.2.1
本节重点:
· 数据库系统的组成?
· 什么是数据库、数据库管理系统、数据库系统?
· 它们之间的关系?
· 数据库管理系统的基本功能?
1. 数据库系统(简称DBS)组成:
由数据库(DB)、数据库管理系统(DBMS)、计算机支持系统、应用程序和有关人员组成。(DBA数据库管理员)
操作
系
统
各种应用程序
数据库管理系统
(DBMS)
数据库管理员
(DBA)
数据库
(DB)
2.数据库(DataBase 简称DB)
(1)定义:指按一组一定数据库模型组织的、长期存放在辅助存储器上的、可共享的相关数据的集合。
(2)特点:具有最小的冗余度,即数据尽可能不重复;资源共享性;数据独立性;安全可靠;保密性能好。
(3)组成:
一是数据;
二是元数据(关于数据的数据,数据的结构、类型、格式、关系、完整性约束、使用权等)元数据的集合称为数据字典,数据库管理系统通过数据字典对数据库进行管理。
3.数据库管理系统
它是对数据库进行管理的系统软件,是用户与数据库之间的接口。
功能:数据定义、数据操纵、数据的组成和存取、数据库运行管理、数据库的维护(P4)
应用程序是面向最终用户的、利用数据库系统资源开发的、解决管理和决策问题的各种应用软件。
1.3.1
本节重点:
· 什么是三级模式结构?
· 什么是两级映射?
1. 三级模式
(1)外部层(2)概念层(3)内部层
注:它们分别对应于数据库模式的外模式、模式和内模式
2. 二级映射
(1)外部层/概念层 保证数据的逻辑独立性
(2)概念层/内部层 保证数据的物理独立性
1.4
本节重点:
· 信息在三个领域中的表示?
· E-R模型的基本概念(实体、联系、属性),以及它们在E-R图中的表示图形?
· 什么是关系模型?它的组成是什么?
· 什么是超关键字、候选关键字、主关键字和外部关键字?
· 有哪些关系运算?
· 有哪些完整性约束?
1. 数据模型是用来抽象、表示和处理现实世界中的信息和数据。数据模型主要有:层次模型、网状模型、关系模型和面向对象数据模型。树型、层次模型和网状模型统称为非关系型,它们分别用树结构和网络结构对实体集和联系进行描述。
2. 信息的三个领域:现实世界、信息世界、数据世界。
3. 概念模型,对现实世界的第一层抽象,长期以来,广泛使用“实体—联系”模型(E—R模型)。
4. 在E-R图中,矩形框表示实体集,菱形框表示联系,椭圆(圆形)框表示属性。
5.关系模型用二维表表示实体集,通过外部关键字表示实体间联系,由三部分组成:数据结构、数据操作、完整性规则。
6.完整性规则:域完整性、实体完整性、参照完整性和用户自定义。
7. 关键字 超关键字(就是多个主关键字的集合) 侯选关键字 主关键字(唯一能够确定数据的字段) 外部关键字(一个关键字在一张表中是主关键字,在另外一张表中就可能不是关键字)
注:大多数二维表中,只有一个侯选关键字,在有些复杂的二维表中有多个侯选关键字。
8. 关系运算 关系的基本运算有两类:传统的集合运算(并、差、交等),两个关系必须具有相同的关系模式;专门的关系运算(选择、投影、联接)。实际设计关系模式时,一般要求满足3NF
9. 关系模型的完整性
(1)域完整性(2)实体完整性(3)参照完整性
1.5
本节重点(在后续章节中将重点介绍):
· 数据定义命令
· 数据查询命令
· 数据更新命令
· SQL的视图命令
1. 关系数据库语言是一种非过程语言
2. 定义基本表的SQL语句表示为:
CREATE TABLE<表名>
(<列名><数据类型>[完整性约束条件],……)
[ ] 表示可含有该子句,也可为空,视实际定义要求而定。
例:create table cj(xh C(8),kcdh C(4))
3. 数据库查询是数据库的核心操作。
· SQL语言提供了SELECT语句进行数据库查询。 SELECT查询语句简单的形式为:
SELECT A1,A2,…,An (指出目标表的列名或列表达式序列)
FROM R1,R2,…,Rm (指出基本表或视图序列)
[WHERE F] (F为条件表达式)
4. 插入语句( INSERT)
它可将一个记录插入到指定的表中。语句格式为:
INSERT INTO <表名>(<列名1>,<列名2>…)
VALUES(<表达式1>,<表达式2>,…)
注:INSERT语句在插入一个记录时,将表达式的值按序作为对应列的值。此时,若未指明列名的那些列,在对应的记录中取空值。
5. 更新语句(UPDATE)
修改语句可对指定表中已有数据进行修改。语句格式如下:
UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE <条件>]
功能:修改指定表中满足WHERE子句条件中的记录,其中SET子句给出<表达式>的值,用于取代相应列的值,若省略WHERE子句,则表示要修改表中的所有记录。
6. SQL删除语句的格式为:
DELETE FROM <表名> [WHERE <条件>]
该语句的功能是从指定表中删除满足WHERE子句条件的记录。如果省略WHERE子句,则删除表中所有记录。
注意:仅删除表中记录,表的定义仍在数据字典中。
7. SQL语言用CREATE VIEW语句建立视图,其一般格式为:
CREATE VIEW <视图名>
AS <SQL查询语句>
· 视图是DBMS所提供的一种以用户模式观察数据库中数据的重要机制。
· 视图可由基本表或其他视图导出。
· 视图只是一个虚表。
1.6
本节重点:
· 数据库设计的基本步骤?
· 数据库设计的各个步骤的任务、实现的方法、设计步骤以及最终的结果?
1. 数据库设计包括数据库结构特性的设计与数据库行为特征的设计。
2. 数据库设计方法也有两种:面向数据和面向过程。
3. 需求分析的重点是“数据”和“处理”,通过调研和分析,应获得用户对数据库的基本要求(1) 信息需求(2)处理需求(3)安全与完整性的要求
4. 在需求分析中经常使用结构化分析方法(Strucured Analysis,简称SA)。SA方法从最上层的组织机构入手,采用自顶向下逐层分解的方法分析系统,并用形式化或半形式化的描述(如数据流程图(DFD)和数据字典(DD))来表达数据和处理过程的关系。
5. 数据流程图(Data Flow Diagram,简称DFD)是使用直观的图形符号,描述系统业务过程、信息流和数据要求的工具。
6. 数据字典是关于数据库中数据的描述,即元数据
7. 系统设计分为三个阶段:概念结构设计,逻辑结构设计和物理结构设计。
8. 一般用E-R模型作为描述概念模型的工具
9. 概念结构设计步骤:
按分层的局部应用需求,设计局部概念模式
局部概念模式集成为全局概念模式
主要工作有两点:
合并 消除冗余
10.概念结构设计的最终成果有两个方面:
数据的概念结构说明
系统的功能设计描述
11逻辑结构设计
从概念模型导出特定的DBMS可以处理的数据库的逻辑结构,包括数据库的模式和外模式。设计步骤如下:
· E-R图向关系模式的转换
· 规范化处理
· 数据模式的优化
· 用户模式的设计
概念结构设计阶段中所得到的全局E-R图中的实体集和联系,转换为RDBMS所支持的关系型数据的逻辑结构。
概念模型
(E-R图)
关系数据模式
规范化数据模式
用户模式
转化规则
规范化
优化
逻辑结构设计的基本步骤
12. 逻辑结构设计中的成果也有两个方面:
在数据库设计的描述方面
在功能设计描述方面:自顶向下
13. 数据库物理结构设计有两个目标:
· 提高数据库的性能
· 有效地利用存储空间
14. 系统实施的任务是实现系统设计阶段提出的数据逻辑结构、存储结构和软件结构,按实施方案完成一个可实际运行的信息系统,交付用户使用。
该阶段的主要工作包括三个方面:
· 利用DBMS提供的数据定义语言对逻辑结构设计和物理结构设计的结果进行定义,包括数据的描述、记录的描述、记录间关系的描述以及物理结构的各种描述,建立实际的数据库结构。
· 装入测试数据对应用程序进行测试,以判断其功能和性能是否能满足设计要求,并对数据库进行检查和评估。
· 装入实际数据,建立起实际的数据库。
15.测试包括以下三种类型:(1)模块测试(2)系统测试(3)验收测试
16系统维护工作的主要任务:
. 1. 日常维护
· 数据库的备份与恢复
· 安全维护
· 空间管理
· 并发控制
· 问题解决
2. 监控与分析
· 收集统计数据
· 分析操作
3. 性能调整
· 调整索引
· 调整查询和调整事务
4. 扩展与增强
· 应用程序扩展与增强
· 模式修改
· DBMS版本升级
1.7
本节重点:
· 各种DBMS产品的比较?
· Visual FoxPro?
Orade
是世界上使用最广泛的大型关系型数据库管理系统之一
DB2(UDB,通用数据库)
能够在各种系统中运行自如,大型的DBMS。
Sybase
多库、多设备、多用户、多线索等特点极大地丰富和增强了数据库功能。
MS—SQL Server
采用客户/服务器体系结构,支持Web技术。
Access
单文件型数据库,提供对数据的完整性和安全性控制的机制,提供界面友好的可视化开发环境。
Visual Foxpro
将在第2章中详细介绍。
第二章
2.1
本节重点:
· 熟悉VFP的操作环境
· 熟练掌握几个常用的命令
1. 工具栏:系统提供了10多个工具栏,可利用“显示”—“工具栏”设置工具栏。
一般为常用工具栏。
2. 在命令窗口中是以交互式的方式输入命令的,也可以通过编写程序的方式执行命令。
3. 命令的语法格式说明
(1)斜体字:该部分是命令的一个语法成分,由用户定义。
(2)方括号:“[ ]”;可选项。
(3)省略号:“…”;前一语法成分可重复多次。
(4)竖线:“|”;前后语法成分选择其一。
(5)粗体字:命令名关键字,用于标识命令的功能。
例:DELETE FILE [FileName|?] [RECYCLE]
RECYCLE用于决定是否将删除的文件放入回收站。
4.如果命令太长,在命令窗口中可用<ctrl>+<enter>换行输入,在程序中用“;”
换行输入(最后一行不需要分号)。
5.”*” 只能将整行命令定义为注释,且*必须为命令行第一个字符(如果出现在命令中,就表示同类型的所有文件,例:dir a:\*.txt)
6.”?” 显示的值在上一次显示内容的下一行显示(即换行显示);”??” 将本行内容接着上一行的内容显示(不换行)。
7. DIR命令
在VFP主窗口中显示文件的目录。
格式:DIR [[文件路径][文件说明]]
例如:DIR && 显示当前目录表文件
DIR a:\*.txt && 显示a盘中的txt(文本)文件
DIR a:\jxgl\t*.scx && 显示A盘中以字符t开头的.scx文件
8. MD / RD / CD命令
MD:创建文件夹;
RD:删除文件夹;
CD:改变当前目录。
9. COPY FILE / RENAME / DELETE FILE命令
例如:COPY FILE C:\aa\myfile.txt TO a:
RENAME a:\*.txt TO c:\*.doc
&&故rename具有移动文件的功能
10. RUN命令
调用外部DOS命令,DOS应用程序或Windows应用程序。
例如:RUN /N Calc && 运行Windows 的“计算器”应用程序
(相当于调用系统中的工具)(/N表示不必要等待该命令执行结束就可以执行下一个命令)
11. QUIT命令
关闭所有打开的文件,并结束当前的VFP系统的运行。
2.1.3
1.通过set命令修改vfp的操作环境。(如果最后不是“确定”,而是“设置为默认值”,那么下次再用的时候就是这次的设定值,不变。)
2. 常用的SET命令 ,具体见书34页,重要的几个如下:
1).SET CLOCK ON|OFF|STATUS决定VFP是否显示系统时钟
2). SET DATE [TO] AMERICAN|ANSI|MDY|DMY|YMD|LONG
指定日期表达式和日期时间表达式的显示格式
3). SET DEFAULT TO [路径说明] 指定默认的驱动器、目录或文件夹
4). SET ESCAPE ON|OFF决定是否可以通过按【ESC】键中断程序和命令的运行
5). SET ESCAPE ON|OFF决定是否可以通过按【ESC】键中断程序和命令的运行
6). SET TALK ON|OFF决定VFP是否显示命令结果
7). SET SAFETY ON|OFF决定改写已有文件是否显示对话框
2.2
本节重点:
· VFP各种文件类型
· 每种文件的文件个数
1. Visual FoxPro 文件类型具体见书本35页。
2. 创建一个报表并保存后,在磁盘上指定位置将生成扩展名分别为frx.frt的两个同名文件。
2.3
本节重点:
· 熟悉项目管理器中的页面
· 熟练掌握项目管理器的各种操作
1. 注意:一旦项目文件建立完成,就会在相应的路径中生成两个文件(PJX(项目)和PJT(项目备注));打开相应的项目文件,则项目管理器就打开了。
2. 创建项目的方法:(三种)
· 命令窗口中使用create project命令 命令格式: create project [项目文件名|?]
· 使用“文件”菜单中的“新建”菜单项;
· 使用工具栏上的“新建”按钮。
2.3.1
1. 命令按钮
1). 添加:把已有的文件添加到项目中
2.3.3
1. 快捷菜单命令(单击右键,出现的菜单)
(1)包含/排除:用于将所选项设置为项目包含或项目排除。如某项为项目排除,则前用斜线带圆圈
来标注,包含的项在运行是只读的。
(2)设置主文件:即设置程序的“入口”程序,可以设置为主文件的为:程序、表单、查询或菜单,并且每个项目职能有一个主文件。
(3)重命名:修改所选项的名称。(不能对已打开的文件进行重命名)
(4)编辑说明:编辑所选项的说明信息。
(5)项目信息:用编辑或设置一些与项目有关的信息。
2.4
本节重点:
· 掌握各种数据类型
· 掌握数据存储(常量、变量、数组、字段、对象)方法
· 掌握各类型数据运算的操作符、表达式
· 掌握常用系统函数的用法
2.4.1
对数据进行操作的时候,只有同类型的数据才能进行操作,若对数据类型不同,系统判为语法错误。
1.字符型C(Character)
由任意字符(字母(m)、数字(6)、空格( )、符号(*)等)组成,每个字符占“1”个字节,最多可有254个字符。英文半角状态下输入,有些由数字组成的编码还是作为字符型处理。
2.货币型Y(Currency)Y
使用其类型,需在数字前加上美元符号($)。涉及数据时,用货币型代替数值型,小数位数超过4位,系统自动四舍五入。
3. 日期型D(Date)
用于存储日期数据,占8个字节。格式: yyyy / mm / dd
4. 日期时间型T(DateTime)
用于存储日期时间数据,占8个字节。格式: yyyy(4个字节) / mm(2个字节) / dd(2个字节) hh:mm:ss am/pm
5. 数值型N(Numeric)
由0~9、(+)、(-)、(.) 组成。注:小数点和小数 位数是字段总长的一部分。
6. 逻辑型L(Logical)
用于表示两种状态,只能是“真”(.T.)或 “假”(.F.),占1个字节。
7. 浮点型F(Float)
与数值型等价,只是为了提供兼容性。
8. 双精度型(Double)B
只能用于数据表中的字段定义,位数固定,小数点的位置由输入的数值决定,占8个字节。
9. 整型(Integer)I
用于数据表中的字段定义,占4个字节。
10. 备注型(Memo)M
用于表中存储数据块,占4个字节,这4个字节只是一个引用(指针),指向实际的备注内容。注:表中记录的备注字段数据保存在单独的文件中,与表名同名,扩展名为fpt,即备注文件。
11. 通用型(General)G
用于存储OLE对象,占4个字节,这4个字节只是一个引用(指针),指向实际的内容,即电子表格、照片、声音等其他类型文档。与备注型相同,若表中有通用型字段,则会生成备注文件,与表名同名,扩展名为fpt。
2.4.2
1. 名称命名规则
名称中只能包含字母、下划线(_)、数字和汉字,即不能出现各种字符如+、-、!、@、#、%等。
名称的开头只能是字母、汉字或下划线,不能是数字。
除了自由表的字段名、索引标识的长度最多10字符,其余的名称长度可1~128个字符。
应避免使用VFP系统的保留字
系统变量一般采用下划线开头。
例:2x、2_x、num-of-xs、nSum&Score、 _aver#gz、dir、use(系统保留字)
如果文件名中使用了空格符号,那么在命令中引用文件名是要加双引号。
2.4.2
1.常量
在数据处理过程中其值不发生变化的量。根据其数据类型可以分为6种。
数值型 (对于特别大或者特别小的数字用浮点表示法:3.12E+28即3.12乘以10的28次方) 字符型(字符串,需“定界符”括起来。注:定界符: 单引号(‘’)、双引号(“”)、方括号([])字符串中字母的大小写不等价。空串(“”)(不包含任何字符的字符串)和空格字符串(“ ”)(包含空格的字符串)是不同的) 货币型 逻辑型(.T. 、.t.、.Y.、.y. 或 .F.、.f.、.N.、.n.(”.”是定界符,不能省)
日期和日期时间型(用{ }括起来
传统格式:{mm/dd/yy [hh:[mm[:ss]] [a/p]]}
严格格式:{^yyyy/mm/dd [hh:[mm[:ss]] [a/p]]}
· VFP6.0及以上版本的默认格式为严格的日期格式。
· VFP3.0不支持严格的格式, VFP5.0支持。
· 空日期值用{ }表示,空日期时间值用{:}表示。)
如果要使用传统的日期格式,要使用命令set strictdate,格式为
Set strictdate to 0/1/2(0表示不进行严格的日期格式检查,1表示进行严格的日期格式检查,2表示进行严格的日期格式的检查,并对ctod和ctot函数也进行严格的日期格式检查
2.内存变量
VFP中内存变量不需要声明,它的创建是通过赋值来完成,并且同时确定了该变量的数据类型。
赋值方法:
· store <表达式> to <内存变量名>
可同时为多个不同变量赋同一个值。
· <内存变量名> = <表达式>
只能为一个变量赋一个值,“=”为赋值号。
3.控制访问变量
局部变量(local) 变量(private) (公有)变量(public)
4. 变量访问
当变量和字段名同名时,字段有优先被访问权。要在变量名前加“m.”以示区别。
例子:在当前的工作区中打开一张表名为xs,其中存在一个字段为xh则可以使用下列命令显示变量的值和字段值:
Xh=’我是变量’(定义一个字符型变量xh)
?m.xh(显示变量xh的值)
? xh(示表中的xh字段的值)
?xs.xh(示表中的xh字段的值)
5. 变量的保存与恢复
内存变量是系统在内存中设置的临时存储单元,当退出VFP时其数据会自动丢失。将变量保存到文件中:
· 保存语句:
SAVE TO FileName [ALL LIKE Skeleton | ALL EXCEPT Skeleton]
· FileName:内存变量文件的名字.mem(默认文件扩展名)
· Skeleton:变量通配符(指定哪些变量需要保存)
· ALL LIKE子句:需保存的变量。
· ALL EXCEPT子句:不需保存的变量。
· 恢复语句:
RESTORE FROM FileName [ADDITIVE]
6. 数组
(1)数组的声明
declare, dimension(私有);public(全局);local (局部)
格式:
Declare|dimension|public|local 数组名(行数,[列数])
例:dimension x(3) —> x(1), x(2), x(3)
dimension a(2,2) —> a(1,1) a(1,2) a(2,1) a(2,2)
(2)数组的赋值
· 数组声明后,初值为.F.。
· 重新赋值后,数据类型由其值决定。
· 数组中各元素的数据类型可以相同,也可不同。
例:a(1,1)=13, a(1,2)=‘s’,a(2,1)=45…
a=113 —>数组a中的所有元素赋以113
7. 不同数据容器作用域的差异(表见书本)46
2.4.3
1.函数
(1)ABS(n表达式):求一数值的绝对值
(2)INT(n表达式):求一数值的整数部分,即抛掉所有小数位数及小数点,不进位。
(3)MOD(n表达式1,n表达式2):求数值表达式1 除以数值表达式2的余数。注:MOD( )函数值的正负号保持与第二个参数的正负号一致,值的小数位数与第一个参数的小数位数保持一致决定
例:mod(23,-3)=-1,mod(-23.25, 5)=1.75
(4)ROUND(n表达式1,n表达式2):求n表达式1四舍五入的结果,其四舍五入的位置由n表达式2决定。
例:Round(123.456,2)=123.46
Round(123.456,-1)=120.00(默认保留2位小数)
(5)MAX(n表达式1,n表达式2… ):求最大值,在查询中表示Max(cj),这里cj是一个字段,也是一组数据的集合。
(6)MIN(n表达式1,n表达式2…):求最小值,在查询中表示Min(cj),这里cj是一个字段,也是一组数据的集合。
(7)SQRT(n表达式):求一数值的平方根,参数必须不小于零。
(8)RAND( ):返回一个0~1之间的随机数 (如果是rand()*10则是返回1~10之间的数字)
2. 字符函数
字符函数用来处理字符型数据,其返回结果为字符型或数值型。
(1)ALLTRIM(c表达式):返回结果为括号中给定的字符串删除开头和结尾的空格以后得到的字符串。
(2)LTRIM(c表达式):返回结果为括号中给定的字符串删除字符串表达式首部的空格。
(3)TRIM(c表达式):返回结果为括号中给定的字符串删除字符串表达式结尾的空格。
(4)RTRIMN(c表达式):同TRIM( )函数。
注:这四个函数都是删除字符串中的空格(首部或尾部),返回结果为字符型数据。
(5)SUBSTR(c表达式,n[,m]):将字符表达式进行截取,n表示开始截取的位置,m表示截取的个数,如m省略,则截取从n开始的所有字符。
(6)LEFT(c表达式, n):将字符表达式从最左边开始截取n个字符。
(7)RIGHT(c表达式,n):将字符表达式从最右边开始截取n个字符。
注:这三个函数都是对字符型数据进行截取其中的一部分。返回结果均为字符型数据。
(8)LEN(c表达式):返回结果为括号中给定的字符串长度,返回结果为数值型。
(9)AT(c表达式1,c表达式2,[n]):求字符表达式1在字符表达式2第n次出现的位置,如n省略则表示第一次。返回结果类型为数值型。注: AT( )区分大小写;ATC( )不区分大小写。
(10)SPACE(n):返回由n个空格组成的字符串,SPACE(0)则表示空字符串。返回结果为字符型数据。
3. 日期与时间函数
(1)DATE( ):返回系统当前日期,返回结果类型为日期型。
(2)DATETIME( ):返回系统当前日期时间,返回结果类型为日期时间型。
(3)TIME( ):返回系统当前时间,没有时间类型,Time函数结果为字符型。
注:DATE()、DATETIME()、TIME(),均没有参数。
(4)YEAR(d表达式):返回给定日期的年份。
(5)MONTH(d表达式):返回给定日期的月份。
(6)DAY(d表达式):返回给定日期在某个月中的第几天。
注:YEAR()、MONTH()、DAY(),返回结果类型为数值型。
(7)DOW(d表达式):返回给定日期在该星期中是第几天,默认西方习惯星期天是第1天,结果类型为数值型。
4. 数据类型转换函数
(1)ASC(c表达式):返回单个字符或字符串首字符ASCII码值,返回结果类型为数值型。
(2)CHR(n表达式):返回某数值在ASCII码表中对应的字符,返回结果为字符型。
(3)VAL(c表达式):将字符串转换成数值。首字符必须是+、-、0~9数字,否则返回结果为0;并且只能转换数字,除字符“E”和“.”之外的所有字符均不能转换;字符“E”是科学计数法。
(4)STR(n表达式,n,m):将数值转换成字符串。n和m都是可选参数,n是返回的字符串的宽度,省略为10个字节,m是保留小数的位数,省略为0。例如:STR(123456789012)=’ 1.234E+11’ 总宽度为10位,字符数为9,在最前面预留了符号位1位。
(5)DTOC(d表达式 ,1):将日期转换成字符串。参数1是可选参数,如使用可选参数1,则结果的类型为:yyyymmdd,其宽度为8,否则返回结果形式由系统当前的日期格式决定,并且宽度也由其决定。
例:系统当前日期格式:mm/dd/yy
DTOC(date( ))=”05/26/98”
DTOC(date( ), 1)=”19980526”。
(6)CTOD(c表达式):将括号中给定的字符串转换成日期。
(7)TTOC(t表达式,1 | 2):将日期时间转换成字符串。参数1与DTOC( )相同,参数2指只返回时间部分。
(8)CTOT(c表达式):将字符串转换成日期时间。
5. 其它函数
(1)iif(条件,结果1,结果2):当条件为.T.,函数返回结果1,当条件表达式为.F.,函数返回结果2。
注意:很多同学会把函数名错写成iff。
(2)Type(c表达式):返回字符型表达式中引号括起来的表达式的类型。 注:其参数必须加引号,返回结果类型为字符型
(3)Between(表达式1,下界,上界):测试表达式1的值是否在下界和上界之间,返回结果类型为逻辑型。
(4)Inkey(n秒数):返回键盘缓冲区中第一个按键的键码(ASCII)值。返回结果类型为数值型。
(5)MessageBox(‘显示文本’,对话框类型,‘标题’):弹出消息框。返回结果类型为数值型,不同的按钮对应的数值不同,这样可以用在分支结构的程序中。
(6)File(c表达式):测试辅助存储器上是否存在指定的文件。返回结果类型为逻辑型。
例:FILE(“a:\data\js.dbf”)
(7)GetFile([c表达式1][, c表达式2]):显示“打开”对话框,并返回选定文件的名称。c表达式1:文件的类型,即文件的扩展名。c表达式2:指定文件文本框前的标签。
(8)DISKSPACE( ):返回默认值磁盘驱动器上可用的字节数(存储空间)。
会用到set default to 设置默认目录
2.4.4
1. 数值运算符与表达式
按优先级高低排列为:()、**或^(乘方)、*、/、%(求余数,同MOD()函数)、+、- 。
2. 字符运算符与表达式
按优先级高低排列为:
(1)“+”:连接,将两个字符串首尾相连。
例:”abc ”+”123”=”abc 123”
(2)“-”:连接,同时将运算符左侧字符串尾部空格移到末尾。 例:”abc ”-”123”=”abc123 ”
(3)“$”:包含运算符,包含左侧字符串是否包含在右侧字符串中,运算结果为逻辑型。(有大小写之分)
3. 日期(和日期时间)运算符与表达式
(1)日期-日期 结果是天数(数值型)
(2)日期+天数 结果是日期型数据
(3)日期-天数 结果是日期型数据
(4)两个日期不能相加
说明:对于日期时间,“天数”改为“秒数”
4. 关系运算符与表达式
<、>、=、<>或#或!=(不等于比较)、<=、>=、==(字符串精确比较)
在比较字符串时,对于不同的字符的比较,是根据字符的排列顺序决定字符大小,字符序列的设置分为三种情况:
· Machine(机器)序列:按机器内码顺序排列,由小到大是:空格(32)、大写字母A、小写字母a。
· PinYin(拼音)序列:汉字按拼音顺序,对于西文,由小到大是:空格、小写字母、大写字母。
· Stroke(笔画)序列:汉字按书写笔画的多少,对于西文,由小到大是;空格、小写字母、大写字母。
注:系统默认的字符序列为“PinYin”,可在“选项”对话框中“数据”选项卡中设置,也可用命令SET COLLATE。
例:SET COLLATE TO “Machine”
?’A’<‘B’ , ’a’<‘A’ , ’’<‘A’
SET COLLATE TO “PinYin”
?’A’<‘B’ , ’a’<‘A’ , ’’<‘A’
5.使用“=”比较时,受SET EXACT命令影响。当SET EXACT OFF(默认值)时,如果“=”右边的字符串长度比左边的短,则左边取右边长度比较;当SET EXACT ON时,首先将字符串短的一边尾部加上空格,使两边相等后比较。
6. 逻辑运算符与表达式
按优先级高低排列为:( )、NOT或!、AND、OR
7. 名称表达式
由圆括号括起来的一个字符表达式,用来替换命令函数中的名称。
· 替换变量名
例:nvar=100
var-name=“nvar”
STORE 1234 TO (var-name)
?nvar && 结果:123.4
· 替换文件名
dbf-name=“js”
use (dbf-name) && 等价于use js
· 作为函数参数
String1=“Visual FoxPro”
Str_var=“string1”
?SUBSTR((str_var),1,6)
· 用字符表达式来构成一个名称表达式
db_name=“jxsj”
dbf_name=“js”
USE(db_name+”!”+dbf_name)
&& 等价于use jxsj!Js
8.宏替换
宏替换与名称表达式具有相似的作用,可使用宏替换的方法用内存变量替换名称。将连字符(&)放在变量前。
例:nVar=100
nVarb=100
var_name=“nVar”
store 123.4 to &var_name
&& 等价于store 123.4 to nVar
store 200 to &var_name.b
&& 等价于store 200 to nVarb
2.4.5
Null:
· 等价于没有任何值
· 与0、空字符串(“”)及空格不同
· 排序优先于其他数据
· 在计算过程中或大多数函数中都可以用到NULL值
· NULL值会影响命令函数,逻辑表达式和参数的行为可用.NULL.标记,或键入[ctrl]+[0](可以用isnull()函数来判断字段或变量是否
展开阅读全文