版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录第1章Visual FoxPro基础第2章数据与数据运算第3章数据库操作第4章查询与视图第5章程序设计基础第6章面向对象程序设计 第7章表单第8章报表 第9章菜单 第10章项目与项目管理器第11章小型系统开发实例 第一章数据库基础理论返回目录本章要点信息、数据和数据处理数据模型数据库系统关系数据库及其设计 返回目录1.1 信息、数据和数据处理 1.1.1 信息与数据 信息:是对客观世界的抽象描述。 数据:数据是用于记录客观事物属性的 物理符号。人(对象)性别:女(属性)头发:黄(属性)数据:包括文本形式数据和多媒体数据如:声音和视频、图片等。 1、从信息处理角度看,任何事物的属性都是通过数
2、据来表示,数据经过加工处理后,从而形成信息。 2、从计算机的角度看,数据泛指那些可以被计算机接受并能够被计算机识别处理的符号。 3、总之,信息是有用的数据,数据是信息的表现形式,信息是通过数据符号来传播的。数据与信息的区别 数据处理是指利用计算机将数据转换成信息的过程,包括对数据的收集、存储、加工、分类、排序、检索、传播等一系列活动。 其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据。 1.1.2 数据处理信息、数据与数据处理的关系可用下式简单表示: 信息 = 数据 + 数据处理数据是原料(输输入),信息是产出(输出),“信息处理” 则是为了产生信息而处理数据。1.1.3 数
3、据管理技术(可分为3个阶段)1人工管理阶段(20世纪50年代中期以前) 特点:数据不长期保存,没有对数据进行管理的软 件,一组数据对应于一个程序。 应用程序1应用程序2应用程序n数据组1数据组2数据组n2文件系统阶段时间:20世纪50年代后期至60年代。特点 :数据以文件形式长期保存;数据与程序有一定的独立性。缺点 :数据冗余度大 ;数据独立性差;缺乏对数据的统一控制管理。图示应用程序1应用程序2应用程序n数据组1数据组2数据组n操作系统3数据库系统管理阶段 时间:20世纪60年代后期开始 特点:(1)有了数据库管理系统(DBMS) (Database Management System)。
4、(2)面向全局。 (3)具有较高的数据独立性 (4)有统一的数据控制功能。图示应用程序1应用程序2应用程序n数据库数据库管理系统数据库系统管理阶段即对所有的数据实行统一规划管理,形成一个数据中心,构成一个数据“仓库”。1.2 数据模型 数据模型是对客观事物及其联系的数据描述,反映实体内部和实体之间的联系。1.2.1 实体及其联系1、实体 从数据处理的角度看,现实世界中的客观事物称为实体。2. 实体间的联系 实体之间的对应关系称为联系,它反映了现实世界事物之间的相互关联。 1)一对一联系(1:1) 2)一对多联系(1:n) 3)多对多联系(m:n)1.2.2 具体数据模型在数据库系统中,常用的数
5、据模型有: 层次模型 网络模型 关系模型。1.2.1 层次模型1层次模型:层次模型用树形结构来表示实体及其之间的联系。特点: 1)有一个结点没有父亲,称为根结点。 2)其它结点有且仅有一个父亲。 实体之间的联系是1:M联系(包括1:1联系)。 层次结构图示ABCDEFGH实例:学校财务处人事处行政教学艺术系研究所计辅教研室 层次模型优点:层次清晰、构造简单、易于实现1:1和1:M的实体联系。 采用层次模型来设计的数据库称为层次数据库。2、网状模型 是用以实体型为结点的有向图来表示各实体及其之间的联系。特点: 1) 可以有一个以上的结点无父亲。 2) 至少有一个结点有多于一个的父亲。 能表示 M
6、:N 联系。缺点:编写应用程序复杂,模型结构复杂。图示CDBEA图示成都德阳自贡资阳南充攀枝花灌县康定西昌(150)(102)(230)(130)(80)(95)(110)(130)(240) 关系模型 是用二维表格来表示实体及其相互之间的联系。在关系模型中,把实体集看成一个二维表,每一个二维表称为一个关系。每个关系均有一个名字,称为关系名。3.关系模型关系模型图例元组(记录值)属性(数据项)表头学生成绩关系后退 (1) 关系中每一分量不可再分,是最基本的数据单位; (2) 每一竖列的分量是同属性的,列数根据需要而设,且各列的顺序是任意的; (3) 每一横行由一个个体事物的诸多属性构成,且各行
7、的顺序可以是任意的; (4) 一个关系是一张二维表,不允许有相同的属性名,也不允许有相同的元组。关系模型的主要特点1.3 数据库系统 1.3.1 数据库 数据库(Data Base)是数据库系统的核心和管理对象。 所谓数据库,就是以一定的组织方式将相关的数据组织在一起,存放在计算机外存储器上形成的,能为多个用户共享的,与应用程序彼此独立的一组相关数据的集合。1、 数据库系统的组成 数据库系统DBS(Database System)是由计算机硬件、软件、 数据库、数据库系统有关人员组成。是具有高度组织性的总体。1.3.2 数据库管理系统硬件及软件构成 1. 硬件 除要求CPU的处理速度高、内存容
8、量大以外,还要求有足够的外存空间以存储数据库中的数据。 2. 软件 数据库系统中的软件包括操作系统、数据库管理系统及数据库应用系统等。数据库管理系统DBMS DBMS(DataBase Management System)是数据库系统的核心软件之一。 主要目标是使数据成为方便用户使用的资源,易于为各种用户所共享,并增进数据的安全性、完整性和可用性。它提供数据定义、数据操作、数据库管理、数据库建立和维护以及通信等功能。现今流行的DBMS 目前较流行的数据库管理系统有:Oracle、Sybase、SQLServer、Access、Visual Foxpro等。数据库中的数据由DBMS进行统一管理和
9、控制,用户对数据库进行的各种数据操作都是通过DBMS实现的。数据库系统的组成示意图硬件OS用户数据库管理员数据库DBMS数据库应用系统1.4 关系数据库及其设计 1.4.1 关系数据库 关系数据库(Relational Data Base)是若干个关系的集合。也可以说,关系数据库是由若干张二维表组成的。 在关系数据库中,将一个关系视为是一张二维表,又称其为数据表。 一个关系数据库由若干个数据表组成,数据表又由若干个记录组成,而每一个记录是由若干个以字段属性加以分类的数据项组成的。关系 模型理论与关系数据库中术语的对照关系 在数据表中,若某一字段或几个字段的组合值能够标识一个记录,则称其为关键字
10、(或键),当一个数据表有多个关键字时,可从中选出一个作为主关键字(或主键)。见表关键字及主键 在关系数据库中,数据表之间是具有相关性的。数据表之间的这种相关性是依靠每一个独立的数据表内部具有相同属性的字段建立的。一般地,两个数据表之间建立关联关系,是将一个数据表视为父表,另外一个数据表视为子表,其中子表中与父表主关键字段相对应的字段作为外键,数据表之间的关联就是通过主键与外键作为纽带实现关联的。见表数据表之间的关联 在关系数据库中,数据表为基本文件,每个数据表之间具有独立性,而且若干个数据表间又具有相关性,使得数据操纵方式简单,这一特点使其具有极大的优越性,并能得以迅速普及。 表1-4 信息中
11、心专门人才基本情况一览表1.4.2 关系的规范化 专门人才基本情况一览表(如表1-5所示),它收入了自然情况。 专门人才专业特长一览表(如表1-6所示),它收入了专业特长情况。 专门人才成就成果情况一览表(如表1-7所示),它收入了成就及成果情况。构建数据表表5 信息中心专门人才基本情况一览表 表1-6 信息中心专门人才专业特长一览表 表1-7 信息中心专门人才成就成果一览表 表1-5表1-7表1-6一对多一对一专门人才基本情况数据库 如何反映客观事物数据间的多种对应关系?通常将对应数据表放入同一个数据库中,并建立表间关联来刻画联系。 在同一个数据库中,相关联的表间关系的类型有一对一、一对多和
12、多对一3种关系。 1.4.3 表间关联关系的类型 1一对一关系 一对一关系即在两个数据表中选一个相同属性字段作为关键字段,把其中一个数据表中的关键字段称为主关键字段,该字段值是唯一的,而另一个数据表中的关键字段称为外来关键字段,该字段值也是唯一的。 一对一(编号)后退到到到到 2一对多关系 一对多关系,即在两个数据表中选一个相同属性字段作为关键字段,把其中一个数据表的关键字段称为主关键字段,该字段值是唯一的,而把另一个数据表中的关键字段称为外来关键字段,该字段值是重复的。 一对多(编号)到到 3多对一关系 多对一关系与一对多关系是类似的,唯一的区别是在两个相关联的数据表中,选择哪一个数据表中的
13、关键字段为主关键字段,该字段值是重复的,与它关联的另一个数据表中的关键字段为外来关键字段,该字段值是唯一的。多对一(编号) 关系的完整性,即关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。 关系的完整性主要包括域完整性、实体完整性和参照完整性三种。 1.4.4 关系的完整性 1域完整性 域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。 见表 2实体完整性 实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且
14、不能有相同值。见表 3参照完整性 参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。见表 关系运算是以关系为运算对象的运算,在关系运算中,变量是关系,运算结果仍然是关系。 常见的关系运算有选择运算、投影运算和连接运算三种。 1.4.5 关系运算 1选择(Select) 选择运算是从关系中选择某些满足条件的记录组成一个新的关系。也可以说,选择运算是在关系R中选择满足给定条件的元组。见表 2投影(Projec) 投影运算是从关系中选择某些字段的所有值组成一个新的关系。也可以说,投
15、影运算是在关系R中选择出若干属性列。见表 3连接(Join) 连接运算是将两个或多个关系通过连接条件组成一个新的关系。也可以说,连接运算是在关系R和关系S中选择属性间满足一定条件的元组。见表表1 选修数据库学生成绩选择(成绩(数据库)=90)投影(表1.学号,表1.成绩)连接(表1.学号=表2.学号)表2 选修法律学生成绩关系运算实例到58到59到60本章小结第1章 数据库基础理论 重要知识点 1、数据库的3种模型 2、数据库、数据库系统、DBMS的概念 3、关系数据库的相关概念 4、关系的完整性 5、关系的运算no2复习数据库管理发展阶段人工管理阶段、文件、数据库数据库系统组成软件、硬件、数
16、据库管理人员数据模型实体、属性、联系数据模型分类层次、网络、关系关系数据库关系模型元组(行、纪录),属性(列,字段)关系运算选择、投影、联结Visual FoxPro系统概述本章要点Visual FoxPro的安装与启动 Visual FoxPro系统环境的配置 Visual FoxPro用户界面 Visual FoxPro向导 Visual FoxPro生成器 Visual FoxPro设计器 2.1Visual FoxPro的安装与启动 2.1.1 安装环境 2.1.2 Visual FoxPro 的安装 启动Visual FoxPro有多种方法,可采用以下三种方式之一。 1从“开始”菜单
17、启动 2从资源管理器中启动 3从“运行”对话框中启动 2.1.3 启动Visual FoxPro 在Microsoft Visual FoxPro主菜单中,打开“文件”菜单,选择“退出”选项;按Alt+F4组合键;按Ctrl+Alt+Del组合键,进入“关闭程序”窗口,按“结束任务”按钮;在Microsoft Visual FoxPro的系统环境窗口,单击其右上角的“退出”按钮;在“命令”窗口,输入命令Quit。2.1.4 退出Visual FoxPro 2.2Visual FoxPro系统环境的配置 Visual FoxPro系统环境的配置,决定了Visual FoxPro系统的操作环境和工
18、作方式。 Visual FoxPro系统允许用户设置大量参数控制其工作方式。通过设置系统环境,可以添加或删除Visual FoxPro控件、更新Windows Registry注册项、改变选项栏和工具栏、安装ODBC数据源等。 系统环境配置操作步骤工具选项常规 数据 显示 文件位置 表单项目 控件确定2. Visual FoxPro用户界面 2.1 Visual FoxPro的界面 Visual FoxPro界面,是由标栏、菜单栏、工具栏、工作区、状态栏和命令窗口组成的。 2.2 标题栏标题栏位于屏幕界面的第一行,它包含系统程序图标、主屏幕标题、最小化按钮、最大化按钮和关闭按钮5个对象。菜单栏
19、工具栏命令窗口状态栏工作区标题栏Visual FoxPro菜单项的功能 (1) “文件”菜单 (2) “编辑”菜单 (3) “显示”菜单 (4) “格式”菜单(5) “工具”菜单 (6) “程序”菜单 (7) “窗口”菜单 (8) “帮助”菜单2.3 菜单栏Visual FoxPro系统提供了11种常用的工具栏: (1)常用工具栏 (2)布局工具栏 (3)表单控件工具栏 (4)表单设计器工具栏 (5)查询设计器工具栏 (6)视图设计器工具栏 (7)数据库设计器工具栏(8)报表控件工具栏 (9)报表设计器工具栏 (10)调色板工具栏 (11)打印预览工具栏 2.4.4 工具栏 激活工具栏的操作步
20、骤 显示 工具栏 “常用” 确定命令窗口位于菜单栏和状态栏之间,是Visual FoxPro系统命令执行、编辑的窗口。 在“窗口”菜单下,选择“隐藏”,可以关闭命令窗口;选择“命令窗口”,可以弹出命令窗口。 2.4.5 命令窗口状态行位于屏幕的最底部,用于显示某一时刻的管理数据的工作状态。 (1) Set Status off/ on,可控制屏幕上的状态行是否出现。 (2) 当前工作区中表文件打开后,状态行显示将显示该表的相关内容2.4.6 工作区与状态行2.5 Visual FoxPro向导 用户通过系统提供的各种不同的向导设计器,不用编程就可以创建良好的应用程序界面,并完成许多有关对数据库
21、的操作。 常用的向导设计器有:表向导、表单向导、报表向导、查询向导 等。2.6 Visual FoxPro生成器 Visual FoxPro系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。 常用的生成器有:组合框生成器、命令组生成器、表达式生成器、列表框生成器等。2.7 Visual FoxPro设计器系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。 常用的设计器有:表设计器、查询设计、视图设计器、列表框生成器、报表设计器
22、、数据库设计器、菜单设计器等。 本章小结第章 系统概述 重要知识点熟悉的用户界面,掌握各组成部分的大致功能如何设置系统的系统环境第2章数据与数据运算 本章要点数据类型 数据存储 函数 表达式 2.1 数据类型概念: 数据记录了客观事物的属性,包括两个方 面:数据内容和数据形式 。前者是数据的值, 后者是数据的存储形式和使用方式,也称为数 据类型。字符型数据类型不能进行算术运算 用字母C表示 包括一切可打印字符,例如,中文字符、英文字符、数字字符和其他ASCII字符等 长度(即字符个数)范围为0254,每个字符占一个字节 数值型数据类型表示数量并可以进行算术运算 用字母N表示 数值型数据在内存中
23、占用8个字节,数据长度(即数据位数)为120位 。货币型用来存储货币值 用字母Y表示 默认保留4位小数,占用8字节存储空间 数据类型日期型日期型数据表示不带时间的日期数据用字母D表示长度固定为8个字节,年月日之间的分隔符占一个字节 。数据类型 日期时间型表示日期和时间的数据 用字母T表示 长度固定为8个字节 数据类型逻辑型描述客观事物真假 ,表示逻辑判断的结果 用字母L表示 长度固定为1个字节 数据类型备注型用于存放较多字符型数据(超过254个字符)或者长度不一的字符型数据 用字母M表示 备注型数据只能作为数据表中备注型字段的值 备注型字段长度固定为4个字节,这4个字节存储的是实际数据在.fp
24、t文件中的存储位置。数据类型通用型数据类型存储OLE(对象链接与嵌入)对象 (比如:电子表格、文档、图形、声音 )用字母G表示 只能用于数据表中的字段类型定义 通用型数据字段长度固定为4个字节,实际数据存放在与表文件同名的备注文件(.fpt)中 整型/浮点型/双精度型 都具有数值特征 都只能用于字段变量浮点型用字母F表示,功能上与数值型等价。双精度型提供更高的数据精度 ,每个双精度型数据占8个字节 整型用于存储无小数部分的数值 ,整型字段占4个字节 ,用字母I表示。数据类型常量与变量常量是以直观的数据形态和意义的形式出现的数据,其值保持不变。按常量取值的数据类型,可将常量分为6种类型。 数值型
25、货币型日期型日期时间型逻辑型字符型变量是在操作过程中其值可以被改变的数据对象,必须在对其赋值之后才能使用。详细讲解字符型常量用规定的定界符括起来的一串字符,又称为字符串 字符串定界符有单引号( )、双引号( )、方括号( )三种 定界符内没有任何字符就是空串( ) 选出正确的字符型常量:3*9 hello 你好 Iam a student数值型常量由阿拉伯数字、小数点和正负号组成 没有定界符,可以是整数和小数,不能直接表示分数两种表示方法:小数形式和指数形式正确:117、-12.5、2.1E3(表示2.1*1000)错误:117、1/5货币型常量货币型常量的书写格式与数值型常量类似,但要加上一
26、个前置的$ ,例如$1000货币型数据在存储和计算时,采用4位小数 ,不能采用指数形式 。例如,货币型常量$3.1415926,将存储为$3.1416。 日期型常量定界符为花括号( 或者 ) 输入格式为yyyy/mm/dd(唯一,例如:2006/10/18)年月日之间用分隔符隔开,分隔符可以是“/” 、“-” 、“.” 等符号 输出显示格式有多种,具体使用哪一种格式主要与日期格式的设置相关,日期的默认显示格式是mm/dd/yyyy 严格的日期格式日期时间型常量定界符也为花括号( 或者 ) 输入格式为yyyy/mm/dd,hh:mm:ssa|p,例如:2006/02/10 22:22:22 p其
27、分隔符与日期型数据分隔符相同,时分秒之间用“ :”分隔 输出显示格式有多种,具体使用哪一种格式主要与日期格式的设置相关,日期时间的默认显示格式为 :mm/dd/yyyy , hh:mm:ssa|p ,例如,09/01/2005 11:45:30 pm 严格的日期与时间格式逻辑型常量逻辑型常量只有“真”和“假”两种值 定界符为圆点(. .)逻辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示。注意:字母前后的圆点不能省略变量常量与变量变量名分类(两大类)概念命名规则字段变量内存变量 变量实质是具有某一地址的存储单元 ,该地址被赋以名字,通过名字可以访问和存取该地
28、址中的值,这个指向某个地址的名字就是变量名。(1) 只能使用字母、汉字、下划线和数字命名。(2) 命名必须以字母、汉字或下划线开头。除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1128个字符。 (3) 不可与系统保留字同名。例如,for、quit、list等系统保留字。 a2b、年龄、Dept_3 2ab、*B、for、a? 字段变量指表中的字段,是一种多值变量,其值是表记录指针当前所指的那条记录对应字段的值,可以是任意数据类型。 内存变量是一种独立于表,并使用临时工作单元的变量,用户退出VFP或关机就会消失。 内存变量的类型一般是常用的六种。用内存变量名实现对内
29、存变量的访问。 如果内存变量与字段变量同名,则在调用该内存变量时应在内存变量名前加上符号“M.”或“M-” 。例如,M.姓名表示内存变量“姓名”的值。 备注型、通用型、整型、浮点型、双精度型、二进制字符型和二进制备注型等数据类型只能用于字段变量中 。内存变量内存变量的赋值 命令格式1:= 命令格式2:STORE TO 例子:a=.t. & a为逻辑型 b=100 & b为数值型 store “2” to a & a为字符型 store 7*3+5 to a ,b & a,b分别是什么类型?这两条命令的区别是:第一种格式只能给一个内存变量赋值,第二种格式可以同时给多个内存变量赋相同的值。内存变量
30、的显示 命令格式1:DISPLAY MEMORY LIKE TO PRINTERTO FILE 命令格式2: LIST MEMORY LIKE TO PRINTERTO FILE 例子: list memory & 连续显示所有内存变量 display memo like a* & 分屏显示所有以a开头的内存变量 list memo like ?1 & 连续显示所有首个字符为任意字符, 第二个字符为1的内存变量 内存变量这两条命令的区别是:LIST MEMORY命令一次连续显示指定的内存变量; DISPLY MEMORY命令分屏显示指定的内存变量 LIKE选项表示显示与通配符相匹配的内存变量,
31、通配符?表示任意一个字符,通配符*表示任意多个字符 内存变量内存变量的保存命令格式:SAVE TO ALL LIKE|EXCEPT 例子: save to a & 将所有内存变量保存到文件a.mem中 save to a1 all like a* & 将所有以a开头的内存变量保存到文件 a1.mem中 save to a2 all except a* & 将所有不以a开头的内存变量保存 到文件al2.mem中 为了便于以后使用,可以将所定义内存变量的相关信息全都保存到一个文件中,该文件称为内存变量文件,默认的扩展名为.mem 内存变量内存变量的恢复 命令格式:RESTORE FROM ADDI
32、TIVE 例子: restore from a1 & 将保存在文件al.mem中的内存变量读入内 存,并清除内存中现有的内存变量。 restore from a2 additive & 将保存在文件a2.mem中的内存变量 读入内存,但不清除内存中现有的内 存变量。 指将已存入内存变量文件中的内存变量从文件中读出,装入内存中,以供使用. 内存变量内存变量的删除 命令格式1:CLEAR MEMORY 功能:删除所有内存变量。 命令格式2:RELEASE ALL LIKE|EXCEPT 功能:删除指定的内存变量。 例子: release all & 删除所有内存变量 release all lik
33、e a* & 删除所有以a开头的内存变量 release all exce ?a & 删除什么样的内存变量?数组变量内存变量的另一种应用形式 内存变量(1)数组的定义(数组必须先定义后使用) 命令格式1:DIMENSION (,下标上界2), 命令格式2:DECLARE (,下标上界2), 说明 两条命令的功能完全相同。下标的下界和上界均是整数值,下界值为1。数组一经定义,它的每个元素都可当作一个内存变量来使用。每个元素的数据类型是根据所赋值的类型来确定,可以互不相同。 数组变量是一组内存变量的集合,这些内存变量可以具有不同的数据类型,每个内存变量就是一个数组元素。内存变量数组变量内存变量的另
34、一种应用形式 (2)数组的赋值 例如: dime a(5) , b(4,3) a=60 b(1, 3)=.t.注:执行后,一维数组a的5个元素都赋以同样的值60,二维数组元素b(1,3) 的值为.t. 数组定义之后,系统自动为每个数组元素赋初值逻辑假.F. 使用赋值命令可以给单个数组元素赋值,也可以给整个数组的各个元素赋以相同的值。 由于二维数组各元素在内存中按行的顺序存储,所以,二维数组可按一维数组元素的顺序来存取数据例如: 二维数组b(4,3)中的元素b(2,2)是排在第2行第2列,由于每一行是3个元素,所以b(2,2)也可用b(5)表示。即,b(1)=b(1,1), b(2)=b(1,2
35、),b(3)=b(1,3),b(4)=b(2,1),b(5)=b(2,2)。 为了增强系统的功能和方便用户使用,VFP提供了许多内部函数,每个函数实现某一功能或运算。 函数调用的格式为: 函数名(参数表) 其中参数可根据实际需要选用,有些函数没有参数。即使没有参数,函数名后的一对括号也不能参略。 函数可分为数值型、字符型、日期时间型、数据类型转换型、测试型几种类型。函 数数值函数 1. 求绝对值函数 格式:ABS() 功能:求数值型表达式的绝对值。函数值为数值型。 例: a=10 b=20 ?abs(a-b) 结果: 10函 数数值函数 2. 求平方根函数 格式:SQRT() 功能:求数值型表
36、达式的算术平方根,数值型表达 式的值应不小于零。函数值为数值型。 例: a=25 ?sqrt(a),sqrt(a-9) 结果: 5.00 4.00函 数数值函数 3. 求指数函数 格式:EXP() 功能:将数值型表达式的值作为指数x,返回ex的值。函数值为数值型。 例: ?Exp(0),exp(1) 结果: 1.00 2.72函 数函 数数值函数 4. 求对数函数 格式1:LOG() 格式2:LOG10() 功能:LOG求数值型表达式的自然对数,LOG10求数值型表达式的常用对数,数值型表达式的值必须大于零。函数值为数值型。 例: ?log(10),log10(10) 结果: 2.30 1.0
37、0函 数数值函数 5. 取整函数 格式: INT() CEILING() FLOOR() x=56.72 ?int(x),int(-x),ceiling(x),ceiling(-x),floor(x),floor(-x) 结果:56 -56 57 -56 56 -57功能: INT取数值型表达式的整数部分。CEILING取大于或等于指定表达式的最小整数。FLOOR取小于或等于指定表达式的最大整数。 函数值均为数值型。函 数数值函数6. 求余数函数格式: MOD(,)功能: 1)求除以所得出的余数,所得余数的符号和表达式2相同。 2)如果被除数与除数同号,那么函数值即为两数相除的余数。 3)如果
38、被除数与除数异号,则函数值为两数相除的余数再加上除数的值。 4)函数值为数值型。例1: ?mod(25,7) ?mod(25,-7) ?mod(-25,7) ?mod(-25,-7)结果: 4 3 3 4函 数数值函数7. 四舍五入函数 格式:ROUND(,) 功能:对求值并保留n位小数,从n+1位小数起进行四舍五入。n的值由数值型表达式2确定。若n小于0,则对的整数部分按n的绝对值进行四舍五入。 例: ? ROUND(3.1415*3,2) , ROUND(156.78,-1) 结果: 9.42 160函 数数值函数8. 求最大值和最小值函数 格式:MAX(), ) 格式:MIN(), )
39、功能:MAX求n个表达式中的最大值,MIN求n个表达式中的最小值。表达式类型不限定,但所有表达式的类型应相同。函数值的类型与自变量的类型一致。 例:? max (2005-08-16 , 2002-08-16) ? min (班长,副班长, 学习委员, 组长) 结果:08/16/05 班长函 数数值函数9. 函数 格式:PI() 功能:返回圆周率的近似值。 例:?SIN(PI()/6) 结果:0.51. 宏代换函数 格式: &.字符表达式 功能: 代换出一个字符型内存变量的内容。若与后面的字符无空格分界,则&函数后的“.”必须有。函 数字符函数例1: a=“*” ?“5&a.4” ,5&a.4
40、结果: 5*4 20例2: m=245*SQRT(4) ?34+&m结果: 524.00例3: i=1 j= 2“ x12=Good“ Good=MAX(96/01/02,65/05/01) ? x&i.&j, &x12结果: good 48函 数字符函数2.求字符串长度函数 格式:LEN(字符型表达式) 功能:求字符串的长度,即所包含的字符个数。若是空串,则长度为0。函数值为数值型。 例:?len(中华人民共和国), len( ) 结果: 14 0函 数字符函数3. 求子串位置函数格式:AT(,) ATC(,)功能:若的值存在于的值中,则给出在中的开始位置,若不存在,则函数值为0。函数值为数
41、值型。ATC函数在子串比较时不区分字母大小写。 例:xm= 王峰 ? AT(王,xm),AT(PRO,Visual FoxPro) ? ATC(PRO,Visual FoxPro) 结果: 1 0 11 函 数字符函数4. 取子串函数格式:LEFT(,) RIGHT(,) SUBSTR(,说明:对于left和right函数,若N_E的值大于0,且小于等于字符串的长度,则子串的长度与N_E值相同;若N_E的值大于字符串的长度,给出整个字符串;若N_E小于或等于0,则给出一个空字符串。 对于substr函数,若字符个数省略,或字符个数多于从起始位置到原字符串尾部的字符个数,则取从起始位置起,一直到
42、字符串尾的字符串作为函数值。若起始位置或字符个数为0,则函数值为空串。 从字符型表达式左边的第一个字符开始截取子串从字符型表达式右边的第一个字符开始截取子串对字符型表达式从指定位置开始截取若干个字符,起始位置和字符个数分别由数值型表达式1和数值型表达式2决定。 例子: xm=陈胜利 ? SUBSTR(xm,1,2),LEFT(xm,4),RIGHT(XM,2)结果: 陈 陈胜 利函 数字符函数5.删除字符串前后空格函数 格式:LTRIM() RTRIM() ALLTRIM() 功能:LTRIM删除字符串的前导空格。 RTRIM删除字符串的尾部空格,RTRIM亦可写成TRIM。 ALLTRIM删
43、除字符串中的前导和尾部空格,ALLTRIM函 数兼有LTRIM和RTRIM函数的功能。 函 数字符函数6.生成空格函数 格式:SPACE() 功能:生成若干个空格,空格的个数由数值型表达式的 值决定。 例:name=SPACE(8) ? LEN(RTRIM(name) 结果:0函 数字符函数7.生成空格函数 格式:STUFF(,) 功能:用去替换中由起始位置开始所指定的若干个字符。起始位置和字符个数分别由和指定。如果C_N2的值是空串,则C_N1中由起始位置开始所指定的若干个字符被删除。 例:x=湖南财经高等专科学校 ? STUFF(x,9,12, 学院) 结果:湖南财经学院 函 数字符函数8
44、.产生重复字符函数 格式:REPLICATE(,) 功能:重复给定字符串若干次,次数由数值型表达式 给定。 例:? REPLICATE ( * ,6) 结果:* 函 数字符函数9.大小写字母转换函数 格式:LOWER() UPPER() 功能:LOWER将字符串中的大写字母转换成小写。 UPPER将字符串中的小写字母转换成大写。 例:yn=y ? UPPER(yn),LOWER(YES) 结果:Y yes 函 数日期与时间函数 1.系统日期和时间函数 函 数日期与时间函数 2.求年份、月份和天数函数函 数日期与时间函数 3.求时、分和秒函数函 数数据类型转换函数 1.将字符转换成ASCII码的
45、函数 格式:ASC() 功能:给出指定字符串最左边的一个字符的ASCII码 值。函数值为数值型。 例:?ASC(“ABC”),ASC(“BC”) 结果:65 66函 数数据类型转换函数 2.将ASCII码转换成相应字符函数 格式:CHR() 功能:将数值型表达式的值作为ASCII码,给出所 对应的字符。 例:?CHR(65) 结果:A 函 数数据类型转换函数 3.将字符串转换成日期或日期时间函数 格式:CTOD() CTOT() 功能:CTOD函数将指定的字符 串转换成日期型数据,CTOT 函数将指定的字符串转换成 日期时间型数据。字符型表 达式中的日期部分格式要与 系统设置的日期显示格式一致
46、。 例子: A=CTOD(01/02/03) B=CTOT(01/02/03 01:20:30) ?VARTYPE(A) ?VARTYPE(B) 结果: D T函 数数据类型转换函数 4.将日期或日期时间转换成字符串函数 格式:DTOC(|,1) TTOC(,1) 功能:DTOC函数将日期数据或日期时间数据的日期部分转换为字符型,TTOC函数将日期时间数据转换为字符型。字符串中日期和时间的格式受系统设置的影响。对DTOC来说,若选用1,结果为yyyymmdd格式。对TTOC来说,若选用1,结果为yyyymmddhhmmss格式。 例子: A=DTOC(2006/02/03 ) B=TTOC(2
47、006/02/03 11:20:30) ?VARTYPE(A), VARTYPE(B)结果: C C 函 数数据类型转换函数 5.将数值转换成字符串函数 格式:STR(, ,) 功能:将N_E1的值转换成字符串。转换后字符串的长度由 N_E2决定,保留的小数位数由N_E3决定。 省略N_E3时,转换后将无小数部分。省略N_E2和 N_E3时,字符串长度为10,无小数部分。 如果指定的长度大于小数点左边的位数,则在字符 串的前面加上空格,如果指定的长度小于小数点左边的 位数,则返回指定长度个星号*,表示出错。 例: x=1234.587 ?STR(x,10,2),STR(x,10,4),STR(
48、x,7,2) 结果:1234.591234.58701234.59其中的代表空格。函 数数据类型转换函数 6.将字符串转换成数值函数 格式:VAL() 功能:将由数字、正负号、小数点组成的字符串转换为 数值,转换遇上非上述字符停止。若串的第一个字符 即非上述字符,函数值为0。前导空格不影响转换。 例子:? vartype(val(1200) 结果:C函 数测试函数 1.数据类型测试函数 格式:VARTYPE(,) 功能:测试表达式的数据类型,返回用字母代表的数据 类型。函数值为字符型。未定义或错误的表达式返回 字母U。若表达式是一个数组,则根据第一个数组元素 的类型返回字符串。 例子:a=20
49、05/11/17 ?VART(4*5),VART(.t.),VART(a), VART(a),VART(b) 结果:N L D C U函 数测试函数 2. 表头测试函数 格式:BOF( |) 功能:测试指定或当前工作区的记录指针是否超过了第一个逻辑记录,即是否指向表头,若是,函数值为.T.,否则为.F.。缺省时默认为当前工作区。3. 表尾测试函数 格式:EOF(|) 功能:测试指定或当前工作区中记录指针是否超过了最后一个逻辑记录,即是否指向表的末尾,若是,函数值为.T.,否则为.F.。缺省时默认为当前工作区。函 数测试函数 4. 记录号测试函数 格式:RECNO(|) 功能:返回指定或当前工作
50、区中当前记录的记录 号,函数值为数值型。 省略参数时,默认为当前工作区。 如果记录指针在最后一个记录之后,即EOF() 为.T.,RECNO()返回比记录总数大1的值。 如果记录指针在第一个记录之前或者无记录,即 BOF()为.T.,RECONO()返回1。函 数测试函数 5. 记录个数测试函数 格式:RECCOUNT() 功能:返回当前或指定表中记录的个数。如果在 指定的工作区中没有表被打开,则函数值为0。 如果省略参数,则默认为当前工作区。 其返回的值不受SET DELETED和SET FILTER 的影响,总是返回包括加有删除标记在内的 全部记录数。函 数测试函数 6. 查找是否成功测试
51、函数 格式:FOUND() 功能:在当前或指定表中,检测是否找到所需的数据。 如果省略参数,则默认为当前工作区。 数据搜索由FIND、SEEK、LOCATE命令实现。如 果这些命令搜索到所需的数据记录,函数值为.T., 否则函数值为.F.。 如果用非搜索命令,例如,GO移动记录指针, 则函数值为.F.。函 数测试函数 7.文件是否存在测试函数 格式:FILE() 功能:检测指定的文件是否存在。如果文件存 在,则函数值为.T.,否则函数值为.F.。 文件名必须是全称,包括盘符、路径和扩 展名,且是字符型表达式。函 数测试函数 8. 判断值介于两个值之间的函数 格式: BETWEEN(, ) 功能
52、: 判断表达式的值是否介于相同数据类型的两个表达式值之间。BETWEEN()首先计算被测试表达式的值。如果表达 式(字符型、数值型、日期型)的值介于两个相同类型表达式的值之间,即被测表达式的值大于或等于下限表达式的值,小于或者等于上限表达式的值,BETWEEN()将返回一个真.T.值,则返回.F.。 例: gz=375 ? BETWEEN(gz,260,650)结果:.T.函 数测试函数 9. 条件函数IIF 格式:IIF(,) 功能:若逻辑型表达式的值为.T.,函数值为 的值,否则为的值。 例:xb=女 ?IIF( xb=男,1 ,IIF(xb=女,2,3) 结果:2 概念 表达式就是用运算
53、符和括号将常量、变量和函数连接起来的有意义的运算式。 单个常量、变量和函数可以看作最简单的表达式。 表达式 分类 按运算符的不同可以将表达式分为五类。 五类表达式的比较学习表达式当一个表达式包含多种运算时,其运算的优先级由高到低排列为: 字符表达式 连接运算 连接运算符有完全连接运算符“”和不完全连接运算符“”两种。 格式: +/- “”运算的功能是将两个字符串连接起来形成一个新的字符串。 “”运算的功能是去掉字符串1尾部的空格,然后将两个字符串连接起来,并把字符串1末尾的空格放到结果串的末尾。 例如:? 姓名 李森 + 男 结果:姓名李森男表达式字符表达式 包含运算 包含运算的结果是逻辑值。
54、 格式: $ 若包含在之中,其表达式值为.T.,否则为.F.。 例如:zhch=副教授 ? 教授 $ zhch 结果:.T.格式1: 即 D1ND2格式2: 即 D1ND2格式3: 即 D1D2N格式4: 即 T1NT2格式5: 即 T1NT2格式6: 即 T1T2N日期和时间表达式表达式关系表达式 一般形式为:e1 e2 其中e1、e2可以同为数值型表达式、字符型表达式、日期型表达式或逻辑型表达式。但精确等于号=仅适用于字符型数据。 非精确等于是指等号右边与左边的前几个字符相同时,结果为真。 关系表达式表示一个条件,条件成立时值为.T.,否则为.F.。 各种类型数据的比较规则如下:表达式数据
55、的比较规则(1)数值型和货币型数据根据其数值的大小进行比较。(2)离现在日期或时间越近的日期或时间越大。(3)逻辑真.T.比逻辑假.F.大。(4)字符型数据按照机内码顺序排序。对于西文字符而言,按其ASCII码值由小到大进行排列:空格-数字-大写字母-小写字母。对于汉字字符,按其国标码的大小进行排列,对常用的一级汉字而言,根据它们的拼音顺序比较大小。(5)用命令SET EXACT ON来设置字符串精确比较,此时,=和=的作用相同;SET EXACT OFF则不同。表达式逻辑表达式表达式逻辑值A逻辑值BA AND BA OR BNOT ATTTTFTFFTFFTFTTFFFFT 例:STORE
56、76 TO a,b,c ? ab-1 AND bc OR NOT c=a 结果:.F.例题解析【例1】求下列表达式的值: (1) VARTYPE(2005/11/17) 因为VARTYPE函数返回参数的数据类型,而2005/11/17是数值型表达式,其值为数值型,所以表达式的值为N。 $是子串比较运算符,区分大小写,则PRO $FoxPro值为.F.,35的值也为.F.,所以PRO $FoxPro and 35的值为.F. (2)PRO $FoxPro and 35 该表达式的值为.F.,整个表达式的作用是判断10是否被3整除。(3)INT(10/3)=10/3 该表达式的值为.F., 整个表
57、达式的作用是判断2005是否被4整除而且不被100整除,或者被400整除,这是判断2005年是否闰年的表达式。 (4)2005%4=0 and 2005%100!=0 or 2005%400=0 SPACE函数产生空格,ALLTRIM函数删除字符串中的前后空格,LEN函数返回字符串长度,因此该表达式的值为8。 (5)LEN(ALLTRIM(SPACE(8)-SPACE(8) 【例2】 分析下列命令执行后的结果 (1) DIMENSION A(3,2) A=.T. A(3,1)=!A(3,1) ?A(5),A(2,2) 显示:.F. .T.解析:DIMENSION A(3,2)定义了一个二维数组
58、,A=.T.给数组的每一个元素赋值.T.,A(3,1)=!A(3,1)将A(3,1)的值取反,所以A(3,1)的值为.F.;由于二维数组可以看作一维数组,A(5)等于A(3,1),所以A(5)的值为.F.。 (2) YA=100 YB=YA+100 YC= YB+100 N=A M=Y&N ?M ,&M 显示:YA 100解析:M是字符型变量,其值是Y&N,执行?M时先作宏替换,将&N替换为A,因此结果为YA;执行?&M时先将&M宏替换为Y&N,再将&N宏替换为A,实际上显示的就是YA变量的值,因此结果为100。 (3) 工资1370 职称讲师 性别男 ?工资1400 OR NOT 职称“教授
59、”; AND 性别“男” 显示:.T.解析:这是将三个关系表达式用逻辑运算符连接起来构成的逻辑表达式,主要是清楚三个逻辑运算符之间的优先级问题。 (4)SET EXACT ON A湖南长沙 BALEFT(A,4) ?IIF(B, 长沙,北京) 显示:北京 解析:BALEFT(A,4)是一个赋值语句,是将关系表达式ALEFT(A,4)的值赋给变量B,因为ALEFT(A,4)左边的值为“湖南长沙”,右边为“湖南” ,而且是精确比较,所以其值是逻辑假,故B=.F.。 【例3】学生表的结构如下:学生(学号 C 6,姓名 C 10,性别 C 2 ,出生日 期 D,少数民族否 L,籍贯 C 10,入学成绩
60、 N 5.1,简历 M,照片 G)针对学生表,写出下列条件: (1)姓“张”的学生。 (2)20岁以下的学生。 (3)家住湖南或湖北的学生。 (4)汉族学生。 (5)入学成绩在580分以上的湖南或湖北的学生。 (6)20岁以下的少数民族学生。(1)姓“张”的学生 条件1:AT(张,姓名)=1 条件2:SUBSTR(姓名,1,2)=张 条件3:姓名=张(2)20岁以下的学生 条件1:DATE()-出生日期=20*365 条件2:YEAR(DATE()-YEAR(出生日期)0(4)汉族学生 条件1:NOT 少数民族否 条件2:少数民族否.F. 条件3:IIF(少数民族否,少数民族,汉族)=汉族(5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购合同预付款的融资风险管理3篇
- 采购框架协议年度合同3篇
- 采购合同与采购计划的协同制定3篇
- 采购合同管理中的合同管理策略3篇
- 采购法务与合同的签订流程3篇
- 2024年版投资对赌合同范本细则版B版
- 2024年度地砖铺设与户外照明设施合同3篇
- 2024年度医疗设备采购担保付款保证合同正规范本3篇
- 2024年医院康复中心科室承包运营服务协议3篇
- 2024年度绿色环保招牌设计与施工一体化合同3篇
- DLT5461-2013 火力发电厂施工图设计文件深度规定(第1-16部分)
- 辅警签合同范本
- DL-T+1920-2018电网企业应急能力建设评估规范
- 2024年人教版小学三年级科学(上册)期末考卷附答案
- 工程项目决算书
- 光刻技术员工作总结
- MOOC 组织学与胚胎学-华中科技大学 中国大学慕课答案
- 缝合线材料的可吸收性研究
- 2024届红河哈尼族彝族自治州绿春县小升初语文检测卷含答案
- GB/T 43700-2024滑雪场所的运行和管理规范
- 《3-6岁儿童学习与发展指南》知识竞赛参考题库500题(含答案)
评论
0/150
提交评论