版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1数据库基础知识考点1计算机数据管理的发展1数据与数据处理数据是指存储在某一种媒体上能够识别的物理符号。数据处理的中心问题是数据管理。2计算机数据管理⑴人工管理。(2)文件系统。(3)数据库系统。(4)分布式数据库系统。(5)面向对象数据库系统。3数据库管理系统为数据库的建立、使用和维护而配置的软件称为数据库管理系统DBMS(DataBaseManagementSystem)<>图1-1数据库系统中数据与程序的关系考点2数据库系统1有关数据库的概念(1)数据库(DataBase):存储在计算机存储设备上、结构化的相关数据的集合。(2)数据库应用系统(DBAS):是由系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。(3)数据库管理系统(DBMS):对数据实行专门管理,提供安全性和完整性等统•机制,可以对数据库的建立、使用和维护进行管理。(4)数据库系统(DBS):是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统山硬件系统、数据库、数据库管理系统及相关软件、数据库管理员和用户等部分组成。2数据库系统的特点⑴实现数据共享,减少数据冗余。(2)采用特定的数据模型。(3)具有较高的数据独立性。(4)具有统一的数据控制功能。考点3数据模型1实体的描述(1)实体。(2)实体的属性。(3)实体集和实体型。2实体间联系及联系的种类(1)一对一联系。(2)一对多联系。(3)多对多联系。3数据模型简介为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,通常有以下3种。(1)层次数据模型。(2)网状数据模型。(3)关系数据模型。小提示:数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是DBS包括DB和DBMS»1.2关系模型关系模型的用户界面非常简单.,一个关系的逻辑结构就是一张二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。1关系术语(1)关系:一个关系就是一张二维表,每个关系有一个关系名。在VisualFoxPro中一个关系存储为一个文件,扩展名为DBF,称为“表”。对关系的描述称为关系模式,一个关系模式对应一个关系的结构,格式为:关系名(属性名1,属性名2,…,属性名n)(2)元组:在一个二维表中,水平方向的行称为元组,每一行为一个元组。(3)属性:将二维表中垂直方向的列称为属性,每一列都有一个属性名。(4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。(5)关键了:属性或属性的组合,其值能够唯一地标识一个元组。在VisualFoxPro中,主关键字和候选关键字就起唯一标志一个元组的作用。(6)外部关键字:如果表中一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,那么这个字段(属性)就称为外部关键字。2关系的特点(1)关系必须规范化。(2)在同一个关系中不能出现同名属性,VisualFoxPro中表示为字段名的不同。(3)关系中不允许有完全相同的元组,即冗余。(4)在一个关系中元组的次序无关紧要。(5)在一个关系中列的次序无关紧要。考点5关系运算对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算,关系的基本运算有两类:传统的集合运算和专门的关系运算。1传统的集合运算(1)并:两个相同结构关系的并是由属于这两个关系的全部元组组成的集合。(2)差:两个相同结构关系的差是由属于前一个关系的元组而不属于后一个关系的元组组成的集合。例如,关系R和S的差结果是由属于R但不属于S的元组组成的集合。(3)交:两个相同结构关系的交是由属于这两个关系所共有的元组组成的集合。2专门的关系运算(1)选择:从关系中找出满足给定条件的元组的操作。(2)投影:从关系模式中指定若干个属性组成新的关系:(3)连接:关系的横向结合,将两个关系模式拼接成一个更宽的关系模式。(4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连接。自然连接是去掉重复属性的等值连接。小提示:选择和投影运算的操作对象只是•个表,相当于对一个二维表进行切割。连接运算则需要把两个表作为操作对象。如果两个表以上进行连接,应当两两进行连接。1.3数据库设计基础考点6数据库设计步骤1设计原则⑴关系数据库的设计应遵从概念单一化“一事一地'’的原则。(2)避免在表之间出现重复字段。(3)表中的字段必须是原始数据和基本数据元素。(4)用外部关键字保证有关联的表之间的联系。2设计步骤利用VisualFoxPro来开发数据库应用系统,可以按照以下步骤来设计。(1)需求分析。(2)确定需求表C(3)确定需求字段。(4)确定联系。(5)设计精确1.4VisualFoxPro系统概述考点7VisualFoxPro的特点⑴增强项目与数据库管理。(2)提高应用程序开发的生产率。(3)互操作性与支持Internet«(4)充分利用已有数据。VisualFoxPro的安装和启动考点1VisualFoxPro的系统要求VisualFoxPro功能强大,但它对系统的要求并不高,个人计算机软硬件基本要求如下。⑴处理器;486DX/66MHz处理器,推荐使用Pentium或更高处理器的PC。(2)内存:16MB以上的内存,推荐使用24MB内存。(3)硬盘空间:典型安装需要85MB硬盘空间,最大安装需要90MB硬盘空间。(4)其他硬件:一个鼠标、一个光盘驱动器。推荐使用VGA或更高分辨率的监视器。(5)操作系统:山于VisualFoxPro是32位产品,需要在Windows95/98(中文版)、WindowsNT4.0(中文版)或更高版本的操作系统上运行。小提示:退出Windows中的应用程序或关闭窗口等操作,都可以利用快捷键Alt+F4来完成。VisualFoxPro的用户界面考点2VisualFoxPro的主界面VisualFoxPro的主界面即其工作环境,启动VisualFoxPro后,打开如图2—1所示的界面。考点3工具栏的使用设置工具栏是微软公司流行软件的共同特点,利用各种工具栏比菜单要方便得多。其默认界面仅包括“常用”工具栏和“表单设计器”工具栏。除此之外,VisualFoxPro还提供其他10个工具栏,如表2-1所示。
" Dl九I I13♦I,l;kl| JBd㈤川•・汨2T、bwl收小生事第M2-1Vbw)Fexb®XA«*HA栏一聆 2j 工JH2多琲素一一素 | tat 一•先登”w> I.—一单报去 ^ ]■也梅 ~~一”修 ] ㈱■■讦a;" !M-ncrR,SWi(m小提示:VisualFoxPro中有两种工作方式:交互操作方式和程序方式,命令方式和菜单方式都属于交互操作方式。项目管理器考点4使用项目管理器(1)项目管理器窗口中共有6个选项长,其中“全部”选项卡用来集中显示该项目中的所有文件,“数据”、”文档”、”类"、"代码''和"其他"5个选项卡用来分类显示各种文件。(2)项目管理器一是提供了简便的、可视化的方法来组织和处理表、数据库、表单、查询和其他一切文件,通过单击鼠标就能实现对文件的创建、修改、删除等操作;二是在项口管理器中可以将应用系统编译成一个扩展名为APP的应用文件或EXE的可执行文件。(3)在VisualFoxPro中的不同文件类型及其扩展名,如表2-2所示。表2-2VisualFoxPro中的不同文件类型及其扩展名
扩展名文件初1扩屐^文件理ACT向导操作图的文档LBX标签APP生成的应用程序或ActiveDocumentIDX相,压缩索CDX复合索LOG代躁围日志.CHM编译的HTMLHelpLST向导列表的酒DBC数据库MEM内存变量保存DCT数据库备注.MNT菜单备注DCX数据库粥1.MNX肄DBF表MPR生成的菜单程序DBG调试器配置MPX编译后的菜谑序DEP相关文件(由“安野]导”创建)OCXActiveXDLLWindows动态微接库PJT项目备件ERR先译错误PJX项目ESL\lsualFoxPro支持的库PRG程序EXE可执行程序.QPR生成的查询程序FKY宏.QPX编版的粉FKLFoxPro动态熊接库.SCT表单备注FMT格式文件.sex理FPT表备注.SPR生成的屏幕程序.FRT报表备注.SPX编译后的屏幕程序*FRX候.TBK备注备份FXP编设后的程序.TXT文本H头文件.VCT可视库备注HLPWinHelp.vex可叫库HTMHTML.VUEFoxPro2.x腌LBT标签备注.WIN窗口文件考点5定制项目管理器(1)移动、缩放和折叠。(2)拆分项目管理器。(3)停放项目管理器小提示:要拆分选项卡使之单独使用,必须将选项卡折叠后才可以实现。VisualFoxPro向导、设计器、生成器考点6VisualFoxPro的向导向导是一种交互式程序用户在一系列向导屏幕上回答问题或者选择选项后,向导会根据回答生成文件或者执行任务,帮助用户快速完成一般性的任务(例如创建表单、编排报表的格式、建立查询、制作图表、生成数据透视表、生成交叉表报表及在Web上按HTML格式发布等。考点7VisualFoxPro的设计器VisualFoxPro的设计器是创建和修改应用系统各种组件的可视化工具:利用各种设计器使得创建表、表单、数据库、查询和报表及管理数据变得轻而易举,为初学者提供了方便。考点8VisualFoxPro的生成器生成器是带有选项卡的对话框,用于简化对表单、复杂控件及参照完整性代码的创建和修改过程。每个生成器显示一系列选项卡,用于设置选中对象的属性。可使用生成器在数据库表之间生成控件、表单、设置控件格式和创建参照完整性.3.1常量与变量考点1常量常量用以表示一个具体的、不变的值。不同类型常量的书写格式不同。在VisualFoxPro中,常量主要包括以下几种类型。1数值型常量数值型常量即常数,用来表示一个数量的大小,由数字0-9小数点和正负号组成。2货币型常量货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的符号($)。3字符型常量字符型常量也称为字符串,其表示方法是用半角单引号、双引号或方括号把字符串括起来。这里的单引号、双引号或方括号称为定界符许多常量都有定界符。定界符虽然不作为常量本身的内容,但它规定了常量的类型及常量的起始和终止界限。4日期型常量日期型常量的定界符是一对花括号。花括号内包括年、月、日3部分内容,各部分内容之间用分隔符分隔。5日期时间型常量日期时间型常量包括日期和时间两部分内容:{〈日期>,〈时间>}。〈日期〉部分与日期型常量相似,也有传统的和严格的两种格式。6逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用1字节。考点2变量VisualFoxPro中变量分为字段变量和内存变量二其中字段变量就是表中的字段。内存变量是内存中的一块存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。内存变量的数据类型包括:字符型(C)、数值型(N)、货币型(Y)、日期型(D)、日期时间型(T)和逻辑型(L)。1简单的内存变量每一个变量都有一个名字,可以通过变量名访问变量。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.(或M->),否则系统将访问同名的字段变量。2数组与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令显示创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。在使用数组和数组元素时,应注意如下问题。(1)在一切使用简单内存变量的地方,均可以使用数组元素。(2)在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。(3)在同一个运行环境下,数组名不能与简单变量名重复。(4)在赋值语句中的表达式位置不能出现数组名。(5)可以用一维数组的形式访问二维数组。考点3内存变量常用命令1内存变量的赋值格式1:〈内存变量名>=<表达式>格式2:STORE<表达式>T0〈内存变量名表〉2表达式值的显示格式1:?〈表达式表〉格式2:??〈表达式表〉3内存变量的显示格式1:LISTMEMORY[LIKE<通配符>][T0PRINTER!TOFILE<文件名>]格式2:DISPLAYMEMORY[LIKE<通配符>][T0PRINTER|TOFILEv文件名习4内存变量的清除格式1:CLEARMEMORY格式2:RELEASE<内存变量名表>格式3:RELEASEALL[EXTENDED]格式4:RELEASEALL[LIKE<通配符>|EXCEPT<通配符》]5表中数据与数组数据之间的交换将表的当前记录复制到数组。格式1:SCATTER[FIELDS<字段名表习[MEMO]TO<数组名>[BLANK]格式2:SCATTER[FIELDSLIKE<通配符>|FIELDSEXCEPT〈通配符习[MEMO]TO<数组名〉[BLANK]将数组数据复制到表的当前记录。格式1:GATHERFROM<数组名RFIELDS〈字段名表刁[MEMO]格式2:GATHERFROM<数组名>[FIELDSLIKE<通配符>|FIELDSEXCE<通配符刁[MEMO]小提不:如果当前表中存在个同名的字段变量,则在访问内存变量时,必须在内存变量名前加上前缀M.(或M->),否则系统访问的将是同名的字段变量。3.2表达式考点4数值、字符与日期时间表达式1数值表达式(1)算术运算优先级。数值表达式中的算术运算符有些与日常使用的运算符稍有Lx=别,算术运算符及其含义和优先级如表3-1所示。表3-1算术运算符及其优先级优先级运算将说明I<>" i"-1,理表达贰内的的代达式2**或A塞方丽算3*/、算席商运算.求余超玲4*^(2)求余运算。求余运算%和取余函数MOD()的作用相同。余数的正负号与除数一致当表达式中出现*、/和%运算时,它们具有相同的优先级。2字符表达式由字符串运算符将字符型数据连接起来形成,其结果仍是字符型数据字符型数据只能进行两种运算(+、-),它们的优先级相同。首尾连接前后两个字符串形成一个新的字符串;连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部3日期时间表达式日期时间表达式中可以使用的运算符也有“+”和两个,其格式也有一定的限制,不能任意组合,如不能用运算符“+”将两个〈日期〉连接起来。考点5关系表达式1关系表达式关系表达式通常也称为简单逻辑表达式,它是由关系运算符将两个运算对象连接起来而形成的,即:〈表达式x关系运算符><表达式>。关系运算符及其含义如表3-2所示,它们的优先级相同。表3-2关系运算符运算符说明|运算符说<小干<=「小于等于>大于>•七丁号干等于字得中棺硼比较o或!-saitcns 于小包畲测成2设置字符的排序次序当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较;一旦发现两个对应字符不同,就根据这两个字符的排序序列决定两个字符串的大小3字符串精确比较与EXACT设置在用双等号运算符==比较两个字符串时,只有当两个字符串完全相同(包括空格及各字符的位置)时,运算结果才会是逻辑其工,否则为逻辑假.F.。考点6逻辑表达式1逻辑表达式逻辑运算符的运算规则如表3-3所示,其中<IE1>和<IE2>各代表两个逻辑型常量。表3-3逻辑运算规则<IEI>>.AND,<IE2>v卸>.OR,<1E2>J.-T.万..T.F.F..T.I•RT.,E.F.,F. 1■P2运算符优先级.NOT.或!(逻辑非)、.AND.(逻辑与)、.OR.(逻辑或)依次降低。小提不:表达式是指常量、变量、函数或由它们通过特定的运算符连接起来的式子。3.3常用函数考点7数值函数数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。1绝对值和符号函数格式:ABSv数值表达式,)SIGN(〈数值表达式〉)功能:ABS()返回指定的数值表达式的绝对值。SIGN。返回指定数值表达式的符号。2求平方根函数格式:SQRT(v数值表达式力功能:返回指定表达式的平方根,表达式的值不能为负。3圆周率函数格式:PIO功能:返回圆周率二,该函数没有自变量。4求整数函数格式:INT(〈数值表达式〉)CEILING(〈数值表达式,)FLOOR(v数值表达式刁功能:INTO返回指定数值表达式的整数部分。CEILING。返回大于或等于指定数值表达式的最小整数。FLOOR。返回小于或等于指定数值表达式的最大整数。5四舍五入函数格式:ROUND(v数值表达式1>,<数值表达式2>)功能:返回V数值表达式A在指定位置四舍五入后的结果,<数值表达式2>指明四舍五入的位置。若〈数值表达式2>大于等于0,表示的是要保留的小数位,若小于。,则表示整数部分的舍入位数。6求余数函数格式:MOD(〈数值表达式<数值表达式2>)功能:返回两个数相除后的余数。余数的正、负号与除数相同。如果被除数与除数同号,则函数值为两数相除的余数;如果异号,则函数值为两数相除的余数再加上除数的值。7求最大值和最小值函数格式:MAX(v数值表达式<数值表达式2>[,<数值表达式MIN(<数值表达式1>,<数值表达式2>[,<数值表达式功能MAX()返回自变量中的最大值。MIN()返回自变量中的最小值。考点8字符函数1求字符串长度函数格式:LEN(〈字符表达式,)功能:返回指定字符表达式值的长度,即字符个数。2大小写转换函数格式:LOWER(〈字符表达式〉)UPPER(〈字符表达式〉)功能:LOWER。将指定表达式中的大写字母转换成小写字母,其他字符保持不变;UPPER。将指定表达式中的小写字母转换成大写字母,其他字符保持不变。3空格字符串生成函数格式:SAPCE(〈数值表达式〉)功能:返回由指定数目的空格组成的字符串。4侧除前后空格函数格式:TRIM(〈字符表达式〉)LTRIM(〈字符表达式〉)ALLTRIM(〈字符表达式))功能:TRIM。删除指定表达式尾部的空格。LTRIM()删除指定表达式前端的空格。ALLTRIM()删除指定字符串前端和尾部的空格。5取子串函数格式:LEFT(〈字符表达式〉,〈长度〉)RIGHT(〈字符表达式〉,〈长度〉)SUBSTR(〈字符表达式〉,〈起始位置>[,<长度习)功能:LEFT。从指定表达式左端截取一个指定长度的子串作为函数值。RIGHT。从指定表达式右端载取一个指定长度的子串作为函数值。SUBSTRO从指定表达式指定位置截取一个指定长度的子串作为函数值,若默认〈长度〉,则截取的子串表示从指定位置开始一直到字符串尾部。6计算子串出现次数函数格式:OCCURS(〈字符表达式1>,〈字符表达式2>)功能:返回第一个字符串在第二个字符串中出现的次数。7求子串位置函数格式:AT(〈字符表达式1>,〈字符表达式2>[,<数值表达式>])ATC(〈字符表达式1>,〈字符表达式2>[,<数值表达式习)功能:AT()返回第一个字符串的首字符在第一二个字符串中出现的位置。前提条件是第一个字符串必须是第二个字符串的子串,否则函数返回值为0。ATC()功能与AT()类似,但不区分字符串中字符的大小写。8子串替换函数格式:STUFF〈字符表达式1>,〈起始位置〉,〈长度〉,〈字符表达式2>)功能:用〈字符表达式2>的值替换〈字符表达式1>中由〈起始位置〉和<长度〉指定的一个子串。9字符替换函数格式CHRTRAN(〈字符表达式1>,〈字符表达式2>,〈字符表达式3>)功能:该函数的自变量是三个字符表达式。当第一个字符串中的一个或多个字符与第二个字符串中的某个字符相匹配时,应用第三个字符串中的对应字符(相同位置)替换这些字符如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因为没有对应字符,那么第一个字符串中相匹配的各字符将被删除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符将被忽略。10字符串匹配函数格式:LIKE(〈字符表达式1>,〈字符表达式2>)功能:比较两个字符串时应位置_L的字符。其中〈字符表达式1>中可包含通配符*和?。*表示若干个任意字符,?表示任意一个字符。考点9日期和时间函数1系统日期和时间函数格式:DATE()TIME()DATETIME0功能:DATE()返回当前系统日期,函数值为日期TIME()以24小时制返回当前系统时间,函数值为字符型:DATETIME。返回肖前系统日期时间,函数值为日期时间型。2求年份、月份和天数的函数格式:YEAR(〈日期表达式>|〈日期时间表达式〉)MONTH(<日期表达式>|<日期时间表达式〉)DAY(<日期表达式>|<日期时间表达式〉)功能:YEAR()从指定的日期表达式或日期时间表达式中返回年份。MONTH。从指定的日期表达式或日期时间表达式中返回月份DAY()从指定的日期表达式或日期时间表达式中返回月份的天数。这3个函数的返回值均为数值型数据3求时、分和秒的函数格式:HOUR(<I1期时间表达式〉)MINUTE(<日期时间表达式〉)SEC(〈日期时间表达式〉)功能:HOUR。从指定的日期时间表达式中返回小时部分(24小时制)。MINUTE。从指定的II期时间表达式中返回分钟部分。SEC()从指定的口期时间表达式中返回秒钟部分。考点10数据类型转换函数数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。1数值转换成字符串函数格式:STR(〈数值表达式>[,<长度>[,〈小数位数刁])功能:将〈数值表达式〉的值转换成字符串,转换时根据需要自动四舍五入。2字符串转换成数值函数格式:VAL(〈字符表达式〉)功能:将山数字符号(包括符号、小数点)组成的字符型数据转换成相应的数值型数据。3字替串转换成日期或日期时间函数格式:CTOD(〈字符表达式〉)CTOT<字符表达式〉)功能:CTOD()将〈字符表达式〉转换成II期型数据CTOT()将〈字符表达式〉转换成II期时间型数据。4II期或日期时间转换成字符串函数格式:DTOC(〈日期表达式>|〈日期时间表达式>[,1])TTOC(<日期时间表达式>[,1])功能:DTOC()将日期型数据或日期时间型数据的日期部分转换成字符串。TTOC()将日期时间型数据转换成字符串。5宏替换函数格式:&<字符型变量>[.]功能:替换出字符型变量的内容,即&的值是变量中的字符串。如果该函数与其后面的字符无明显分界,则要用作为函数结束标识宏替换可以嵌套使用。考点11测试函数1值域测试函数格式:BETWEEN(〈表达式1〉,〈表达式2>,<表达式3>)功能:判断一个表达式的值是否介于其他两个表达式的值之间。2空值(NULL)测试函数格式:ISNULL(〈表达式〉)功能:判断一个表达式的运算结果是否为NULL值。3“空”值测试函数格式:EMPTY(〈表达式〉)功能:略。4数据类型测试函数格式:VARTYPE(〈表达式>[,〈逻辑表达式>])功能:测试表达式的类型,返回一个大写字母,函数值为字符型。字母含义如表3d所表3-4VARTYPE。测得的数据类型KSSICGMSND日皿¥Blip®T日MMESLXNULL0U■_"-IBM5表文件尾测试函数格式:EOF([<工作区号>|〈表别名习)功能:测试当前表文件(若默认自变量)或指定表文件中的记录指针是否指向文件尾,若是,则返回逻辑真(.T.),否则为逻辑假(.E)。若在指定工作区上没有打开表文件,则函数返回逻辑假(.F.),若表文件中不包含任何记录,则函数返回逻辑真(.T.)。6表文件首测试函数格式:BOF(卜工作区号>|〈表别名刁)功能:测试当前表义件(若默认自变量)或指定表文件中的记录指针是否指向文件首,若是,则返回逻辑真(.T.),否则为逻辑假(.F.)(若在指定工作区上没有打开表文件,则函数返回逻辑假(.F.),若表文件中不包含任何记录,则函数返回逻辑真(.T.)。7记录号测试函数格式:RECNO(卜工作区号>|(表别名>])功能:返回当前表文件(若默认自变量)或指定表文件中当前记录的记录号。如果指定工作区上没有打开表文件,则函数值为0:如果记录指针指向文件尾,则函数值为表文件中的记录数加1;如果记录指针指向文件首,则函数值为表文件中第一条记录的记录号。8记录个数测试函数格式:RECCOUNT(卜工作区号>|〈表别名〉])功能:返回当前表文件(若默认自变量)或指定表文件中的记录个数。如果指定工作区上没有打开表文件,则函数值为0,RECCOUNT)函数不受删除标记及SETDELETED设置的影响,同样测试表中所有的记录个数。9条件测试函数格式:HF(〈逻辑表达式〉,〈表达式1〉,〈表达式2>)功能:测试〈逻辑表达式>的值,若为逻辑真(1),则函数返回〈表达式1>的值,否则返回〈表达式2〉的值〈表达式1>和<表达式2>的类型可以不相同。10记录删除测试函数格式:DELETED(卜工作区号>|<表别名>])功能:测试当前表文件(若默认自变量)或指定表文件中,记录指针所指的当前记录是否有删除标记“*若有,则为真,否则为假。4.1VisualFoxPro数据库及其建立考点1建立和使用数据库1数据库的建立(1)在项目管理器中建立数据库。(2)通过“新建”对话框建立数据库。(3)使用命令建立数据库,格式为:CREATEDATABASE[DatabaseName|?]2数据库的打开(1)在项目管理器中打开。(2)通过“打开”对话框打开数据库。(3)使用命令打开数据库,格式为:OPENDATABASE[FileName|?][EXCLUSIVEISHARED][NOUPDATE][VALIDATE]考点2修改和删除数据库VisualFoxPro在建立数据库时建立了扩展名分别为dbc、det和dcx的3个文件,用户不能直接修改这些文件。VisualFoxPro中修改数据库实际是打开数据库设计器,完成数据库中各种对象的建立、修改和删除等操作。可以有3种方法打开数据库设计器。(1)从项目管理器中打开数据库设计器。(2)从“打开”对话框中打开数据库设计器。(3)使用命令打开数据库设计器,格式为:MODIFYDATABASE[DatabaseName!?]在项目管理器中不管删除还是移去数据库文件,都不会删除其所包含的各个对象做口数据表)。如果要在删除数据库的同时删除其所包含的数据表,就必须使用命令,格式为:DELETEDATABASEDatabaseName|?[DELETETABLES][RECYCLE]小提示:在VisualFoxPro'4',OpenDataBase和ModifyDataBase命令的区别在于:OpenDataBase打开的只是数据库的工作环境,并不会进入数据库设计器:ModifyDataBase是打开数据库设计器。4.2建立数据库表考点3在数据库中建立表在数据库中建立数据表,最直接的方法就是在数据库设计器中利用鼠标右键单击空白处,选择“新建表”命令,在弹出的表设计器中设置数据表结构。另外可以在命令窗口利用OPENDATA命令先打开数据库,然后利用CREATE命令打开表设计器进行数据表设计,如图4-1所示。图4-1表设计器1字段名(1)自由表字段名最长为10个字符。(2)数据库表字段名最长为128个字符。(3)字段名必须以字母或汉字开头。(4)字段名可以由字母、汉字、数字和下划线组成。(5)字段名中不能包含空格。2字段类型和宽度(1)字符型:可以是字母、数字等各种字符型文本,如用户名称。(2)货币型:货币单位,如货物价格。(3)数值型:整数或小数,如订货数量。(3)浮点型:功能类似于“数值型”,其长度在表中最长可达20位。(4)日期型:由年、月、日构成的数据类型,如订货日期。(5)日期时间型:由年、月、日、时、分、秒构成的数据类型,如员工上班的时间。(6)双精度型:双精度数慎类型,一般用于要求精度很高的数据。(7)整型:不带小数点的数值类型,如订单的行数。(8)逻辑型:值为“真”(.T.)或假(.F.),如表示订单是否已执行完。(9)备注型:不定长的字符型文本。在表中占4个字节,表备注型文件的扩展名为FPT。(10)通用型:用于标记电子表格、文档、图片等OLE对象,在表中占4个字节。(11)字符型(二进制)。(12)备注型(二进制)。3空值一个字段是否允许为空值与实际应用有关,比如作为关键字的字段是不允许为空值的,而那些在插入记录时允许暂缺的字段值往往允许为空值。4字段有效性组框在字段有效性组框中可以定义字段的有效性规则、违反规则时的提示信息和字段的默认值。5显示组框在显示组框下可以定义字段显示的格式、输入的掩码和字段的标题。输入掩码是字段的一种属性,用限制或控制用户输入的格式。标题用于字段显示时的标题,如果不指定标题则显示字段名。当字段名是英文或缩写时,则通过指定标题可以使界面更友好。6字段注释可以为每个字段添加注释,便于日后或其他人对数据库进行维护。考点4修改表结构在VisualFoxPro中可以对表结构任意修改,修改表结构和建立表结构时,表设计器界面完全一样。修改数据表结构时,首先应该用USE命令打开要修改的数据表,然后利用MODIFYSTRUCTURE打开表设计器进行修改,具体操作有以下几种。(1)修改己有字段。(2)添加新字段。(3)删除不用的字段。4.3表的基本操作考点5使用浏览器操作表在交互式工作方式下,最简单、方便的方法就是使用BROWSE浏览器浏览表,打开浏览器的方法有多种。在项目管理器中将数据库展开至表,然后单击“浏览”按钮,或直接在窗口中输入BROWSE命令(首先应该打开表文件)。1浏览器操作(1)下一记录(下箭头键)。(2)前一记录(上箭头键)。F・•页(PageDown键)。(4)上一页(PageUp键)。(5)下一字段(Tab键)。(6)前一字段(Shift+Tab键)。2修改记录只需将光标定位到要修改的记录和字段上,就可以进行修改了。3删除记录VisualFoxPro中删除记录有逻辑删除和物理删除两种,逻辑删除只在记录旁做删除标记(如图4-2所示),必要时可以进行恢复物理删除是在逻辑删除的基础上真正地将记录从表中删除。要在浏览器中删除有删除标记的记录,可选择“表/彻底删除''菜单命令。图4-2增加和删除记录
3凶20030;3凶20030;考点6增加、删除、修改和显示记录的命令1增加记录APPEND命令是在表的尾部增加记录,格式有如下两种。格式1:APPEND格式2:APPENDBLANK2插入记录格式:INSERT[BEFORE][BLANK]3删除记录删除记录有物理删除和逻辑删除两种,VisualFoxPro用来删除记录的命令如下。(1)设置删除标记的命令格式:DELETE[FORlExpressionl]说明:如果不使用FOR短语指定逻辑条件,则只删除当前记录,否则逻辑删除满足条件的所有记录。(2)恢复记录的命令。格式:RECALL[FORlExpressionl]说明:使用该命令恢复表中逻辑删除的记录,短语FOR的功能同上。(3)物理删除有删除标记的记录格式:PACK说明:此命令用来物理删除当前表中所有带删除标记的记录。(4)物理删除表中的全部记录格式:ZAP说明:不管表中记录是否带有删除标记,此命令可以一次性将当前表中的记录全部物理删除,但表结构仍保留使用此命令相当于DELETEALL与PACK的连用。4修改记录在VisualFoxPro中可以交互修改记录,也可以用指定值直接修改记录。⑴用EDIT或CHANGE命令交互式修改。(2)用REPLACE命令直接修改。5显示记录格式:LIST/DISPLAY[[FIELDS]FieldList][FORLExpressionl][OFF][TOPRINTER[PROMPT]|TOFILEFileName]考点7查询定位的命令(1)用GOTO命令直接定位(2)SKIP命令(3)用LOCATE命令定位。LOCATE命令是按条件定位记录位置,格式为:LOCATEFORlExpressionlLOCATE命令常用结构如下。LOCATEFORlExpressionlDOWHILEFOUND()*处理数据***CONTINUEENDDO小提示:连续使用DELETEALL和PACK命令,其操作结果与ZAP命令一样,都可以将表中的所有记录一次性物理删除。索引与排序考点8索引的基本概念索引是对表中的记录按照某种逻辑顺序重新排列。⑴主索引:在指定的字段或表达式中不允许出现重爱值的索引,且一个表只能创建一个主索引。(2)候选索引:具有与主索引相同的性质和功能,但一个表中可以创建多个候选索引,其指定的字段或表达式中也不允许出现重复值。(3)唯一索引:它的“唯一性”是指索引项的唯一,而不是字段值的唯一。但在使用该索引时,重复的索引段值只有唯一一个值出现在索引项中。(4)普通索引:不仅允许字段中出现重复值,并且索引项中也允许出现重复值。考点9索引的建立1单项索引在表设计器界面中有“字段”、”索引”和“表”3个选项卡,在“字段”选项卡中定义字段时就可以直接指定某些字段是否为索弓I项,用鼠标单击定义索引的下拉列表框可以看到3个选项:无、升序和降序(默认是无)。如果选定升序或降序,则在对应的字段上建立一个普通索引,索引名与字段名同名,索引表达式就是对应的字段。2复合字段索引⑴在嗦引”选项卡中的索引名栏目中输入索引名。(2)在索引类型的下拉框中选择索引类型。(3)单击表达式栏右侧的按钮,打开表达式生成器。(4)在“表达式”文本框中输入索引表达式(如图4-3所示),最后单击“确定”按钮。图4-3表达式生成器界面3使用命令建立索引格式:INDEXONeExpressionTOIDXFileName|TAGTagName[OFCDXFileName][FORlExpression][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]从索引的组织方式来讲,索引共有3种类型。(1)单独的IDX索引,是一种非结构索引。(2)采用非默认名的CDX索引,也是一种非结构复合索引.(3)与表同名的CDX索引,是结构复合索引。结构复合索引文件可随表的打开而打开,在同一个索引文件中能包含多个索引方案或索引关键字,在添加、更改或删除记录时自动维护索引。考点10索引的使用⑴打开索引文件,格式为:SETINDEXTOIndexfilelist(2)设置当前索引,格式为:SETORDERTO[nlndexNumber|[TAG]TagName][ASCENDING|DESCENDING](3)使用索引快速定位,格式为:SEEKeExpression[ORDERnIndexNumber|[TAG]TagName][ASCENDING|DESCENDING](4)删除索引,格式为:DELETETAGTagNamel&&TagName1为索引名要删除全部索引,可使用命令:DELETETAGALL考点11排序索引可以使用户按照某种顺序浏览或查找表中的记录,这种顺序是逻辑的,如耍对表中的记录按物理顺序重新排列,可使用SORT命令,格式为:SORTTOTableNameONFieldNainel[/A}/D][/C][,FieldName2[/A|/D][/C]...][ASCENDING|DESCENDING][FORlExpressionl][FIELDSFieldNameList]小提示:在数据库表中只能有一个主索引,且只能在表设计器中建立。其他3种索引可以建立多个,既能在表设计器中建立,也能以命令方式建立,但在自由表中不能为其创建主索引,只能创建后3种索引,同样也可以建立多个。数据完整性考点12实体完整性与主关健字(1)实体完整性是保证表中记录唯一的特性,即在同一个表中不允许有重复的记录出现。在VisualPro中通过主索引和候选索引来保证数据的实体完整性。(2)如果一个字段的值或几个字段的值能够唯一标志表中的一条记录,则称这个字段为候选关键字。在VisualFoxPro中将主关键字称做主索引,将候选关键字称为候选索引。考点13参照完整性与表之间的关联1建立表之间的联系参照完整性与表之间的联系有关,其含义大致是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,检查对表的数据操作是否正确。在数据库设计器中设计表之间的联系时,要在父表中建立主索引,在子表中建立普通索引,然后通过父表主索引和子表的普通索引建立起两个表之间的联系。2设置参照完整性约束建立参照完整性之前,首先必须清理数据库,即物理删除表中被逻辑删除的记录,然后选择两个关联表之间的连线并选择“数据库”、"编辑参照完整性''菜单命令,打开如图44所示的“参照完整性生成器''对话框。••I•I•■■ - >*--..._ ••1硼般I 吨]—“I图44“参照完整性生成器”对话框小提示:欲建立两表之间的联系,首先用鼠标选中一个表的主索引,按住鼠标左键不放,并拖动鼠标到另一个表的索引上,这时鼠标箭头变成小矩形状,最后释放鼠标。4.6自由表考点14数据库表与自由表自由表是不属于任何数据库的表。在没有打开数据库时,所建立的表就是自由表。数据库表与自由表之间可以相互转化。1建立自由表的方法(1)在项目的“数据”选项卡中选择“自由表”,单击“新建”按钮。(2)在没有打开数据库的情况下,通过“新建”对话框,选择“表”并单击"新建文件”按钮。(3)在没有打开数据库的情况下,在命令窗口输入CREATE命令,新建自由表。2数据库表相对于自由表的特点⑴数据库表可以使用长表名,在表中可以使用长字段名。(2)可以为数据库表中的字段指定标题和添加注释。(3)可以为数据库表中的字段指定默认值和输入掩码。(4)数据库表的字段有默认的控件类。(5)可以为数据库表规定字段级规则和记录级规则。(6)数据库表支持主关犍字、参照完整性和表之间的联系。(7)支持INSERT,UPDATE和DELETE事件的触发器。考点15将自由表添加到数据库中(1)在数据库设计器中可利用“数据库”—“添加表''菜单命令,在“打开”对话框中选择自由表文件,将其添加到数据库中。(2)直接用命令方式将自由表添加到当前数据库中,格式为:ADDTABLETableName|?[NAMELongTableName]考点16从数据库中移出表(1)直接利用命令移出数据库表,格式为:REMOVETABLETableName|?[DELETE][RECYCLE](2)从项目管理器中移出数据库。(3)从数据库设计器中移出数据库。4.7多个表的同时使用在VisualFoxPro中,一次可以打开多个数据库,每个数据库都可以打开多个数据表。考点17多工作区的概念指定工作区的命令格式为SELECTnWorkArea|cTableAlias,每个表打开后都有两个默认别名,一个是表的自身名,另一个是工作区所对应的别名。在前10个工作区中指定的默认别名是工作区字母A〜J,其后面的工作区所对应的别名为W11〜W32767。另外还可以在USE命令中通过ALIAS短语指定表别名。例如:USE学生表IN1ALIASstudent,为学生表指定了别名studento考点18使用不同工作区的表除了使用SELECT命令切换不同的工作区之外,也可以在一个工作区使用其他工作区的数据表。即通过短语:INnWorkArea|cTableAlias。在表别名后加上".’喊操作符,可在一个工作区中直接调用其他工作区中数据表的记录。例如当前工作区号为2,要调用1区上学生表中的班级号的相关字段,可使用命令:学生表.班级号或学生表->班级号或A.班级号或A->班级号考点19表之间的关联使用SETRELATION命令建立表间记录指针的临时联系(关联)。格式:SETRELATIONTOeExpressionlINTOnWorkArealIcTableAliasl。说明:eExpressionl是指建立临时联系的索引关键字,一般是父表的主索引,子表的普通索引。用工作区号nWorkAreal或表的别名cTableAliasI说明临时联系是由当前工作区的表到哪个表。利用SETRELATIONTO命令将取消当前表到所有表的临时联系。SQL概述考点1概述1概念SQL是结构化查询语言StructuredQueryLanguage的缩写。它包括数据查询、数据定义、数据操纵和数据控制4部分。VisualFoxPro在SQL方面支持数据定义、数据查询和数据操纵功能。另外,由于VisualFoxPro自身在安全控制方面的缺陷,所以它没有提供数据控制功能。2SQL语言的特点一种一体化的语言。(2)一种高度非过程化的语言。(3)语言非常简洁。(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2查询功能SQL的核心是查询,基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可嵌套执行,如表5-1所示。SQL功能命令动调rw虬SELECT、ALTER数据操纵拓Sit,胸疑]敷据控制GRANT.REVOKE表5-1SQL命令动词考点2简单查询1简单查询简单查询是由SELECT和FROM短语构成的无条件查询,或山SELECT,FROM和WHERE短语构成的条件查询。2简单的连接查询连接是关系的基本操作之一,连接查询是一种基于多个关系的查询。3嵌套查询嵌套查询所要求的结果出自一个关系,但关系的条件却涉及多个关系。其内层基本上也是一个SELECT-FROM-WHERE查询语句。这种简单嵌套查询,可使用谓词IN或NOTN来判断在外层的查询条件中是否包含内层查询的结果。考点3特殊运算符号BETWEEN...AND...含义:该查询的条件是在……范围之内,相当于用AND连接的一个逻辑表达式。LIKE含义:它是一个字符串匹配运算符,与之搭配使用的通配符包括“*”和考点4排序使用SQLSELECT可以将查询结果进行排序,排序的短语是ORDERBY。格式:ORDERBYOrder」tem[ASCIDESC][,OrderItem[ASC|DESC]...]说明:可以按升序(ASC)或降序(DESC)排序,允许按一列或多列排序。考点5计算查询1简单的计算查询SQL不仅具有一般的检索能力,而且还有计算方式的检索,用于计算检索的函数有:COUNT(计数)、SUM(求和)、AVG(计算平均值)、MAX(求最大值)及MIN(求最小值)。2分组与计算查询在SQLSELECT中可以利用GROUPBY子句进行分组计算查询。格式:GROUPBYGroupColumn[,GroupColumn...][HAVINGFilterCondition]说明:可以按一列或多列分组,还可以用HAVING子句进一步限定分组的条件。它必须跟在GROUPBY子句之后,不可单独使用,与WHERE子句并不矛盾。考点6别名和自连接查询(l)SQL语句允许在二OM短语中为关系定义别名,格式为:一〈关系名〉<别名〉SQL不仅可以对多个关系进行连接操作,也可以将同一关系与其自身进行连接,这种连接就称为自连接。在关系的自连接操作中,别名是必不可少的。考点7使用量词和谓词的查询与嵌套查询或子查询有关的运算符,除了IN和NOTIN运算符外,还有两类与子查询有关的运算符,它们有以下两种格式。⑴〈表达式x比较运算符>[ANYIALL|SOME](子查询)(2)[NOT]EXISTS(子查询)EXISTS是谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。考点8超链接查询(1)在新的SQL标准中支持两个新的关系连接运算符,这两个新的连接运算是左连接(*=)和右连接=*):首先保证一个表中满足条件的元组都在结果表中,然后将满足连接条件的元组与另一个表的元组进行连接,不满足连接条件的则应将来自另一个表的属性值置为空值。在一般SQL中超链接运算符是“*="(左连接)和“=*"(右连接)。(2)在VisualFoxPro中不支持超链接运算符“*="和VisualFoxPro有专门的连接运算。下面拼出SQL中超链接的部分语句格式:SELECT...FROMTableINNER|LEFT|RIGHT|FULLJOINTableONJoinConditionWHERE...考点9VisualFoxPro中SQLSELECT的几个特殊选项⑴显示部分结果,格式为:TOPnExpr[PERCENT](2)将查询结果存放到数组中,格式为:INTOARRAYArrayName(3)将查询结果存放到临时文件中,格式为:INTOCURSORCursorName(4)将查询结果存放到永久表中,格式为:INTODBF|TABLETableName(5)将查询结果存放到文本文件中,格式为:TOFILEFileName[ADDITIVE](6)将查询结果直接输出到打印机,格式为:TOPRINTER[PROMPT]操作功能考点10插入VisualFoxPro支持两种SQL插入命令的格式,一种是标准格式,另一种是特殊格式。1标准格式INSERTINTOdbfname[(frame1[»fhame2,...])]VALUES(eExpressionl[,eExpression2,...])2特殊格式INSERTINTOdbf_nameFROMARRAYArrayName|FROMMEMVAR考点11更新SQL的数据更新命令格式如下:UPDATETableNameSETColumn_Namel=eEpressionl[,Column_Name2=eExpression2…]WHERECondition说明:利用WHERE字句指定条件,以更新满足条件的一些记录的字段值,并巨一次可更新多个字段;如果不使用WHERE子句,则更新全部记录。考点12删除SQL从表中删除数据的命令格式如下:DELETEFROMTableName[WHERECondition]说明:FROM指定从哪个表中删除记录,WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。小提示:当一个表定义一个主索引或候选索引后,由于相应的字段具有关键字的特性,即不能为空,所以只能用此命令插入记录、)APPEND和INSERT都是插入一条空白记录再输入各字段的值,故不能用它们来插入记录。定义功能考点13表的定义利用SQL命令建立的数据表同样可以完成在表设计器中设计表的所有功能。格式:CREATETABLEIDBFTableNamel[NAMELongTableName][FREE](FieldNamelFieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpressionl[ERRORcMessageTextl]][DEFAULTeExpressionl][PRIMARYKEYIUNIQUE][REFERENCESTableName2[AGTagNamel]][NOCPTRANS][,FieldName2...][,PRIMARYKEYeEpression2TAGTagName2|,UNIQUEeExpression3TAGTagName3][,FOREIGNKEYeExpression4TagNamc4[NODUP]REFERENCESTableName3[TAGTagName5]][,CHECKlExpression2[ERRORcMessagcTcxt2]])|FROMARRAYArravNasne说明:此命令除了建立表的基本功能外,还包括满足实体完整性的主关键字(主索引)PRIMARYKEY、定义域完整性的CHECK约束及出错提示信息ERROR、定义默认值DEFAULT等,另外还有描述表之间联系的FOREIGNKEY和REFERENCES等。考点14表的删除利用SQL命令删除表,可直接使用语句,格式为:DROPTABLETablename说明:如果删除的是自由表,则应该将当前打开的数据库先关闭,才能进行删除。如果删除数据库表,则要先打开数据库,在数据库中进行操作二否则,即使删除了数据库表,但记录在数据库中的信息并没有被删除,此后会出现错误提示。考点15表结构的修改修改表结构的命令是ALTERTABLE,该命令有3种格式。(l)ALTERTABLETableNamelADD|ALTER[COLUMN]FieldNamelFieldTvpe[(nFicldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpressionl[ERRORcMessageTextl]][DEFAULTeExpressionl][PRIMARYKEY|UNIQUE][REFERENCESTableName2[TAGTagNamel)](2)ALTERTABLETableNamelALTER[COLUMN]FieldName2[NULL|NOTNULL][SETEFAULTeExpression2][SETCHECK!Expression2[ERRORcMessageText2][DROPDEFAULT][DROPCHECK](3)ALTERTABLETableNamel[DROP[COLUMN]FieldName3][SETCHECK!Expression3[ERRORcMessageText3][DROPCHECK][ADDPRIMARYKEYeExpression3TAGTagName2[FOR!Expression4]][DROPPRIMARYKEY)[ADDUNIQUEeExpression4[TAGTagName3[FOR!Expression5]]][DROPUNIQUETAGTagName4][ADDFOREIGNKEY[eExpression5]TAGTagName4[FORlExpression6]REFERENCESTableName2[TAGTagName5]][DROPFOREIGNKEYTAGTagName6[SAVE]][RENAMECOLUMNFieldName4TOFieldName5]考点16视图的定义1视图的概念及其定义⑴视图的概念。VisualFoxPro中视图是一个虚拟的表,可以是本地的、远程的或带参数的。(2)视图的定义,格式为:CREATEVIEWviewname[(column_name[,columnname]...)]ASselectstatement2从单个表派生出来的视图视图一经定义,就可以和基本表一样进行各种查询,也可以进行一些修改操作。对于最终用户来说,有时并不需要知道操作的是基本表还是视图。3从多个表派生出来的视图视图一方面可以限定对数据的访问,另一方面又可以简化对数据的访问。4视图的删除视图由于是从表派生出来的,所以不存在修改结构的问题,但是视图可以删除。格式:DROPVIEWv视图名〉5关于视图的说明在关系数据库中,视图始终不真正含有数据,它总是原有表的一个窗口。所以,虽然视图可以像表一样进行各种查询,但是插入、更新和删除操作在视图上却有一定限制。在一般情况下,当一个视图是由单个表导出时可以进行插入和更新操作,但不能进行删除操作;当视图是从多个表导出时,插入、更新和删除操作都不允许进行。这种限制是很有必要的,它可以避免一些潜在问题的发生。7.1程序与程序文件考点1程序的概念、建立与执行1程序的概念程序是能够完成一定任务的命令集合。这组命令被存放在称为程序文件或命令文件的文本文件中。当运行程序时,系统会按照一定的次序自动执行包含在程序文件中的命令。2程序文件的建立与修改程序文件的建立与修改一般是通过调用系统内置的文本编辑器来进行的。其建立步骤如下。(I)打开文本编辑窗口。(2)在文本编辑窗口中输入程序内容,此处所输入的程序命令不会马上被执行。(3)编辑完成后,从“文件”菜单中选择“保存”命令或按快捷键Ctrl+W保存程序文件。3打开或修改程序文件的方法(1)从“文件”菜单中选择“打开”命令,弹出“打开”对话框。(2)在“文件类型”列表框中选择“程序”o(3)在文件列表框中选定要修改的文件,并单击“确定”按钮。(4)编辑修改后,从“文件”菜单中选择“保存”命令或按快捷键Ctrl+W保存程序文件,若要放弃修改,可直接按Esc键,或从“文件”菜单中选择“还原”命令。4程序文件的执行程序文件建立后,可使用多种方式、多次执行它,常用的以下有两种方式。⑴菜单方式。(2)命令方式。考点2简单的输入输出命令程序一般都包含数据输入、数据处理和数据输出3个部分。INPUT命令格式:INPUT卜字符表达式刁TO<内存变量〉功能:该命令等待用户从犍盘输入数据,当用户回车后,系统将表达式的值存入指定的内存变量。注释:输入的数据可以是常量、变量,也可以是更为一般的表达式。但不能不输入任何内容直接按回车键输入字符串时必须加定界符,输入逻辑型常量时要用圆点定界(如.T.,.F.),则输入日期时间型常量时要用大括号(如{A2001-03-01))。ACCEPT命令格式:ACCEPT[〈字符表达式>]TO〈内存变量〉功能:该命令等待用户从键盘输入字符串,当用户回车后,系统将表达式的值存入指定的内存变量。注释:该命令只能接收字符串。用户在输入字符串时不需要加定界符;否则,系统会把定界符作为字符串本身的一部分。如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。WAIT命令格式:WAIT[〈字符表达式〉][T0<内存变量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEARINOCLEAR][TIMEOUT(数值表达式>]功能:该命令显示字符表达式的值作为提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续程序运行。注释:〈内存变量〉用来保存用户输入的字符,其类型为字符型。若用户按的是Enter键或单击了鼠标,那么〈内存变量〉中保存的将是空串若不选TO〈内存变量〉短语,则输入的单字符不保留。小提示:如果用DO命令执行查询文件、菜单文件,在文件名中必须要包括扩展名(QPR、MPR)。7.2程序的基本结构程序结构是指程序中命令或语句执行的流程结构,包括3种基本结构:顺序结构、选择结构和循环结构。考点3顺序结构顺序结构是最简单的程序结构,它是按命令在程序中出现的先后次序依次执行。考点4选择结构支持选择结构的语句包括条件语句和分支语句。1条件语句格式:IF<条件>〈语句序列1>[ELSE>〈语句序列2>]ENDIF功能:该语句根据<条件>是否成立从两组代码中选择一组执行。语句的执行流程图如图7-1和图7-2所示。图7-1有ELSE的选择语句 图7-2无ELSE的选择语句2分支语句格式:DOCASECASE<条件1>〈语句序列1>CASE<条件2>〈语句序列2>CASEV条件n>〈语句序列n>[OTHERWISE〈语句序列习ENDCASE功能:语句执行时,依次判断CASE后面的条件是否成立。分支语句实现的是一种扩展的选择结构,可以根据条件从多组代码中选择一组执行。分支语句的流程如图7-3所示。图7-3多分支语句考点5循环结构循环结构也称为重复结构,是指程序在执行的过程中,其中的某段代码被市复执行若一干珠。被重复执行的代码段,通常称为循环体。VisualFoxPro支持循环结构的语句包括:DOWHILE-ENDDO,FOR-ENDFOR和SCAN-ENDSCAN。DOWHILE-ENDDO语句格式:DOWHILE<条件>〈语句序列1>[LOOP]〈语句序列2>[EXIT]〈语句序列3>ENDDO功能:首先判断循环条件是否为真,如果成立则执行DOWHILE和ENDDO之间的命令序列,如果遇到LOOP语句,则回到DOWHILE处继续执行,遇到EXIT语句,则退出
循环体;当执行到ENDDO时,再次返回DOWHILE处判断循环条件,一直到条件为假时,退出循环体,执行ENDDO之后的语句。DOWHILE循环语句的控制流程如图7-4和图7-5所示。然坏体堵句然坏体堵句图74基本循环结构图 7-5含有LOOP或EXIT的循环FOR-ENDFOR语句格式:FOR<循环变量>=<初值>TCK终值>[STEP<步长刁〈循环体〉ENDFOR功能:首先将初值赋给循环变量,然后判断循环条件是否成立(若步长为正值,则循环条件为〈循环变量><=<终值〉;若步长为负值,则循环条件为〈循环变量>>=<终值>)。如果成立,则执行循环体,然后循环变量增加一个步长值,并再次判断循环条件,一直到条件为假时,退出循环体。该语句通常用于实现循环次数已知情况下的循环结构)SCAN-ENDSCAN语句格式:SCAN卜范围>][FOR<条件1>][WHERE(条件2>]〈循环体〉ENDSCAN功能:该循环语句一般用于处理表中记录,语句可指明需要处理的记录范围及应满足的条件。执行该语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令。.3多模块程序模块是一个相对独立的程序段,它可以被其他模块调用,也可以调用其他模块。通常,把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。应用程序一般都是多模块程序,包含多个程序模块。考点6模块的定义和调用1模块的定义在VisualFoxPro中,模块可以是命令文件,也可以是过程。过程定义的语句格式为:PROCEDUREFUNCTION〈过程名〉〈命令序列》[RETURN卜表达式刁][ENDPROCIENDFUNC]功能说明如下。(1)PROCEDURE|FUNCTION命令表示一个过程的开始,并命名过程。过程名必须以字母或下划线开头,可以包含数字、字母和下划线。(2)当程序执行到RETURN命令时,控制将转回到调用处(或命令窗口),并返回表达式的值。若默认RETURN命令,系统将在过程结束处自动调用一条隐含的RETURN命令。(3)ENDPROC|ENDFUNC命令表示一个过程的结束。如果默认此语句,那么过程结束于下一条PROCEDURE|FUNCTION命令或文件尾。2模块的调用模块调用的格式有两种。(1)使用DO命令,格式如下。DO<文件名>|〈过程名〉(2)在名字后加一对小括号,格式如下。〈文件名〉|〈过程名>()3打开过程文件命令格式如下。SETPROCEDURETO卜过程文件1>[,〈过程文件2>,…"ADDITIVE]4关闭过程文件命令格式如下。RELEASEPROCEDURE〈过程文件1>[,〈过程文件2>,…]考点7参数传递模块程序可以接收调用程序传递过来的参数。(l)PARAMETERSv形参变量1>[,<形参变量2>,…]。(2)LPARAMETERS<形参变量1>[,<形参变量2>,…]。说明PARAMETERS声明的形参被看做是模块程序中建立的私有变量,LPARAMETERS声明的形参被看做是模块程序中建立的局部变量。除此之外,两条命令无其他区别。不管是PARAMETERS或LPARAMETERS,都应该是模块程序的第一条可执行命令。(1)调用参数调用模块程序参数的格式如下。D0<文件名>|〈过程名〉WITH<实参1>[,<实参2>,…]〈文件名〉|〈过程名〉(〈实参1>[,<实参2>,…])说明:实参可以是常量、变量或一般表达式,调用模块程序时,形参的数目不能少于实参的数目,当形参数目多于实参数目时,多余的形参取初值逻辑假(2)参数的传递。模块中参数的传递分为两种:按值传递(实参一般为常量和表达式)和引用传递(实参一般为变量)。参数的传递方式可以重新设置,格式如下。SETUDFPARMSTOVALUE|REFERENCE考点8变量的作用域变量的一个重:要属性是作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在VisualFoxPro中,可分为公共变量、私有变量和局部变量3类。1.公共变量在任何模块中都可使用的变量称为公共变量,公共变量必须先定义后使用,格式如下。PUBL1C<内存变量表〉说明:该命令是建立公共的内存变量,并赋以初值逻辑假.F.o建立好的公共变量一直有效,即使程序结束返回命令窗口也不会消失,只有执行CLEARMEMORY,RELEASE或QUIT等命令后,才能被释放。2私有变量在程序中直接使用(没有预先声明),而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。3局部变量局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。程序结束时,自动释放局部变量。格式如下LOCALv内存变量表〉说明:该变量同样给建立的内存变量赋以初值逻辑假.F.,也必须先定义后使用。当子程序中定义的变量名与主程序中同名时,为避免子程序中的变量值改变主程序中的变量值,可在子程序中使用PRIVATE命令隐藏主程序中可能存在的变量,使这些变量在子程序中暂时无效。格式如下。(1)PRIVATE<内存变量表(2)PRIVATEALL[LIKE<通酉已符>|EXCEPT〈通酉己符>]。说明:该命令并不建立内存变量,它只是隐藏指定的在上层模块中可能已经存在的内存变量,但是当模块程序返回到上层模块时,被隐藏的变量就自动恢复有效性,保持原值。7.4程序调试考点9调试器环境程序调试是指在发现程序有错误的情况下,确定HI错位置并纠正错误。计算机一般能够发现程序的出错位置,但对于计算机不能发现的错误,只能由用户自己来查错。VisualFoxPro提供的功能强大的调试工具一调试器,可帮助我们进行这项工作。调用调试器的方法一般有两种。⑴选择“工具”菜单中的“调试器”命令。(2)在命令窗口中输入DEBUG命令。考点10设置断点可以设置以下4种类型的断点。(1)在定位处中断:可指定一行代码,当程序调试执行到该行时,中断程序运行。(2)如果表达式值为真,则在定位处中断:指定一行代码及一个表达式,当程序调试执行到该行代码时,如果表达式值为真,就中断程序运行。(3)当表达式值为真时中断:可以指定一个表达式,在程序调试执行过程中,当该表达式值为逻辑真.T.时,中断程序运行。(4)当表达式值改变时中断:可以指定一个表达式,在程序调试执行过程中,当该表达式值改变时,中断程序运行。考点11“调试”菜单“调试”菜单包含执行程序、选择执行方式、终止程序执行、修改程序,以及调整程序执行速度等命令。各命令具体功能如下。(1)运行:执行在跟踪窗口中打开的程序:(2)继续执行:当程序被中断时,该命令可使程序在中断处继续往下执行。(3)取消:终止程序的调试执行,并关闭程序。(4)定位修改:终止程序的调试执行,然后在文本编辑窗口中打开调试程序。(5)跳出:以连续方式而非单步方式继续执行被调用模块程序中的代码,然后在调用程序的调用语句的下一行处中断。(6)单步:单步执行下一行代码。如果下一行代码调用了过程或者方法程序,那么该过程或者方法程序在后台执行。(7)单步跟踪:单步执行下一行代码。(8)运行到光标处:从当前位置执行代码直至光标处中断。(9)调速:打开“调整运行速度''对话框,设置两代码行执行之间的延迟秒数。(10)设置下一条语句:程序中断时选择该命令,可使光标所在行成为恢复执行后要执行的语句。6.1查询考点1查询设计器1查询的概念查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果。查询以扩展名为QPR的文件保存在磁盘上的,这是一个文本文件,它的主体是SQLSELECT语句。2查询的建立建立查询可以使用“查询设计器”,但它的基础是SQLSELECT语句。建立查询的方法有以下几个方面。⑴可以利用CREATEQUERY命令打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场调研进展确认函20264篇
- 软件开发工程师软件产品开发与功能完善度绩效评定表
- 高校实验室设备维护保养周期管理指南
- 供应商场地考察行程具体安排函(5篇范文)
- 商业租赁合同撰写规范与实例
- 产品退货处理通知函4篇
- 技术研发与创新能力考核表
- 二年级语文上册部编版《场景歌》
- 项目经理工作资源绩效衡量表
- 餐饮连锁店菜单设计规范指南
- 2026年1月江苏省高中学业水平合格考数学试卷(含答案)
- 大学生消防安全教育课件
- 新苏教版科学五年级上册第8课《材料的传热本领》教学课件
- 学校中层竞聘情景面试试题库及答案
- 国开2026年秋《公共行政学》形考任务1-3答案
- 2026年《中国下肢深静脉血栓诊疗临床指南(2026版)》
- 美国白宫 科学:一个新的黄金时代 致总统的报告
- 新版小学英语新外研版(三起)五年级上册全册教案(2026秋)合集
- 有限空间作业安全2026年培训
- CSCO胰腺癌诊疗指南(2026版)
- 2026上半年软考软件设计师考试真题及答案解析
评论
0/150
提交评论