




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章数据库技术基础信息时代的核心是信息,因此,现代计算机技术基本上是以数据处理和信息管理为中心,它是计算机应用的一个主要领域。L计算机技术:信息的处理和存储。2.网络技术:信息的传输与共享。3.数据库技术:信息的管理。1.1数据管理技术的发展数据:计算机可以接受并能处理的符号序列。如:数字、文字、图像、声音数据处理:对各种形式的数据进行收集、储存、加工和传播。其目的是从大量、原始的数据中抽取、推导出对人们有价值的信息。数据管理:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的核心问题。随着计算机硬件和软件的发展,计算机应用于数据管理工作经历了自由管理、文件系统管理和数据库系统管理三个阶段。1.1人工管理阶段20世纪50年代中期以前,计算机主要用于科学计算,无专门软件来管理数据。数据是面向应用的,一组数据对应一个应用程序,数据之间无法相互利用。特点:数据不保存、.数据与程序无独立性、数据冗余大。2文件系统阶段.20世纪50年代后期到60年代中期,计算机开始大量用于非数值计算领域,操作系统的出现,有了专门管理数据的文件系统。特点:数据以文件形式保存、…使用文件名访问数据“文件组织多样化.在文件系统阶段,数据库基本上还是面向应用的,应用程序各自独立地建立与维护自己的文件,数据与程序之间仍互相依赖,缺乏独立性,文件之间彼此孤立,不能反映相互联系。1.1.3数据库系统阶段20世纪60年代后期开始,计算机广泛用于管理,对数据的共享性要求越来越高。于是,出现了数据库技术,以及相应的软件系统:数据库管理系统DBMS(DataBaseManagementSystem)特点:数据结构化好,数据独立性高,数据冗余度小,数据共享程度高,有统一的数据管理和控制功能。数据库是相关数据的集合。数据结构由数据模型表示出数据之间所存在的有机关联,以反映现实世界事物之间的联系。12数据模型数据模型就是现实世界的模拟,是对客观事物及其联系的抽象描述。在数据库系统中针对不同的使用对象和不同的应用目的,可采用不同层次的数据模型。数据从现实世界到计算机里的具体表示一般要经历现实世界、信息世界和机器世界三个阶段。1.2.1由现实世界到数据世界.现实世界个体(对象):实际存在且可以识别的事物。如:一个人、一台计算机、某人的爱好与性格。全体:相同特征个体的集合。.信息世界实体:客观存在且可以相互区别的事物。属性:用于描述实体的某些特征。如:“学生”实体可用学号、姓名、性别、年龄等属性描述。属性值的集合表示一个实体,属性的集合表示一个实体类型(实体型),同类型实体的集合称为实体集。(VisualFoxpro用“表”来存放实体集)两个不同实体集之间的联系有三种类型:一对一联系(1:D:如果对于实体集A中的每个实体,实体集B中至多有一个实体(也可以没有)与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:1。一对多联系(1:n):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:n。(3)多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多的联系,记为m:n。3.数据世界 三个不同世界术语对照表现实世界信息世界数据世界组织(事物及其联系)实体及其联系数据库事物类(总体)实体集文件事物(对象、个体)实体记录特征属性数据项(字段)1.2.2数据库数据模型描述数据在数据库中用数据模型这个工具来抽象、表示和处理现实世界中数据、信息及其联系的方法。通俗地讲数据模型就是现实世界的模拟。目前最常用的是下列三种:按图论理论建立的层次模型(HierarchicalModel):网络模型(NetworkModel);按关系理论建立.的关系模型(RelationalModel)。.层次数据模型:用树形结构表示实体之间联系的模型。层次模型必须满足下面两个条件:(1)有且只有一个结点没有双亲结点,该结点为根结点。(2)根以外的其它结点有且只有一个双亲结点。.网状数据模型:用网络结构表示数据及其联系.满足下面两个条件的基本层次联系的集合为网状模型。(1)允许一个以上的结点无双亲;(2)一个结点可以有多于一个的双亲。.关系数据模型:70年产生于IBM公司E.F.Codd提出的关系理论.其基本思想是用二维表格来数据之间的联系.即每个二维表格称为一个关系。关系模型中的常用术语关系(Relation):即通常所说的表,由行和列组成关系模式。一般表示为关系名一(属性名1,属性名2,……,属性名n)例如:学生关系模式可描述为:学生(学号,姓名,性别,出生日期,专业)。元组(Tuple):表中的每一行,对应一个实体。属性(Attribute):表中的每一列,对应实体的一个属性。列名称为属性名,列值称为属性值。值域:属性的取值范围。(也称域(Domain))主码(关键字)(Key):一个或几个属性的组合,能够唯一确定一个元组的属性集合称为关键字。外码:与其它表起联系作用的属性。主键:表中可能有多个关键字,在应用中被选用的关键字称为主键。外部关键字(ForeignKey):与其它表起联系作用的属性。若属性集合S存在于关系R1中,但不是关系R1的主键;它同时也存在于关系R2中,而且是关系R2的主键,则S是关系R1相对于R2的外键。关系的描述:关系名(属性1,属性2,…,属性n)二维表与关系数据库二维表人事档案一职工名册表名:职工名册(数据库文件名file)结构:档案管理的项目struture(数据库文件的结构每一项目名叫字段名)行(元组):管理的对象record(数据库文件的记录)列(属性):管理对象的属性field,即对应于字段名的值(通常称为数据项或字段值)一个关系模型的二维表须满足以下条件(性质)①表中每一列对应于一个唯一的字段名,即不能有重名的属性.②表中每一列必须是基本数据项,不可再分解,即具有不可再分的原子属性.③表中各列的数据,具有各自相同性质的数据,即取值范围相同.④表中任意两行的内容不能完全相同即没有冗余的元组⑤表中的行的顺序和列的顺序,可以分别任意调换,即行列次序无关.关系模型的基本运算.选择(Selection):根据给定条件,从一个关系中选出若干个元组组成一个新的关系。是原关系的子集。.投影(Projection):从一个关系中选择某些特定的属性组成一个新的关系。重复的元组将被删除。.连接(Join):从两个或多个关系中选取属性满足一定条件的元组,组成一个新的关系。(YFE—没有直接提供传统的集合运算…(并."一差、…交),.一可以通过其它操作或编导程序来实现)L3数据库系统的组成与模式结构3.1数据库系统的组成数据库(DB):以一定结构存储且相互关联的、结构化数据集合。一个数据库由若干表及其联系组成。数据库管理系统(DBMS):用于描述、维护、管理数据库的软件系统。是数据库系统的核心组成部分。数据库应用系统:根据需要在DBMS支持下运行的计算机应用系统。1.3.2数据库系统三级模式结构L外模式 2.概念模式 3.内模式3.3数据库系统研究范围L数据库管理系统软件的研制 2.数据库设计 3.数据库理论L4新一代数据库技术发展1、分布式数据库2、面向对象数据库3,多媒体数据库4、模糊数据库新的数据库技术:如Web数据库技术、并行数据库技术、数据仓库(DataWarehouse,DW)与联机分析处理(LineAnalyticalProcessing,OLAP)技术、数据挖掘(DataMining,DM)与商务智能技术、内容管理技术、海量数据管理技术等。(2)这些数据库技术将促使数据库向智能化集成化方向发展。数据库设计基础数据库设计原则L应遵从概念单一化的原则:一个表描述一个实体或实体间的一种联系,如学生信息放在学生表,课程信息放在课程表。2.尽量避免表之间出现重复字段:减少数据冗余。3.表中的字段必须是原始数据和基本数据元素。4.用外部关键字保持相关表之间的联系。数据库设计步骤需求分析:信息需求、处理需求、安全性和完整性。确定需要的表:遵从概念单一化的原则,一个表描述一个实体或实体间的一种联系。确定所需字段:①每个字段直接和表的实体相关②以最小的逻辑单位存储信息③表中的字段必须是原始数据④确定主关键字字段。确定联系:需要分析各个表所代表的实体之间存在的联系,可以把一个表的主关键字添加到另一个表中,使两个表都有该字段。建立方法:一对多联系、多对多联系(尽可能分解为一对多)、一对一联系。设计求精:对上述过程不断检查、修改、调整,直至满足用户要求。第二章VisualFoxPro概述1Xbase系列数据库的发展Ashton-Tate公司:Xbase系列dBASE、dBASEH、dBASEHI、dBASEIIIplus,dBASEIV(1984DbaseIII)Fox公句:FoxBASE系列FoxBASE、FoxBASE+、FoxBASE+2.0、FoxBASE+2.10、FoxPro1986FoxSoftware公司FoxbasePLUS(+) 1988.7FoxbaseV2.11992FoxSoftware公司并入MicrosoftMicrosoft公司:92年收购Fox公司,推出FoxPro2.5、FoxPro2.6;96年推出VisualFoxPro5.0/6.0forwin;04年12月VisualFoxPro9.0目前常用的产品有:Sybase、Oracle,Informix,SQL、FoxPro等关系数据库管理系统。常用数据库开发平台数据库开发平台:(1)数据库服务器常用的有SQLServer、Oracle、Sybase、DB2、MySQL等.它们都是大型的数据库开发平台,重点在于后端数据库的管理,它们的数据库都是隐身于后的“服务器其主要功能有:强大的数据库引擎、高度的数据安全、备份及还原、不同数据库之间的数据转换等。(2)桌面型数据库软件常用的有挺照和驷L典亟9等,它们都是小型的数据库开发平台,其特点是易学易用,适合建立小型数据库。其主要特色有:强大的窗体及报表制作能力、强化数据库的工具和易学易用的操作界面等。2VFP功能与特点.可视化开发工具:将界面元素与相应的行为、动作结合、简化编程。.增强项目管理:使用明目管理器创建、集中管理开发项目中的数据、文档、源代码、类库等资源,使开发与维护更方便。.丰富开发工具:提供更多好的生成器、工具栏、设计器,可快速开发应用程序。.面向对象程序设计:即结构化程序设计(如:窗体、工具栏等)。.兼容性:可兼容Xbase、FoxBASE等…..多用户共享数据。.比较完善的数据字典:可对数据库中的每个表定义规则、永久关系等。.支持网络应用(C/S模式):支持客户/服务器工作模式。3VFP的应用开发环境VisualFoxpro的安装与启动安装:运行安装程序Setup.exe卸载:控制面板->添加/删除程序->选择启动:与Windows其他应用程序相同(选择VFP快捷命令启动Visualfoxpr。;“开始”->“程序”->“MicrosoftVisualFoxpro6.0";在桌面上双击VFP快捷方式图标;运行“VFP6.EXE”文件启动Visualfoxpro;双击打开VFP的文件)Visualfoxpro主窗口简介L主窗口包括:标题栏、控制菜单按钮、最小化/最大化或还原/关闭按钮、菜单栏、工具栏、主窗口显示区、命令窗口、状态行等。.状态行:用于显示系统的当前状态信息,包括正在使用的表名及其存放的文件夹、当前表的记录数、以独占或共享方式打开表、插入或改写状态、数字锁定或非锁定状态、字母大写或小写状态。.VFP主菜单(1)菜单:由一系列菜单命令组成,有系统菜单、快捷菜单、子菜单和用户菜单等。(2)菜单命令:一个命令名或过程名,每一个命令都是一个VFP命令的快捷方式,单击它即执行相应的命令。(3)访问键:键盘上的字符,这些字符一般标示在菜单命令右侧括号内,并加有下划线。键入Alt+字符激活°(4)动态菜单:是指在运行某一命令时才会被激活的菜单。.VFP工具栏有十几种工具,"常用'’工具栏是VFP默认显示的工具栏,VFP允许同时打开多个工具栏。(选择“显示”二〉“工具栏”->选定需要的工具栏。最后“确定”)整个界面需要了解的内容L菜单.工具栏:定制工具栏,常用工具栏,设计器工具栏(如表单控件工具栏).命令窗口.VFP的环境设置(工具/选项).VFP文件类型扩展名文件类型扩展名文件类型,act向导操作图文档.Ibx标签・app生成的应用程序.1st向导列表的文档.cdx复合索引.mem内存变量保存,dbc数据库・mnx菜单.dbf表•mpr生成的菜单程序.det数据库备注•mpx编译后的菜单程序.dex数据库索引,OCXOLE控制.dll动态链接库.pjt项目备注.exe可执行程序.pjx明目.fmt格式文件・prg程序.frx报表•qpr生成的查询程序,fxp编译后的程序,sex表单.idx索引,win窗口文件Visualfoxpro的工作方式:主要有交互式方式和可视化操作,包括选择命令的快捷方式、键入命令方式和命令文件方式。(1)命令的快捷方式:主要设置在菜单系统、工具栏和快捷菜单上,快捷菜单上还有访问键和快捷按钮。快捷菜单:当用户在选定的内容上单击鼠标右键时出现的菜单,它与选定内容相关。快捷键:用于执行某项任务的一个按键或组合键,一般在菜单助的右端提示。(2)命令方式:直接在命令窗口中输入命令,并按回车。如果输入的命令符合VFP的语法要求,则命令关键字用蓝色字体显示,否则,用黑色字体显示。(3)命令程序方式:是指将VFP的一系列命令按照一定的顺序组织成一个文件,通过调用这个文件依次执行预定的命令,实现自动操作功能。有些命令只能用命令方式执行。“命令窗口”可以隐藏或显示,隐藏转换显示可按<ctrl>+<F2><ctrl>+<F4>退出Visualfoxpro在关闭VFP之前,最好先关闭所有的数据库和表等操作对象,避免数据丢失。常用方法:单击VFP主窗口右上角的“关闭按钮。其它方法:①选择“文件”菜单->选择“退出”②在VFP主窗口下,按<ALT>+<F4>③在命令窗口中执行RUIT”命令④双击VFP主窗口左上角的“控制菜单按钮”⑤右键单击任务栏上的VFP图标->选择“关闭”项目管理器1项目管理器的作用(1)采用目录树结构,可以集中统一分类管理系统所必需的各个文件(2)具有创建、修改、删除及编译应用系统中各文件的功能2创建助目文件(1)命令方式:modifyproject〈项目名〉modifyproject[?](2)菜单按钮方式:新建 (3)项目文件扩展名为:.PJX3项目文件的打开4项目文件的使用(1)选项卡(6种:全部、数据、文档、类、代码、其他)(2)折叠按键(3)命令按钮(新建、添加、修改、运行、移去、连编等)VFP的设计器、生成器与向导工具VFP的设计器、生成器与向导工具是用来自动生成应用程序部件的有效工具。设计器VFP提供多种设计器,可以快速建立表、表单、数据库、查询、报表等。设计器名称功能表设计器创建表和设置表中的索引查询设计器在本地表上创建查询视图设计器在本地表或远程数据源上创建查询表单设计器创建表单以便在表中查看的编辑数据报表设计器建立用于显示和打印数据的报表数据库设计器建立数据库,在不同的表之间查看并创建关系菜单设计器创建菜单视图或快捷菜单连接设计器为远程视图创建连接2.5.2向导向导是一种交互的程序,能帮助用户快速地完成创建表单、设置报表格式、建立查询等。
向\J名称用途表向导创建一个表查询向导创建查询本地视图向导创建本地视图远程视图向导创建远程视图图表向导创建一个图表表单向导创建表单一对多表单向导创建一对多表单有几种方法可以启动向导:1.项目管理器/新建2.菜单中:文件/新建3.工具栏中:新建 4.菜单中:工具/向导2.5.3生成器生成器是在VFP应用程序中生成并加入某类控件生成器功能组合框生成器生成组合框命令组生成器生成命令组编辑框生成器生成编辑框表单生成器生成表单表格生成器生成表格列表框生成器生成列表框文本生成器生成文本框自动格式生成器生成格式化控制组第三章 数据类型、国数与表达式31数据类型VFP提供11种的数据类型数据类型代码特性占用字节数字符型C存放字符1-254数值型N可存放0-9、+、-、小数点1-20整形N存放整数4浮点型N与数值型同(与其它版本兼容)4双精度型N与数值型同,提供更高精度8货币型Y存放货币值,小数保留4位8日期型D存放日期8时间型T存放时间8逻辑型L存放.匚、.F.1通用型G存放OLE对象(多媒体对象、表格等)4备注型M备注的内容41.字符型(CharacterC):由任意字符(字母、汉字、数字、空格、符号等)组成,每个字符占一个字节,长度为0-254,最多可有254个。字符型的常量要用英文的单引号、双引号或方括号括起来(不可用中文标点)如:’A0001'、’数学系.数值型(NumericN):表示数量,由数字0一9、一个正负符号(+或-)和小数点(.)组成。(数值型数据取值的范围是:-0.9999999999E+19—0.9999999999E+20)内存变量广8字节,字段变量广20字节。小数点和小数位数是字段总长度的一部分。.整型(IntegerN):用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,(取值范围是:-2147483647—2147483647)整型以二进制形式存储,不像数值型那样需要转换成ASCH字符存储。.浮点型(FloatN):只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。.双精度型(DoubleN):用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。.货币型(CurrencyY):在使用货币值时,可以使用货币型来代替数值型。(货币型数据取值的范围是:-922337203685477.5807-922337203685477.5807)小数位数超过4位时,系统将进行四舍五入的处理。每个货币型数据占8个字节。当涉及货币时使用,使用货币型数据要在前面加上符号如:$100.日期型(DateD):用于存储不带时间的日期值,宽度为8字节。日期型数据的存储格式为'yyyymmdd'其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位。(日期型数据取值的范围是:公元0001年1月1日〜公元9999年12月31日)日期型数据的表示有多种格式,最常用的格式为:mm/dd/yyyyo系统默认格式为{nun/dd/yy),可通过SETDATE、SETMARK、SETCENTURY命令设置日期格式,或通过系统的‘选助'对话框中的‘区域'卡中设置。日期型常量要放在花括号中,如:dDate={09/10/2001} dBlank={}:空日期日期常用格式:(D标准ANSI:yy.mm.dd(2)*美国式AMERICAN:mm/dd/yy(3)欧州式BRITISH:dd/mm/yy输入日期时,其日期输入格式由STRICTDATE设置决定。设置SETSTRICTDATETO1须按严格的日期输入方式:?{A1999/11/12)年月日时分秒:{A1999/11/124:2:5)设置SETSTRICTDATETO0则可用通常的日期输入方式。.日期时间型(DateTimeT):用以保存日期和时间值。日期时间型数据的存储格式为'yyyymmddhhmmss'其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位,hh为时间中的小时,占2位,mm为时间中的分钟,占2位,ss为时间中的秒,占2位。与日期型一样,要用‘。’将数据括起来,若要指定空日期时间值,要在花括号中加一个空格和冒号,如:{:}.逻辑型(LogicalL):用于存储只有两个值的数据。存入的值只有真CT.)和假(.F.)两种状态,宽度固定,占1个字节。.通用型(General。:用于存储OLE(对象链接和嵌入)对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、图片等,是由其他应用软件建立的。宽度为4字节。表中存储的是指向OLE对象的引用。.备注型(Memo):备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(.DBF)文件中。系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.FPT。由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。32数据存储类型3.2.1常量常量:在运算过程中值不变的量(即不变的量).包括字符型常量、数值型常量、逻辑型常量、日期型常量和货币型常量五种。(五种常量:c、N,D(T)、L、Y)1.字符型常量是用定界符标识的字符串。所以也叫字符串常量。定界符必须是ASCII码的单引号'‘、双引号''和方括号口。如果一种定界符已做为字符型常量的组成部分,则应选择另一种定界符来标识字符串。其书写方法如:‘男'、'工程师'、[财金系"金融专业.数值型、浮点型常量可以是实数或整数,通常也叫做常数,可以用定点式表示,也可以用科学计数法表示。.逻辑型常量规定用.Y.或.T.表示逻辑真,.N.或.F.表示逻辑假,小写亦可。.日期型、时间型常量 常用的日期格式:mm/dd/yy[,][hh[:mm[:ss]][a|p]]严格的日期格式:-yyyy-mm-dd[,] [:ss]][a|p]].货币型常量 小数位数超过4位时,系统将进行四舍五入的处理。 当涉及货币时使用,使用货币型数据要在前面加上符号,如:$1003.2.2内存变量内存变量是表示暂时存放在内存变量工作区中的有关程序运行或命令执行过程中所需要使用到的数据,包括常量、中间结果和最终结果。变量命名基本准则:首字符不能是数字;以字母(下划线或汉字)开头,由字母、数字、下划线和汉字典名字的长度1到128个字符,不可以与系统保留名同名。词义要尽量准确。内存变量的赋值命令<内存变量>=v表达式>STORE〈表达式〉TO〈内存变量表》说明:该命令计算表达式的值,并把计算结果赋给内存变量名(格式2能够给多个内存变量赋值)O(1)格式1中的'='称为赋值号,而不是等于号。即有首先计算’='右部的值,然后送给左边的变量名;而且具有明显的时序性、方向性和不可移项性。如:x=2 X=X+1(2)格式2中的内存变量名表是一组用逗号分隔开的变量,对于不同类型的变量,不能用格式2同时赋值。2.3数组变量.数组的定义一维数组的定义 DIMENSION|DECLARE数组名1(M1),数组名2(M2)...二维数组的定义 DIMENSION|DECLARE数组名1(Ml,Nl),数组名2(M2,N2)...例如:DIMEX(3)有X(1),X(2),X(3)共3个元素DIMEA(3,2)有A(1,1)、A(1,2)、A(2,1)、A(2,2)、A(3,1),A(3,2)共6个元素(VFP中最多可定义65000个数组,每个数组最多可有65000个元素)数组的赋值(数组须先定义后赋值)例如:DIMEA(2)A(1)=123A(2)='ABC'数组定义后各元素的初值均为:.F.2.4字段变量.一个数据库由若干相关的数据表组成,一个数据表又由若干个具有相同属性的记录组成,而每个记录又由若干个字段组成,字段变量就是指表中已定义的任意一个字段。.字段变量的类型由建表时定义的字段类型一致。.区别:内存变量 字段变量独立存在,关机丢失 隶属于表,存于磁盘类型与长度可由赋值改变 由表结构决定,不可改变单值变量 多值变量(当内存变量与字段变量同名时,默认为字段变量,内存变量可用前缀生2或M•.区别)2.5记录.记录是数据表中一组数据项的集合,同一个数据表中可以有若干个记录,每一个记录具有相同的字段数。 2.在VFP中,许多操作都是通过记录操作来完成的。2.6对象对象:构成程序的基本单位和运行实体3.3函数一、数值类操作函数绝对值函数:A?S(N一型表达式)函数值为N型 如:?ABS(-123.456)值为123.456指数函数:EXP(N型表达式) 函数值为N型 如:?EXP(1)值为2.72自然对数函数:LQ(L3型表达式)一函数值为N型 如:?LOG(1)值为0.00?LOG(100)值为4.61圆周率函数:且。返回数值型常数兀。数值常数兀(3.141592)是一个圆的周长与直径的比值。pi()国数返回值的小数点位置由SETDECIMALS命令决定。取整数函数:里匚@.型表达式)一返回大于或等于指定数值表达式的最小整数。C&_型表达式]返回大于或等于此数值型表达式值的最小整数。FLQ典Q一型表达式)—返回小于或等于此数值型表达式值的最大整数。TOC\o"1-5"\h\z所有返回的函数值为N型如:?INT(6.8),INTG6.8) 返回值为6 -6?CEILING(6.8),CEILING(-6.8)返回值为7 -6?FLOOR(6.8).FLOOR(-6.8)返回值为6 -7取最大者函数:MAX(表达式1.表达式2.表达式3...)函数值为最大者,表达式必须同类型比较,表达式可以是N型、D型、不能为C型如:?MAX(12,43,20)值为43?MAX(12,-43,20)值为20?MAX(CTOD('01/01/97'),CTOD(110/03/97"))值为10/03/97取最小者函数:一(表达式一1册.一表达■式2,一一一表达式一函数值为最小者,两个表达式必须同类型如:?MIN(12,-43,20)值为-43?MIN(CTOD(*01/01/97,),CTOD(*10/03/97*))值为01/01/97取余函数:MOD(N型表达式U型表达式2)或:N1%N2取表达式1除以表达式2的余数国数值的符号一定和表达式2符号相同MOD(M,N)相当如下计算:M,N相同符号M-INT(M/N)*NM,N不同符号M-INT(M/N)*N+N四舍五入国数:,RQ睡一但型敷试型君彩L2)一国数值为N型,如:?ROUND(123.45678,2)值为123.46?ROUND(123.45678,0)值为123?ROUND(123.45678,-1)值为120开平方函数:,SQRLQ型表达式)一如:?SQRT(10000)值为100.00•N型表达式不能负数随机函数:•RAND()•返回随机值,即大于0且小于1的任一正小数。•如:?RAND()二、字符类函数判断子串在母串中的位置:A1(子串,一母串)一函数值为N型(如:?AT<WTADCER,)值为3) 若田串中无子串,则函数值为0求子串函数:迦亚JC型」J3L 函数值为C型,实数取整(如:?SUBSTR('ABC.DEF',5.99,2.D+SUBSTRC123.4567',4)值为'DE.4567')取左子串函数:?LEFT('中国人民',4)值为‘中国'函数值为C型,取=0值为空串取右子串函数:KIC町转型表达式,N型表达式)函数值为c型,N<=0值为空串?RIGHT('中国人民',4)值为'人民’?RIGHT('123',2)+RIGHT('123',-1)+RIGHT('中国人民',4)值为'23人民'取消前导空格函数:LTRIMJC>aiSSJL 函数值为C型?LTRIM('123,+LTRIM('中国’))值为'123中国'取消尾部空格函数:RIRIMKG型表达式)一 函数值为c型?RTRIMC1123'+RTRIM('中国人民‘))值为’123中国人民’取消尾随空格函数■mic型表达式] 函数值为c型?TRIM(*012345 ')+TRIM('中国人民')值为'012345中国人民'取消前部与尾随空格函数ALLTRIM(C型表达式) 国数值为C型7ALLTC012345 ')+ALLT('中国人民')值为'012345中国人民'字符串测试函数测字母开关函数:以LE!达型表达或L•函数值为L型•若字符串开头是字母,国数值为.T.,否则返回.F.?ISALPHA(TABC2')值为.f.?ISALPHA('中国人民')值为.T.?ISALPHA('abc')值为.T. ?ISALPHA('ABC')值为.T.测小写字母开头函数:ISL。典JLQ型表达式1M数值为L型若字符串开头是小写字母开头,函数值为.T.,否则为.F.• ?ISLOWERCABC2')值为.F. ?ISLOWER('中国人民')值为.f.?ISLOWERfabc)值为.T.测大写字母开头函数:至yPEER」。型表达救•函数值为l型•若字符串是大写字母开头字母,函数值为.T.,否则函数值为.F.?ISUPPERCABC2,)值为.T. ?ISUPPER('中国人民')值为.T.?ISUPPERCabc)值为.F. ?ISUPPERCABC')值为.T.求字符串长度邸45里表达式上函数值为N型,函数值为字符串的个数?LEN('ABCDEIE')值为7 ?LEN('中国人民')值为8字符串转换函数宏替换:&C型内存变量(&作用是去掉字符串的界限符号)如:姓名=‘张三' Cl='姓名’?&C1值为姓名相当于?姓名如:Al=‘中国’ ?'&AL漳州‘ 值为‘中国漳州’注意:C型内存变量不允许是C型数组元素。宏代换函数可以嵌套使用。C2='Good!' Cl=2*C=*C&Cl* ?&C值为Good!?&C1.2*3 值为66大写字母换成小字母L。加上(C型表达式):将字符串中的所有大写字母换成小写字母。如:?LOWER('abAB635&r)值为'abab635&~小写字母转换成大写字母近RER<C型表达式):值为C型,将字符串中所有的小写字田转换成大写字母。如:?UPPER('abCD32')值为'ABCD32'替换子串函数STUFF(串1,Nl*N2,串2)串1中第N1个字符开始N2个字符用串2替换。如:Cl=1234567890' ?STUFF(Cl,2,4,'AB') 值为'1AB67890,当N1大于串1的长度,则串2直接连接在串1后面。?STUFF(Cl,12,5,'AB') 值为'1234567890AB'当N2=0,则串2直接插入第N1个字符前。?STUFF(Cl,1,0,'AB') 值为'AB1234567890'生成重复的字符串蝌年里O表WtL 值为C型,重复生成字符串N次如:?REPLICATE10)值为'**********'生成空格字符串SPACE(N)值为C型,生成N个空格的字符串如:?'12'+'SPACE(4)+'AB'值为'12AB'三、日期与时间类函数求星期函数:@堡Q一型表达式)—值为C型,函数值为日期的星期(英文)如:D1=CTOD('07/01/95') ?CDOW(D1)值为'Saturday'系统日期DATEJUL D型,函数值为系统的日期7DATE() 值为系统的日期系统时间TIMEJJL C型,函数值为计算机系统的时间?time0 值为系统的时间日期时间函数DATETIME()T型,国数值为计算机系统的日期时间?DATETIME() 值为系统的日期时间09/01/0308:00:24AM求星期中的星期几(整数)POW_<D型表达式)…值为N型,函数值为日期对应的数字日一二三四五六1 2 3 4 5 6 7如:D1=CTOD('07/01/95')?DOW(D1)值为7求日期中的月份(英文)函数CM0NI1LID埋I表达式I C型,函数值为日期对应的月份(英文)如:D1=CTOD('07/01/95')?CMONTH(D1)值为‘July'求日期中的号数函数哒丫一。型表达式)— N型,函数值为日期对应的号数如:Dl=CT0D('07/01/95')?DAY(D1)值为1求日期中的月份函数侬NILO型表达或L N型,函数值为日期对应的月份(整数)如:Dl=CT0D('07/01/95')?MONTH(D1)值为7求日期中的年份函数选哒一(D型表达式)一 N型,函数值为日期对应的年份(四位整数)如:Dl={_2004-09-23}?YEAR(D1)值为2004四、类型转换类函数字符转换成ASCAH码值函数蝮型表达式)— 值为字符串中第一个字符的ASCII码值如:?ASC('ABCD')值为65ASCII码值转换成字符函数CKR—@型表达式)一 c型,值为数值对应的ascii码字符如:?CHR(66)值为‘B'?CHR(98.45)值为'b' 实数先取整后求值CHR⑺值为响铃字符串与数值转换函数数值转换字符型函数STR(N1,N2[,N3])C型如:Nl=1234.56789?STR(N1,9,2)值为’1234.57'宽度9(位数不足前面用空格补齐)(若省略N3,只转换到整数)如:?STR(N1,5)值为‘1235'宽度为5(若省略N2和N3,则默认N2=10,N3=0)字符型转换成数值函数VAL9型表达式)N型,将字符串第1个字符开始到第1个非数值字符之间的字符串转换成对应的数值。如:?VAL('12.45A')值为12.45(若字符串中的第一个字符为非数值字符,则返回0)如:?VAL('A12.45')值为0.00?VAL('253')值为253.00(默认小数点的个数为两个)字符与日期转换函数.字符型转换成日期型函数CTOD(C型表达式) D型如:?MONTH(CTOD('07/01/95*))值为7.日期型转换成字符型函数DTOC(D甄")C型将日期转换成形式为'月月/日日/年年’字符型数据如:?DTOC(DATE()) 值为,01/01/99*.日期转换为YYYYMMDD格式字符串DIQSK日期表达式“一 c型返回YYYYMMDD字符串如:?DTOS({10/01/99))返回值为:'19991001'五、状态检验类操作函数FoxPRO在内存中开辟多个工作区,允许在多个工作区上打开多个数据库文件,但只有一个工作区是当前工作区,其中的库文件为当前库文件。1、数据库参数测试函数库文件别名测试函数:皿坦3型表达近值为第'N型表达式'号工作区上已打开的数据库文件别名。・若省略'N型表达式',则值为当前库文件别名。•若指定工作区上无打开库文件,则值为空串。库文件名测试函数: 。近刨型表达式1•值为'N型表达式'号工作区上已打开的库文件名。•省略'N型表达式',指当前工作区。•若指定工作区上无打开库文件,则值为空串。库文件字段数测试函数: 姆I①L型表达或11值为'N型表达式'号工作区上已打开的库文件中的字段的数目。省略'N型表达式',指当前工作区。若指定工作区上无打开库文件,则值为0。库文件字段名测试函数: 』其LDQL型表达式上L―N型表达式211值为'N型表达式2,号工作区上已打开的库文件中第'N型表达式r个字段的字段名,函数值为C型。省略'N型表达式',指当前工作区。若指定工作区上无打开库文件,则值为空串,若'N型表达式1'的值小于、大于库文件的字段数,值也为0。库文件最近的修改日期测试函I数: lupdatecj.值为当前库文件最近一次修改的日期。函数值为D型。若当前无打开库文件,则值为空日期。//库文件记录数测试函数: RECCQ地(3型表达式」)值为'N型表达式'号工作区上已打开的库文件中的记录总数,值为N型。省略'N型表达式',指当前工作区。若指定工作区上无打开库文件,则值为0。库文件记录长度测试函数: 瞋SIZn的型表达式.D值为'N型表达式'号工作区上已打开的库文件中记录的长度(所有字段长度和加1),函数值为N型。省略'N型表达式',指当前工作区。若指定工作区上无打开库文件,则值为0。2、当前记录状态测试函数测试库文件头函数: 一B纥I小型表达式当第'N型表达式'号工作区上已打开的数据库文件记录指针在首记录之前,值为.T.,否则为.F.,值为L型。若省蛤'N型表达式',指当前工作区。若指定工作区无打开库文件,则值为.F.。测试当前记录是否逻辑删除函数: „PELETEDJlNSmiSSlL测试第'N型表达式'号工作区上已打开的数据库文件中当前记录是否被逻辑删除,是,值为.T.,否,值为.F.,值为L型。若省略'N型表达式',指当前工作区。若指定工作区无打开库文件,则值为.F.。测试数据库文件尾函数: 一眶表达式LL当第'N型表达式'号工作区上已打开的数据库文件中当前记录已指向末记录之后,(称为文件尾)是,值为.「;否,值为.F.,值为L型。若省略'N型表达式',指当前工作区。若指定工作区无打开库文件,则值为.F.。测试查找结果函数: JOTLCL型表达式在第'N型表达式'号工作区上已打开的数据库文件中进行查找,若查到,值为.T.,否,值为.F.,值为L型。若省略'N型表达式',指当前工作区。测试当前记录号函数: 即0表达式LL•测试第'N型表达式'号工作区上已打开的数据库文件中当前记录的记录号,值为N型。•若省略'N型表达式',指当前工作区。•若指定工作区无打开库文件,则值为0。•若记录指针为B0F()为.T.,则值为1,若EOF()为.T.,值为记录总数加10六、其它测试函数.空值判断国数:随笃(送达式”若表达式为空值,则返回真值否则返回.F.表达式可是C,N,D,L型,可以是表的字段名表达式。对不同表达式类型,空值概念不同。C型:空串,空格,换行符等。D型、M型、G型:空L型:逻辑假.F.N型:0值(以上几种类型EMPTY。返回真.T.).测试文件是否存在国数:FILE一(C型表达式)一若'c型表达式'指定的文件名存在,则返回值是.T.,否则返回值是.F.,函数值为L型。.测试当前工作区号国数:SELE0..Q.返回值是当前工作区的区号,函数值为N型。.读一键国数:INKEY([N型表达式])返回值是从键盘输入的一个键的键值,等待用户按键的时间为'N型表达式'秒,函数值为N型。若'N型表达式'=0则无限期等待,若超过等待时间,用户未按键,则返回为0。INKEY()函数返回的某些特殊键的键值如:回车13空格32等。.条件测试函数:IIE(逻辑表达式,一表达式L.表达式2)根据逻辑表达式的值,返回两个值中的一个。如果逻辑表达式计算结果为“真”(」.),返回表达式1;如果为"假''(.F.),则返回表达式2。返回值:字符型、数字型、货币型、日期型或日期时间型。如:X=3 Y=6 ?iif(X>2/abc/电脑'),iif(丫<2,,abc','电脑,)返回值abc电脑.测试表达式类型函数:达式‘工返回值是引号内表达式的类型,函数值为C型共有N、C、D、L、M、T、U等。数据类型与返回的字符字符型C未定义的表达式类型U通用型G货币型丫日期型D日期时间型T逻辑型L备注型M对象型 0Screen(用SAVESCREEN命令建立)S数值型(或者整数、单精度浮点数和双精度浮点数)N?TYPE('CUSTOMER.CONTACT')&&显示'C'?TYPEC(12*3)+4') &&显示'N'?TYPECDATE(),) &&显示'D'?TYPE('ANSWER=42')&&显示'U'.信息对话框国数:MESSAGEBOX(提示文本,对话框类型[N1+N2+N3],标题文本)提示文本:指定在对话框中显示的文本。在提示文本中包含回车符(CHR(13)j可以使信息移到下一行显示。对话框类型:指定对话框中的按钮N1和图标N2、显示对话框时的默认按钮N3以及对话框的行为。它可以是下面每个表中选一个值组成的三个值的和。标题文本:指定对话框标题栏中的文本。若省略标题栏中将显示'MicrosoftVisualFoxPro'o(当省略对话框类型时,等同于指定对话框类型值为0)N1数值对话框按钮(从0到5指定了显示的按钮)0 仅有'确定'按钮1 '确定'和'取消'按钮2'放弃重试'和'忽略'按钮3 '是'、'否'和'取消'按钮4 '是'、'否'按钮5 '重试'和'取消'按钮N2数值图标(指定了对话框中的图标)0 不显示图标 16 '停止'图标32 问号 48 惊叹号64 信息⑴图标N3数值默认按钮(指定对话框中哪个按钮为默认按钮)0 第一个按钮256 第二个按钮512 第三个按钮例如,若对话框类型值为290(2+32+256)则指定的对话框含有如下特征:‘放弃重试'或'忽略'按钮。消息框显示问号图标。第二个按钮,‘重试'为默认按钮。MESSAGEBOX()返回值类型:数值型说明:MESSAGEBOX()的返回值标明选取了对话框中的哪个按钮。在含有取消按钮的对话框中,如果按下ESC键退出对话框,则与选取‘取消'按钮一样,返回值(2)0注意本函数的最短缩写为MESSAGEB()o下表列出了MESSAGEBOX()对应每个按钮的返回值。返回值按钮返回值按钮1确定5忽略2取消6是3放弃7否4重试3.4运算符可用于运算的数据有四种类型,所以有四种类型的运算符。一、算术运算符:括号一一。一一正负t二一一.一取模%乘方** 乘除*/一加减十〜二符号优先次序:()、正负号、乘方、乘除、取模、加减日期的计算+-符号用于日期型的三种情况:日期型数据+.整数(天数)一结果是该日期之后的新日期,仍为日期型数据。日期型数据一整数(天数) 结果是该日期之前的新日期,仍为日期型数据。日期型数据.1-日期型数据 结果是两日期之间的天数
二、字符运算符完全连接符+字符串1+字符串2(原样连接)将串二、字符运算符完全连接符+字符串1+字符串2(原样连接)将串2连接到串1的后面。不完全连接符(去空格)-字符串1—字符串2(紧缩连接)将串2连接到串1的后面,但串1的尾部空格移到串2的后面。包含运算符(比较)$字符里一字符串2如:'ABCD'+'EFG':'ABCD'EFG':'张'$‘张王李’:返回返回返回字符串2是否包含字符串1'ABCDEFG)'ABCDEFG'.T.三、关系运算符・<、>、<=、>=•数值大小比较:=、◊或#、=、!=用于&GP型数据的大小比较按数值大小比较如:?934>397结果为.T.?2+4=6*3结果为.F.•字符大小比较:用字符的ASCAH码值大小比较,第一个字符相同时再比较第二个.•…如:?'='>'+' 值.T.=ASCII为61+ASCH为43注意:字符的三种排列次序:machine(机器,按ASCH)、PinYin(系统默认,按拼音)、Stroke(笔画,按笔画数)。拼音的大小字母之间的比较是ASCH码值的相反!如:'A'>'a' 值.T. A65a97日期大小:早日期值小?CT0DC01/01/98')>CT0D('01/01/97') 值为.T.常用汉字(一级汉字)的大小按拼音顺序、不常用的汉字(二级汉字)的大小按偏旁部首顺序比较大小。 如:’中国‘ 福建’•T.大于:> 3>2 小于:< 2<5小于或等于:<= 3<=4'abc'<='abe'大于或等于:>= 8>=5'abc'>='ab'等于:= 4=4'abc'='ab'(非精确比较)不等于:<>4<>5'be'<>'ab'(非精确比较)不等于:#4#5'bc'#'ab'(精确比较)等于== 飞c'=='be'(精确比较)(以上表达式结果为真.T.)精确比较与非精确比较:控制EXACT当然—叫CL”时保统默出»=<>为字符型数据的非精确比较,即=<>不同于==#'abed*='abc' .T. 'abed'<>>abc).F.'abc'='abed) .F. 'abc'O'abed).T.当SEI一期隙_®四,=<>为字符型数据的精确比较,即=<>相同于==#'abed'='abc'.F. 'abed*O'abc'.T.abc'='abed'.abc'='abed'.F.abc)<>>abed'.T.四、逻辑运算符(.NOT.或!、.AND.、.OR.)运算优先次序:()、.NOT.、.AND.、.OR.非运算:.NOT.运算结果.NOT..T..F..NOT..F..T.与运算:.AND.、一结果,T..AND..T..T..F..AND..T..F..F..AND..F..F..T..AND..F..F.或运算:.OR.、一四算结果.T..OR..T..T..F..OR..T..T..F..OR..F.・F.・T..OR..F..T.3.5表达式•表达式是由运算对象(常量、变量、函数)和各种运算符组成的式子。(1)数值表达式(结果为数值)数值型数据算术运算符数值型数据日期型数据一日期型数据(2)字符型表达式(结果为字符)字符型数据+字符型数据字符型数据一字符型数据(3)日期型表达式(结果为日期)日期型数据+整数数据日期型数据一整数数据(4)逻辑表达式(结果为逻辑值)数值型数据关系运算符数值型数据日期型数据关系运算符日期型数据字符型数据关系运算符字符型数据逻辑型数据逻辑运算符逻辑型数据表达式中各运算符运算次序:0f算术运算符一字符运算符一字符串运算符-关系运算符一逻辑运算符第四章数据库与表的基本操作41数据库的基本操作VFP数据库相关概念数据库概念:许多相关的数据库表的集合。它包括表以及表之间的关系等。VisualFoxpro数据库及其建立数据库的文件构成1.数据库主文件:文件扩展名DBC 2,数据库备注文件:文件扩展名DCT3.数据库索引文件:文件扩展名DCX建立数据库的方法:1.助目管理器2.新建对话框3.使用命令交互项目管理器建立数据库:项目文件f数据库一新建(数据库)新建对话框建立数据库:文件一新建f数据库一新建文件使用命令交互建立数据库:CREATEDATEBASE[数据库名I?]不指定数据库名称或者问号则探出对话框让用户输入数据库名称。该命令不能打开数据库设计器,数据库处于打开状态。使用数据库项目管理器中选择数据库自动打开文件一打开一选择数据库类型一选择数据库,命令方式打开OPENDATABASE[数据库名回调SHARE][NOUPDATE][VALIDATE]EXCLUSIVE:以独占方式打开数据库。SHARED:以共享方式打开数据库。NOUPDATE:不能对数据库做任何更改。该数据库只读。VALIDATE:让VisualFoxPro确保数据库中的引用有效。VisualFoxPro将检查磁盘上数据库中的表和索引是否可用。修改数据库项目管理器中选择数据库一修改文件一打开一选择数据库类型一数据库命令方式修改MODIFYDATABASE[数据库名I?][NOWAIT][NOEDIT]NOWAIT:在程序中使用。在打开数据库设计器后继续程序的执行。程序不必等待数据库设计器关闭,而是继续执行MODIFYDATABASENOWAIT之后的程序行。NOEDIT:禁止修改数据库删除数据库项目管理器中选择数据库一移去命令方式删除DELETEDATABASE数樵度名I?[DELETETABLES][RECYCLE]从磁盘上删除指定名称的数据库。指定的数据库不能是打开的。数据库名可以包含指定数据库的路径和数据库名。DELETETABLES:从磁盘上删除包含在数据库中的表和包含表的数据库。RECYCLE:放入回收站。建立数据库表与自由表在VFP中表分为数据库表和自由表自由表:是独立的表,存在于任意一个数据库之外,不属于任何数据数据库表:若干表组织到数据库中形成数据库表表的设计过程:1.定义表名 2.定义表的字段属性 3.向表中输入数据准备工作:根据需要管理的数据表内容进行分析。数据如下:学号姓名性别出生日期专业奖学金备注99001王强T06/01/80计算机250.0099002李英F12/05/82电子200.0099003赵力T06/05/79金融150.0099004黄伟T10/09/81电子150.0099005陈静F05/24/80计算机300.0099006周明F02/15/80金融200.001.定义表名:确定表文件名STUDENT.DBF2.定义表的字段属性:确定数据库文件结构中的每一个字段名、字段类型、长度。(表结构如下所示)字段名类型宽度小数位数学号C5姓名C8性别L1出生日期D8专业C8奖学金N72备注M43.向表中输入数据VisualFoxpro的表可以包含多达255个字段,若一个或多个字段包含NULL值,表可包含的最大字段数则减少一个,即254个字段名:可以由字母、汉字、数字和下划线组成并以字母或汉字开头的命名,不能使用空格、逗号等分隔符号。数据库表:字段名最多可包含128个字符,若变成自由表,长字段名将被截短成10个字符。 自由表:字段名不得超过10个字符或5个汉字。NULL值无明确的值,不等同于零或空格。(1)等价于没有任何值(2)与0、空字符串("")或空格不同(3)排序优先于其他数据表的创建a.数据库表的建立方法:项目文件一数据库一新建数据库一新建表表结构的创建a.数据库表:项目文件一数据库一包含数据库表的数据库一表一新建一输入表名字一输入结构b.数据库表结构的输入c.自由表的建立方法:项目文件一自由表一新建自由表结构的创建a.自由表:自由表一新建一输入表名字一输入结构b.自由表结构的输入命令方式建立数据库表与自由表数据库表OPENdatabase数据库 打开数据库Create数据库表名 创建数据库表自由表(不打开数据库的情况下)Create自由表名 创建自由表表结构的修改(1)利用表设计器来修改表的结构(2)数据库表结构的修改启用表设计器的方法:方法一:在明目管理器中选择要修改的表名,单击修改。方法二:在数据库设计器中选择要修改的表,单击修改。自由表结构的修改:打开自由表一显示一表设计器表记录的输入.创建表结构后选择“是“按钮,立即输入数据。.在浏览窗口和编辑窗口表中追加新记录(Ctrl+W存盘Ctrl+Q或ESC键放弃本记录输入)。.备注字段与通用字段的输入,双击或Ctrl+Home进入该字段输入窗口。Ctrl+Q或ESC键放弃该字段的输入。自由表与数据库表之间的互换a.将自由表变为某个数据库表:选项目文件、数据库、添加表b.将数据库表变为自由表:选项目文件、数据库、选定表、移去c.命令方式移出数据库表成为自由表:迪宜工S且教据售表名一L2[DELETE][RECYCLE]从当前数据库中移去指定的表。该表从数据库中移去之后,便变成了自由表,因而可以添加到另一个数据,所有与被移去的表有关的主索引、默认值和有效性规则也被删除。DELETE:从磁盘上删除 RECYCLE:放入回收站表的基本操作查看和浏览表中内容:项目管理器中选择要浏览的表一浏览数据库设计器一选择数据表f右键浏览打开表一输入命令显示edit/浏览browse查看和浏览表的过程中:直接输入新数据即可修改数据逻辑删除记录:CTRL+T或者单击删除标志栏添加记录:CTRL+Y或者表一追加新记录记录定位:表一转到记录命令窗口中使用命令方式的操作a.插入新记录(1)命令格式:INSERT[BLANK](2)功能:在当前记录插入新记录b.追加新记录(1)命令格式:APPEND[BLANK](2)功能:可在表尾增加一条新记录(或空记录)表的打开与关闭。览£口缁符->]k路径214数据库名L1表文件名「.?乂叫"密f受L别名1」典顾索引名]打开指定磁盘的指定路径下的表和相关的索引文件。(盘符>和<路径>:指定表文件所在的驱动器及路径,若省略盘符和路径参数,则打开当前盘、当前路径下的表文件。use不带参数则关闭当前工作区的表。记录逻辑删除(1)命令格式:DELETE[FOR|WHILE〈条件>][<范围〉](2)功能:参当前表中指定范围内满足条件的记录加删除标记。若无可选助则只对当前记录作删除标记。记录恢复(1)命令格式:RECALL[<范围>][FOR|WHILE<条件>]记录物理删除(1)命令格式:PAOC(2)功能:从物理上真正删除带有删除标记的记录。记录清除(1)命令格式:ZAP(2)功能:物理删除当前表的记录。表的记录显示命令(1)命令格式:LIST|DISPLAY[字段名表][范围][FORv条件〉][OFF][TOPRINTER|<文件>](2)功能:在表中按指定范围与条件选出记录并显示出来,或送至指定设备或文件。(3)范围:ALL所有记录NEXTN从当前记录起的N个记录RECORDN记录号为N的记录REST从当前记录起到最后一个记录止的所有记录(4)FOR<条件〉:只有指定范围内的满足条件的记录参加命令操作。USESTUDENTGO3DISPLAYNEXT4FOR专业="计算机”修改指定记录(1)命令格式:2dL奈性(2)功能:以全屏幕编辑方式,修改当前表中满足条件的记录中指定字段的数据。窗口修改记录(1)命令格式:BROWSE[FIELDS〈字段名表>](2)功能:以全屏幕窗口方式修改当前表中的记录。表数据的替换命令修改(1)命令格式:REPLACE〈字段名1>WITH〈表达式1>[ADDITIVE][,v字段名2>]WITH<表达式2>.…[<范围》][FOR/WHILEv融>](2)功能:在当前表的指定记录中,将有关字段的值用相应的表达式值来替换。若参数缺省,则只对当前记录的有关字段进行替换。例如:将表中每位同学的奖学金增加50元REPLAYALL奖学金WITH奖学金+50查询定位命令a.绝对定位命令格式1:GO[TO]TOP|BOTTOM命令格式2:侬[TQU―4赢裘达式>功能:GOTOP将记录指针指向表的逻辑第一个记录GOBOTTOM将记录指针指向表的逻辑最后一个记录G0<数值表达式>将记录指针指向数值表达式指出的记录号b.相对定位记录(1)命令格式:塞里Ls数值表达式之](2)功能:从当前记录开始移动记录指针,〈数值表达式>表示移位记录的个数。正数表示向后移动,负数表示向前移动。查找定位命令顺序查找就是按照记录的物理排列顺序查找满足指定要求的记录(查找时不要求索引)1.顺序查找:(1)命令格式:LOCATEk范围》]FOR〈条件》(2)功能:在指定的记录范围内按顺序查找满足条件的第一个记录2.继续顺序查找:CONTINUE(1)功能:按上一个LOCATE的条件在指定范围内从下一条记录起继续查找满足条件的下一个记录。(2)若在指定范围内找到满足条件的记录,指针指向满足条件的第一条记录,函数FOUN()返回.T.EOF()返回.F.(3)若在指定范围内找不到满足条件的记录,函数FOUN()返回.F.(4) 若范围为ALL或REST则EOF()返回.T.,指针定位在指定范围的下一条记录。演示数据库表的建立用前面介绍的同样方法在学生管理项目文件中再建立四个数据库表并输入相应数据:成绩(GRADE.DBF)课程(COURSE.DBF)教师(TEACHER.DBF)授课(TEACH.DBF) (详见练习资料文件夹)4.2表的索引索引的概念:记录的物理顺序与逻辑顺序。物理排序:文件中的记录一般按其磁盘存储顺序输出,这种顺序称为物理顺序。索引排序:它不改变记录的物理顺序,而是按某个索引关键字(或表达式)来建立记录的逻辑顺序。索引后产生一个索引文件,在索引文件中,所有关键字值按升序或降序排列,每个值对应原文件的一个记录号,这样便确定了记录的逻辑顺序。也称逻辑排序。索引文件中只包括关键字和记录号两个字段,比被索引的表要小。•物理顺序与索引顺序•VFP索引文件的种类复合索引文件:文件扩展名为,CDX(一个或多个索引关键字,可分为结构复合索引文件和非结构复合索引文件)结构复合索引文件:与表文件同名非结构复合索引文件:与表文件不同名独立索引文件:文件扩展名为.IDX(为与FOXBASE兼容)单独一个索引关键字可建多个文件,若打开表的时候没有打开,则数据不会同步更新。索引的四种类型:索引类型关键字值或记录的重复普通索引允许关键字值或记录重复唯一索引不显示重复的关键字值或记录候选索引不允许有相同关键字值的记录主索引不允许有相同关键字值的记录,只有数据库表才能建立主索引在表设计器中创建索引.创建索引:[演示举例]对表STUDENT.DBF按专业索引。.用多个字段进行索引:[演示举例]对STUDENT.DBF表按专业排序,如果专业一样,按日期排序。注意字段的索引表达式为:STUDENT.专业+DTOC(STUDENT.出生日期)注意:要观察索引效果必须选定主索引(操作:窗口/数据工作期/属性/索引顺序)用命令方式建立索引(补充)索引的建立:命令格式独立索引文件的建立INDEXON〈索引关键字〉TOV独立索引文件名〉[FOR条件][COMPACT][ASCENDING][UNIQUE][ADDITIVE]复合索引文件和索引标识的建立INDEXON<索引关键字〉TAG<索引标识名〉[OF〈复合索引文件名>][FOR条件][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE]Eadditive]说明:单索引时不能用选项:DESCENDING,CANDIDATE(1)TO子句适用于建立单索引文件,单索引文件名由〈单索引文件名〉给出,扩展名为.IDX(2)该命令建立普通索引型索引文件(3)UNIQUE表示建立唯一索引型索引文件(4)CANDIDATE表示建立候选索引型索引文件,但需与TAG子句同时使用。打开STUDENT.DBF,建立按专业升序排列的普通索引型单索引文件ZY.IDXUSESTUDENTINDEXON专业TOZYBROWSE•建立按降序排列的唯一索引型单索引文件JGIDX.IDX•INDEXON-奖学金TOJXJUNIQUE(5)COMPACT选项用于指定单索引文件为压缩(6)OF〈复合索引文件名〉选项用来指定非结构复合索引文件的名字,若缺省该选项,则表示建立结构复合索引文件(7)记录逻辑顺序默认为升序,也可用ASCENDING选项表示升序。DESCENDING选项表示降序。(8)ADDITIVE表示建立本索引文件时并不关闭先前打开的索引文件。a.为Student.DBF建立一个结构复合索引文件,其中包括标识索引:记录以学号降序排列,索引标识为XH普通索引。USESTUDENTINDEXON学号TAGXHDESCENDINGBROWSEb.为STUDENT.DBF建立一个结构复合索引文件,其中包括标识索引:记录以专业升序排列,专业相同时则按出生日期升序排列,索引标识为ZYRQ普通索引。USESTUDENTINDEXON专业+DTOC(出生日期)TAGZYRQBROWSEc.为STUDENT.DBF建立一个结构复合索引文件,其中包括标识索引:记录以专业升序排列,专业相同时则按奖学金降序排列,索引标识为ZYJSJ候选索引。USESTUDENTINDEXON专业+STR(1OOO-奖学金,7,2)TAGZYJXJCANDIDATEBROWSE(候选索引时,表中不允许有相同关键字值的记录)d.为STUDENT.DBF建立一个非结构复合索引文件,其中包括标识索引:记录以学号升序排列,索引标识为XH普通索引,索引文件名为XH1.CDXUSESTUDENTINDEXON学号TAGXHOFXH1BROWSE索引的使用(1)要使用索引查询,必须同时打开表与索引文件,(2)一个表可同时打开多个索引文件,同一个复合索引文件中也可能包含多个索引标识,但任何时候只有一个索引文件能起作用,在复合索引文件中也只有一个索引标识能起作用。当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为主控索弓I。索引使用步骤:(1)单索引文件:打开表、打开索引文件(可能多个索引文件)、确定主控索引文件。(2)复合索引文件:打开表、打开索引文件、确定主控索引文件、确定主控索引。打开和关闭索引文件(1)索引文件刚建立时,索引文件呈打开状态且成为主控索引文件。USESTUDENTINDEXONXHTOXH (XH.IDX成为主控索引文件)或:USESTUDENTINDEXON专业TAGZY (标识索引ZY成为主控索引)打开索引文件命令格式:SETINDEXTO[v索引文件名表〉][ADDITIVE](2)若当前只有打开一个索引文件,则本身成为主控索引文件。USESTUDENTSETINDEXTOXH (XH.IDX成为主控索引文件)(3)若当前只有打开多个索引文件,则第一个成为主控索引文件。USESTUDENTSETINDEXTOXH,ZY,ZYRQ (XH.IDX成为主控索引文件)(4)当表打开时,结构复合索引文件自动打开,而非结构复合文件还需SETINDEXTOv非结构复合文件名〉来打开。USESTUDENT (结构复合文件自动打开)SETINDEXTOXH1 (打开非结构复合文件)(5)表关闭时,索引文件自动关闭USE (相关的索引文件自动关闭)(4)确定主控索引文件或主控索引SETORDERTO[<数值>I(单索引文件名>I[TAG"索引标识>]索引查找定位,•一利用索引文件进行查找。由于在索引文件中各个记录的逻辑位置是索引关键字的值由小到大排列的,因此可以使用二分法(折半法)根据索引关键字的值进行查找。提高查找速度。SEEK〈表达式)功能:按索引来查找〈表达式》指定的关键段值。可查找C、N、D型字段值,4表达式2值与索引夫键字段回」!如:在STUDENT表中分别索引查找 (1)第一个“金融”的专业学生记录的姓名(2)1981年10月9日出生的学生姓名。USESTUDENTINDEXON专业TAG专业索引SEEK“金融”?姓名INDEXON出生日期TAG出生索引SEEK{*1981/10/09}或SEEKCTOD(“10/09/81”)?姓名删除索引•deletetag命令DELETETAG〈索引标识名1>Q〈索引标...从复合索弓I文件中删除指定的索弓标识。可以使用包含一系列用逗号隔开的索引标识名的deletetag命令删除多个标识。DELETETALALL 从复合索引文件中删除所有标识4.3数据库的基本操作数据库表的关系a.数据库表间的永久关系:作为数据库的一部分被保存起来的数据库表之间所建立的关系,用以保证数据库各表相关数据的一致性,永久关系只可能存在于数据库表之间,在数据库设计器中建立永久关系的作用。(1)在查询或视图设计中自动作为默认联接条件 (2)作为表单和报表的默认临时关系(3)用来存储参照完整性信息b.数据库表间的临时关系:临时关系的作用是通过主表记录指针的移动来控制子表记录指针的移动,用“数据工作期”或setrelation命令建立的自由表之间的关系。临时关系和永久关系临时关系永久关系可以在自由表之间、数据库表之间、自由表与数据库表之间建立只能在数据库表之间建立表之间的关系随表的关闭而解除永久地保存在数据库中用于在打开的2张表之间控制相关表的访问用于存储相关表之间的参考完整性数据库库表之间的永久关系建立(1)永久关系a.通过索引建立数据库表所特有的一种关系。b.一对多关系中,主表必须用主或侯选索引,子表则使用普通索引。c.一对一关系中,则两表都必须是主或侯选索引。(2)永久性关系的建立 在数据库设计器中永久关系的设置右键单击关系选择需要的操作:1、删除关系2、编辑关系3、编辑参照完整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暂支备用金管理办法
- 基本户账户管理办法
- 新疆扶贫羊管理办法
- 服务类工程管理办法
- 沧州限价房管理办法
- 威海市养犬管理办法
- 原辅料贮存管理办法
- 改革后军粮管理办法
- 泗阳招投标管理办法
- 县境外人员管理办法
- 2025年应急管理普法知识竞赛题库(新版)
- 2025年四川国经扬华集团有限公司招聘笔试参考题库含答案解析
- 更换气管套管流程
- 二零二五年度生物制药委托生产合作协议4篇
- 中国糖尿病防治指南(2024版)解读-1
- 【课件】2025年中考化学一轮复习教材提升课件第一单元走进化学世界
- 业务约定书第10号:企业清产核资专项审计业务约定书
- 化工产品生产工艺优化方案
- 《国有企业管理人员处分条例》考试题库200题(含答案)
- 手术室甲状腺术中护理
- 医用气体管道专业施工方案
评论
0/150
提交评论