VFP复习讲义5
- 格式:ppt
- 大小:382.00 KB
- 文档页数:33
二、表结构的修改6、删除字段的有效性规则命令格式:(1)删除规则和信息alter table 表名;Alter 字段名;Drop check(2)删除默认值alter table 表名;Alter 字段名;Drop default7、建立候选索引命令格式:alter table 表名;add unique 索引表达式tag 索引名8、删除候选索引命令格式:alter table 表名;Drop unique tag 索引名第二节数据操作功能(表记录的修改)一、增加记录---insert into1、给表全部字段增加一条记录命令格式:insert into 表名value(记录内容,用分隔符,隔开)2、给表部分字段增加一条记录命令格式:insert into 表名(字段名)values(字段值) 3、从数组中给表追加记录命令格式:Insert into 表名from array 数组名二、删除记录(1)逻辑删除全部记录命令格式:delete from 表名(补充:恢复:recall all)(2)逻辑删除符合条件的记录命令格式:delete from 表名where 条件三、修改记录(update)(1)给表全部替换记录命令格式:Update 表名set 字段=表达式(2)替换符合条件的记录命令格式:Update 表名set 字段=表达式; where 条件第三节数据查询一、简单查询(select)--内容和条件都来自于同一张表。
1、查询表中部分字段的值命令格式:select 字段名from 表名例:查询学生表中学生姓名补充:去掉重复值命令格式:select distinct 字段名from 表名2、查询表中全部字段的值(1)命令格式:Select 字段1,字段2(全部字段,中间用,隔开)from 表名(2)采用通配符*来代替全部字段命令格式:Select * from 表名3、带条件的查询---where命令格式:select 字段名from 表名where 条件4、带排序的查询---order by命令格式:Select 字段名(*)from 表名order by 排序字段desc(降序)5、简单计算的查询Count( )---统计记录的个数Sum( )---求和Max( )---最大值Min( )---最小值Avg( )---平均数命令格式:Select count(*) as 查询结果名(自定义)from 表名6、分组查询---group by题目特征:每个、每门、各个等出现了“汇总”意图时,采用分组查询命令格式:Select 字段名from 表名group by 分组字段二、嵌套查询和连接查询(已建立联系)1、嵌套查询特点:查询的内容来自于一张表,涉及的条件是另外一张表,并且这两张表有公共字段。
五、chap05程序设计基础(5.1-5.2)1.程序描述方式包括:面向过程编程(OPP)和面向对象编程(OOP)2.结构化程序概述(1)打开程序窗口(命令窗口):modify command(2)新建或编辑程序(命令窗口):modify command 程序文件名(3)运行程序(命令窗口): DO 程序名[WITH 参数列表](4)程序文件:程序文件扩展名为.PRG;运行时生成”伪编译”程序(FXP)3.基本结构(1)顺序结构①输入语句:ACCEPT [<提示符>] TO <内存变量> &&从键盘输入文本到指定内存变量中②输入语句:INPUT[<提示符>] TO <内存变量> &&从键盘输入数值、日期到指定内存变量中③输出提示语句:WAIT WINDOWS<提示符> &&屏幕显示提示信息(2)分支结构①单分支语句:IF <条件表达式>。
ENDIF②双分支语句:IF <条件表达式><语句组1>ELSE &&&&必须单独一行,否则就犯语法错误<语句组2>ENDIF &&end和if之间不能加空格注意:IF和ENDIF必须成对出现③多分支语句:DO CASE。
ENDCASE(3)循环结构①“计数”型循环(已知循环次数)【语句格式】FOR <循环变量>=<初值> TO <终值> [STEP <步长>]<循环语句组>ENDFOR|NEXT②DO WHILE 循环语句(未知循环次数)【语句格式】DO WHILE <条件表达式><循环语句组>ENDDO*DO WHILE循环结构中,必须确保循环体执行有限次后,条件表达式的值为.F.,否则会造成“死循环”(即无限地执行循环体语句)。
注:1.本资料是课本重点知识点的凝结,一定会有很多的疏漏之处,用运此资料主要是帮助梳理知识点,掌握知识点。
因此用此资料进行VFP二级考试得到优秀基本不可能。
在本资料全部掌握会背的情况下考一个合格还是有可能的。
2.本资料中所有出现的用草绿色的注释全部非原资料所有。
是我个人的经验而已。
希望还是将资料全部看掉。
不要只是局限于我所写的要求记忆的部分。
第一章数据库系统基础知识1.1 数据库系统概述1. 数据处理数据:是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。
它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图像等。
数据处理:是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。
包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。
2. 数据库系统(1) 数据库(DataBase)定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。
特点: 具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好(2)数据库管理系统(DataBase Management System)定义:是操纵和管理数据库的系统软件。
Visual FoxPro 属于一种关系型数据库管理系统。
数据语言:数据定义语言(DDL):用来建立所需的数据库。
数据操作语言(DML):用来对数据库进行查询和维护操作。
关系型数据库使用的标准语言是结构化查询语言(Structured Query Language,SQL)。
(3)数据库系统(DataBase System)定义: 是以数据库应用为基础的计算机系统。
组成:数据库硬件(计算机硬件设备)软件(数据库管理系统、操作系统)用户(应用程序设计员、终端用户、数据库管理员)分类:层次型数据库、网状型数据库、关系型数据库分代:第一代非关系型数据库系统,60年代末问世,包括层次型和网状型。
全国计算机等级考试二级VFP培训谢利东培训概况培训对象:XXX部员工培训内容:全国计算机等级考试(NCRE)二级VFP培训时间:15天目录第一阶段考点串讲 (2)第1章数据结构与算法 (2)第2章程序设计 (4)第3章软件工程基础 (5)第4章数据库设计基础 (7)第5章VFP基础知识 (10)第6章数据库基本操作 (15)第7章SQL (20)第8章报表设计、菜单设计、表单设计及程序设计 (27)第二阶段练习提高及实战总结 (32)第一阶段考点串讲第1章数据结构与算法考试重点:算法定义、数据结构定义、栈和树分值预测:10分考试题型:选择、填空考点:(附:分值预测原理:试题库中,试题内容+附加信息(难度、权重、标志……)通过若干试卷比照分析,可大致推测出附加信息)一、算法定义:求解问题的方法、解题方案的描述特性:(1)有穷性(注:不是无穷性);(2)确定性(3)可行性(4)拥有足够的情报或(4)0个或多个输入;(5)1个或多个输出复杂度:时间复杂度--指令执行的次数次数空间复杂度--指令的条数条数二、数据结构数据结构的内容:逻辑结构定义:又称为外部结构,反映数据间的逻辑关系特点:与数据存储无关类型:线性如同排队特点是除第1个元素外,其他元素都有一个前驱除最后1个元素外,其他元素都有一个后继非线性如同部队的层次管理可能有多个前驱和多个后继存储结构定义:又称为物理结构,逻辑结构在计算机中的表示特点:一个逻辑结构可有多种存储结构,会影响数据处理的效率类型:顺序映射、链式映射、索引映射、散列映射数据操作三、常用数据结构1、线性表定义:最常用的一种数据结构特点:具有线性逻辑结构的特点长度可变(L>=0,长度为0称为空表)顺序存储结构:特点:存储空间连续随机存取插入-删除效率低链式存储结构:特点:存储空间不连续顺序存取插入-删除效率高形式:单链表--加入头结点,便于运算(如同让第一名士兵举旗示意队伍开头)循环链表双向链表注:“有序线性表”如何理解?线性表:线性逻辑结构,线性即“顺序性”,这里的顺序是指除第1个外所有元素有前驱,最后1个外所有元素有后继,如同士兵站成一排,只要站成一排即可,不分高矮有序线性表:士兵站成一排,并且按高矮顺序排队2、栈和队列概念:栈和队列一种特殊的线性表特点:栈--先进后出(先出后进)如同箱子存取队列--先进先出如同羽毛球筒存取3、树定义:是一种非线性结构,如同部队的层次管理特点:有且仅有一个根结点相关术语:结点:包含若干子树分支的元素度:子树分支的数目叶子:度为0的结点,如同战士深度:树的层数二叉树定义:每个结点至多具有两棵子树性质:性质1:在第i层上至多有2^(i-1)个结点性质2:深度为k,至多有2^k-1个结点性质3:叶子结点数=度为2的结点数+1顺序存储结构链式存储结构遍历:定义:每个结点都访问一次类型:先序遍历--中左右中序遍历--左中右后序遍历--左右中四、常用算法查找:顺序查找:长为n的线性表,最坏情况下需比较n次二分查找:只能查找顺序存储的有序线性表排序:直接插入排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次冒泡排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次快速排序:长为n的线性表,最坏情况下需比较n*(n-1)/2 次第2章程序设计考试重点:结构化程序设计、面向对象的程序设计分值预测:4分+2分(2分是第3章整合过来的)考试题型:选择(*)、填空考点:一、程序设计发展:机器语言--汇编语言--面向过程--面向对象(结构化程序设计)风格:标识符命名:不能用关键字;见名知义;不能以数字开头;注释:序言性注释--模块说明、接口说明、数据描述源程序文档化:功能性注释--程序段功能、语句功能、数据状态编辑风格数据说明语句结构输入和输出二、结构化程序设计提出:“软件危机”--强调程序的易读性(易理解)整齐划一概念:采用自顶向下、逐步求精的策略,使用顺序、选择、循环三种控制结构实现单入口、单出口的程序基本控制结构:顺序、选择、循环设计原则(设计要点、设计特征、设计方法):自顶向下,逐步求精模块化限制使用goto语句一个程序只有一个入口和一个出口三、面向对象的程序设计基本思想:“软件危机”---运用人类的自然思维基本特征:类:定义:是对具有相似结构和行为的对象的抽象组成:属性+方法与对象的关系:类--抽象,对象--具体类是对象的抽象,对象是类的实例对象:定义:类的实例,属性和方法的封装体数据和数据操作的封装特征:静态特征--属性、动态特征---方法封装性:对象是对数据和操作的封装类内部信息对用户隐蔽,信息隐蔽通过封装实现软件内部实现和外部可访问性的分离继承性:多态性:消息:对象间的沟通靠消息第3章软件工程基础考试重点:基本概念、软件设计、软件测试分值预测:8分-2分(归入第2章)考试题型:选择(*)、填空考点:一、基本概念软件:一种逻辑实体,程序+数据+文档软件工程:提出:“软件危机”--应用工程化的方法开发软件基本思想:整个软件开发过程中,应用工程化原则软件生命周期(开发模型):问题定义可行性分析定义(计划)阶段需求分析-----------------------------------------------软件设计软件编码开发阶段软件测试-----------------------------------------------软件维护维护(运行维护)阶段-----------------------------------------------软件开发环境:一组软件工具的集合二、需求分析阶段功能:确定系统的功能“做什么”方法:结构化分析方法(SA)基本思想;分解+抽象常用工具:数据流图(DFD)、数据字典、判定树、判定表产品:软件需求规格说明书--合同、编程依据、验收依据三、软件设计1、功能:确定系统实现方案“如何做”2、重要性:决定软件质量的好坏和开发的成败3、步骤:(1)概要设计(总体设计)功能:确定模块及模块关系即软件系统总体结构图形工具:层次图、HIPO图、结构图方法:模块化:模块划分要求高内聚、低耦合(内聚、耦合是独立性的指标)结构化设计方法(SD)-将数据流图(变换型、事务型)映射为软件结构(2)详细设计(过程设计)功能:确定模块算法及数据结构图形工具:流程图、盒图(N-S图)、PAD图、PDL图方法:结构化程序设计方法(SP)--见第2章四、软件测试1、目的:发现错误检错(注:不是证明程序正确,无错)2、方法:(1)静态测试:静态结构分析、代码检查、代码质量度量(2)动态测试:白盒法(结构法)--考虑程序内部结构和处理过程,要过程,也要结果黑盒法(功能测试、数据驱动测试)--不考虑程序内部结构和处理过程,不管过程,只要结果(3)步骤:单元测试--发现编程错误,白盒为主,黑盒为辅,需设计驱动模块和桩模块集成测试--发现接口问题验证测试--软件功能是否与用户要求一致系统测试五、程序调试目的:纠错方法:静态调试动态调试:强行排错法、回溯法、原因排除法六、软件维护特点:持续时间最长、花费代价最大的一个阶段类型:改正性、适应性、完善性、预防性第4章数据库设计基础考试重点:基础知识、关系模型分值预测:8分+2分(教材第1章)考试题型:选择、填空考点:一、基础知识1、数据管理技术的发展:人工管理--文件系统--数据库系统2、计算机数据管理的发展:人工管理--文件系统--数据库系统--分布式数据库系统--面向对象数据库系统3、数据库系统(DBS)(1)定义:引进数据库技术后的计算机系统(2)特点:采用特定的数据模型数据独立性较高含义:数据结构(逻辑结构)、存储方法与应用程序独立指标:逻辑独立性--逻辑结构与应用程序相互独立物理独立性--存储的数据与应用程序相互独立实现数据共享,冗余较少(不等于没有冗余)统一的数据控制,便于扩展(3)根本目标:实现数据共享(4)数据库(DB)数据:数据库中存储的基本对象,包括两方面内容:描述事物特性的数据内容;存储在某种媒体上的数据形式;数据库:存储在计算机上、结构化的相关数据的集合,包括两方面内容:描述事物的数据本身;相关事物间的联系;特点:与数据库系统的特点相同(5)数据库管理系统(DBMS)概念:完成数据管理的系统软件地位:核心功能:数据定义、数据操作、运行和控制、建立和维护(6)数据库应用系统(DBAS)概念:面向特定应用的应用软件系统(7)数据库管理员(DBA)(8)用户(9)小结:DBS=DB+DBMS+DBAS+DBA -简化- DBS=DB+DBMS+DBASDBS是数据库系统,去掉一个S是数据库,加上一个M是管理,加上一个A是应用二、数据模型概念:对现实世界的模拟和抽象(如同模子)抽象过程:现实世界-----信息世界----机器世界(--加入数据--表/库)概念模型数据模型组成要素:数据结构、数据操作、完整性约束类型:概念模型定义:又称为信息模型特点:与计算机系统表示无关常用模型:实体联系模型数据模型定义:又称为基本数据模型、数据结构模型特点:面向数据库逻辑结构,与计算机表示相关常用模型:层次模型(树型)、网状模型、关系模型三、实体联系模型定义:又称为E-R模型E-R术语:实体:客观存在并有区别的事物如:张连长、王战士实体集:实体的集合如:连长、战士属性:实体的某种特性如:姓名、年龄联系:事物间的关联如:领导与被领导实体集联系的类型(*):一对一联系(1:1):连队和连长一对多联系(1:m):连队和战士多对多联系(m;n):战士和比武项目E-R图表示:实体集--矩形、属性--椭圆、联系--菱形小结:推断联系类型的技巧(1)1:1:连队(1)--连长(1)正看是1;1连长(1)--连队(1)反看是1:11:m:连队(1)--战士(m)正看是1;m战士(1)--连队(1)反看是1:1m:n:战士(1)--比武项目(m)正看是1;m比武项目(1)--战士(m)反看是1:m (2)绝大多数(80%)联系都是一对多联系四、关系模型定义:用二维表表示实体和实体间联系的模型关系术语:关系:二维表元组:记录,行属性:字段,列域:属性取值范围码(主码):码--关键字,主码--主关键字,唯一标识一个元组外部关键字关系模式:对关系的描述如:战士情况(编号,姓名,年龄)关系特点:关系必须规范化,每个属性不可再分割属性名必须唯一不允许有完全相同的元组,即冗余元组的次序、属性的次序无关紧要组成:数据结构:二维表数据操作:查询、插入、删除、修改完整性约束:实体完整性、域完整性、参照完整性、用户定义完整性操作:关系运算五、关系运算功能:实现数据操作需进行关系运算特点:关系运算(操作)的特点是集合运算(操作)关系运算的结果仍是一个关系内容:传统的集合运算:并、交、差:条件:两表R、S,两表结构一致(列一致,行数可不同)规则:并:R与S的记录合并在一起,去掉重复的记录交:既在R中,又在S中的记录差:在R中,但不在S中的记录结果:一张新表T,和原表(R、S)结构一致表达式:笛卡儿积:条件:两表R、S,两表结构可不一致(列可不一致,行数可不同)规则:R与S交错结果:一张新表T,和原表(R、S)结构不一致,新表的行数为两表行数的乘积表达式:专门的关系运算:选择:条件:一张表R规则:找出表中满足条件的所有记录(一行一行的找)结果:一张和原表(R)结构一致的新表投影:条件:一张表R规则:找出若干列组成新表(一列一列的找)结果:一张新表,列数可能少于原表(即结构可能不一致)连接:条件:两表R、S,两表结构部分一致(部分列一致)类型:等值连接:按字段值对应相等为条件进行的操作自然连结果:一张新表小结:“三表求运算”类题的解题技巧(1)只会考传统集合运算,不会考专门关系运算(2)先看参与运算的两表:如果参与运算的两表结构不一致,一定是笛卡儿积;(3)再看运算结果表:如果所得表的行数为两表行数的积,可能是笛卡儿积;否则一定不是笛卡儿积六、数据库设计重要性:数据库应用的核心设计步骤(应用软件工程的原理和方法):需求分析:功能:做什么工具:数据流图、数据字典产品:用户需求概念设计:功能:用户需求--概念模型(ER图)工具:数据流图、数据字典产品:概念模型(ER图)逻辑结构设计(*):功能:概念模型(ER图)--数据模型(关系模型)地位:数据模型是数据库设计的核心依据:规范化理论--解决数据冗余、插入\更新\删除异常产品:建立数据模型,形成逻辑模式(外模式)物理结构设计(*):功能:设计存储结构和存取方法产品:存储结构和存取方法(内模式)第5章VFP基础知识考试重点:常量(日期型)、内存变量(命令)、表达式、函数(字符)分值预测:14分-2分考试题型:笔试(选择、填空)参考章节:教材-第三章考点:一、Visual Foxpro简介系统特点:增强的项目与数据库管理提高应用程序开发的生产率互操作性和支持Internet充分利用已有数+据界面简介:菜单工具栏:默认情况下,界面包括常用、表单设计器工具栏显示区命令窗口状态栏工作方式:交互工作方式:菜单/工具栏、命令窗口输入命令自动化工作方式:利用生成器产生程序或编写命令文件文件类型:pjx:项目、pjt:项目备注、dbc:数据库、dct:数据库备注、dcx:数据库索引dbf:表、fpt:表备注scx:表单、sct:表单备注frx:报表、frt:报表备注mnx:菜单、mnt:菜单备注、mpr:生成的菜单程序、mpx:编译后的菜单程序qpr:查询程序、qpx:编译后的查询程序prg:程序app:生成的应用程序、exe:可执行程序cdx:复合索引二、常量定义:程序运行过程中值不改变的量类型:数值型、货币型、字符型、日期型、日期时间型表示:数值型:如12、3.14、0.15e10,三种表示--整数、小数、科学记数货币型:需加定界符$,保留4位小数,如$12.1234字符型:需加定界符""、''、[],如"RuiLi"、'RuiLi'、[RuiLi]日期型:传统格式:{10/21/08},只能在set strictdate to 0状态下使用,且受日期设置格式影响,需加定界符{},分隔符可以是“/ - 空格.”四种严格格式:{^2008/10/21},在set strictdate to 0 状态下也可使用,不受日期设置格式影响,需加定界符{^}日期时间型:{日期,时间}日期:与上述日期型表达相同时间:表示为时:分:秒am/pm,如11:30:00 am,其中am表示上午,pm 表示下午逻辑型:真--.T.、.t.、.Y.、.y. 表示对、是,需加定界符..假--.F.、.f.、.N.、.n. 表示错、非,需加定界符..日期格式设置:set strictdate to 0 --不进行严格日期检查{08/14/04}:对的{^2004/08/14}:对的1 --严格日期检查{08/14/04}:错的{^2004/08/14}:对的2 --严格日期检查,对ctod(),ctot()的格式也有效set mark to "." --设置分隔符为. 即显示为08.14.04,与输入无关,只与显示有关set mark to --恢复系统默认设置,系统默认显示为/此命令相当于:工具/选项/区域-日期分隔符set date to 短语/格式--设置日期输入、显示格式,与输入、显示均有关短语/格式列表见P56例如:set date to ymd--则显示为年/月/日04/08/14此命令相当于:工具/选项/区域-日期格式set century on--显示世纪,即{08/14/04}显示为08/14/2004off--不显示世纪,即{08/14/04}显示为08/14/04三、变量定义:运行过程中值会改变的量类型:字段变量内存变量:简单的内存变量、数组字段变量:定义:表中的字段名特点:字段名就是变量名,字段值就是变量值,数据类型与字段类型一致引用:例如,学生(编号,姓名……)?编号,姓名当内存变量和字段变量重名时:?编号,姓名--字段变量? m.编号,m->姓名--内存变量-}+-简单的内存变量:定义:存储在内存中的数据数据类型:字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)日期时间型(T)声明(定义):直接使用,无需声明,数据类型由存储的值决定引用:使用变量名,如:x赋值:格式1:x=12,y=1.34 --只能对1个变量赋值格式2: store 12 to x,y--可对多个变量赋相同的值,相当于x=12,y=12 显示值:? x --换行后显示?? x--当前行显示(不换行)显示变量信息:list memory --显示不完时自动滚动display memory --显示不完时暂停清除内存变量:release x,y--清除指定的变量,清除后不能再引用release all/release memory--清除所有数组:定义:存储在内存空间上的一组数据声明(定义):格式1:dimension x(5),y(3,4)格式2:declare x(5),y(3,4)引用:x(1)、y(2,3)或y(7)赋值:单个元素赋值x(1)=16,y(2,3)=16或y(7)=16整个数组赋值store 10 to x,y默认值为.F. ,元素存放的值的数据类型可不一致显示值:? x(1),y(2,3),y(7)转换:表记录--数组:scatter 编号,姓名to x数组--表记录:gather from x四、表达式定义:由常量、变量、函数通过运算符连接起来的式子类型:数值表达式、字符表达式、日期时间表达式、关系表达式数值表达式:运算符:()、**或^、*、/、%、+、-运算结果:数值型规则:%字符表达式:运算符:+、-运算结果:字符型规则:“瑞丽”+“你好”--“瑞丽你好” 首尾相连,不删空格“瑞丽”-“你好”--“瑞丽你好” 首尾相连,删空格日期时间表达式:运算符:+、-运算结果:数值型或日期时间型形式:{^2008-08-10}+2 或2+{^2008-08-10}:{^2008-08-12}{^2008-08-10}-2 :{^2008-08-08}{^2008-08-10}-{^2008-08-08} :2{^2008-08-10,10:00:00}+10 或10+{^2008-08-10,10:00:00}:{^2008-08-10,10:00:10} {^2008-08-10,10:00:00}-10 :{^2008-08-10,09:59:50} {^2008-08-10,10:00:00}-{^2008-08-10,09:59:50}: 10规则:日期加整数x,后推x天,结果为日期型日期时间加整数x,后推x秒,结果为日期时间型日期减整数x,前推x天,结果为日期型日期时间减整数x,前推x秒,结果为日期时间型日期相减,相差的天数,结果为数值型(日期不能相加)日期时间相减,相差的秒数,结果为数值型(日期时间不能相加)----日期运算是“天”的运算日期时间运算是“秒”的运算关系表达式:运算符:<、<=、>、>=、=、<>或!=或#等于不等于字符串专用:==、$形式及规则:数值型:按值大小货币型:按值大小日期时间型比较:相当于数值比较(记时起点)逻辑型:.T.相当于1、.F.相当于0字符比较:排序:<、> :空格< 大写字母< 小写字母32 65、66……97、98、……相等比较:== 精确比较,完全相同(包括空格)才相等= 一般比较,受set exact on/off的影响set exact on:短字符加空格,等长后比较set exact off:右字符串在左字符串中出现即为真子串包含:x$y:x在y中出现过,为.T.x在y中没有出现过,为.F.注意:= (set exact off)检测的是右在左$ 检测的是左在右运算结果:逻辑型五、函数(考纲要求53个)数值函数:int(x) :求整,如int(3.14) 返回3字符函数:len(str): 串长,如str="abcd",返回4space(n):产生空格,如space(4),返回4个空格trim(str):去掉str尾部空格,如str="abc ",返回"abc"at(str1,str2,n):str1在str2中第n次出现的位置,n可省,如at("ab","abcdABefab",2),返回9atc(str1,str2,n):功能同上,只是不区分大小写如atc("ab","abcdABefab",2),返回5left(str,n):从str左端开始取出n个字符如left("abcd",2),返回"ab"substr(str,m,n):从str中第m个字符开始处取出n个字符,若省n,则全部取完如substr("abcde",2,2)返回"bc",而substr("abcde",2)返回bcdelike(str1,str2):str1与str2比较,若对应字符相同则为真,str1可含通配符通配符:*代表任意多个字符,?代表1个字符如like("abcd*","abcdef")返回真like("abcd?","abcdef")返回假日期时间函数:date():当前日期time():当前时间datetime():当前日期及时间year(dt):求年,如dt={^2008-10-21} 返回2008 或08 受set century on影响month(dt):求月,如dt={^2008-10-21} 返回10day(dt):求日,如dt={^2008-10-21} 返回21转换函数:数值--字符串:str(n,m,t) n为数字,m为长度,t为小数位数,m、t可省如str(3.14)返回"3.14"字符串--数值:val(str) str为字符串如val("123ab456")返回123,后半部分不会转日期时间--字符串:dtoc(dt,1)如dtoc({^2008/10/21}),结果不定,受set date to、set centuryon/off的影响而dtoc({^2008/10/21},1)固定格式,返回"20081021"共8个字符字符串--日期:ctod(str)如ctod("08/10/21"),结果不定,受set century on/off的影响测试函数:isnull(exp):判断exp的结果是否为空值(null)如isnull(.null.)返回真,isnull(" ")返回假(空格不等于空值) empty(exp):判断exp的结果是否为“空”,空的标准见P76如empty(.null.)返回假,empty(" ")返回真vartype(exp):判断exp的数据类型如vartype(exp),若exp=10返回N,若exp="abc"返回C宏替换:&: 如职工表中有字段“姓名”,使name="姓名"则? name,&name 显示的是:姓名张三(表中的记录)第6章数据库基本操作笔试重点:数据库表操作、索引、完整性笔试分值预测:14分笔试题型:选择、填空机试重点:建项目,库入项目;建库,自由表入库;建表;建索引(主、候选、普通);建永久联系;修改表内容(可能会与SQL结合)修改表结构:增加字段、设置默认值机试题型:基本操作题简单应用题(部分出现)一、VFP数据库的管理层次项目:相当于住宿小区,由若干幢楼组成||数据库:相当于每一幢楼||表:相当于一幢楼的每一层查询、视图相当于楼层分布图菜单、表单及程序代码相当于电梯报表相当于简介二、创建1、创建项目文件/新建---选类型为“项目”--新建文件--选择保存路径、项目名--项目管理器2、创建数据库项管/数据--单击“数据库”节点--新建--新建数据库--选路径、输库名--数据库设计器3、创建表数据库设计器中右键/新建表--新建表--选路径、输表名--表设计器4、设计表所有操作均在表设计器中完成设计字段:字段名、字段类型、宽度(小数位数)显示组框:输入掩码、标题、显示格式注释:对字段的解释说明设计索引(见后)设计数据完整性(见后)5、录入内容所录数据仅供测试,正式数据一般是通过表单录入的三、浏览表内容项管中选择相应的表,单击“浏览”数据库设计器中相应表上右键\浏览四、维护1、维护项目--项管打开项管:打开项目会自动打开项管,方法是“文件/打开-选路径、选类型、单击项目名”库入项目:项管\数据--单击“数据库”节点--添加--选定要加入的数据库完成后,项管中显示出添加的数据库库出项目:项管\数据--单击“数据库”节点--选定要移出的数据库--移出2、维护数据库--数据库设计器打开数据库设计器:项管\数据--单击选择相应的数据库--修改表入库:数据库设计器中右键\添加--选择要加入的表表出库:数据库设计器中,右击相应的表--删除3、维护数据库表--表设计器(修改表结构)打开表设计器:项管\数据--单击选择相应的数据库表--修改数据库设计器中,右击相应的表--修改修改表结构:增加字段删除字段修改字段:字段名、宽度、字段类型修改索引修改数据完整性4、维护数据库表--浏览器(修改表内容)打开表浏览器:项管\数据-单击选择相应的数据库表-浏览数据库设计器中,右击相应的表-浏览修改表内容:定位:鼠标定位:单击相应记录的字段,状态栏会显示出当前记录号m / n表\转到记录:第一个、最后一个、下一个、上一个、记录号增加:表\追加新记录:在最后一条记录后追加新记录,输入内容即可表\追加记录:从另一个表中导入数据修改:直接修改删除:概念:逻辑删除--加删除标记,可恢复(放入回收站)物理删除--彻底删除,不可恢复(清空回收站)vfp命令、SQL Delete 语句都是逻辑删除方法:逻辑删除:单击记录前的删除块,可加标记或撤标记表\切换删除标记物理删除:表\彻底删除,将删除所有打了标记的记录五、设计索引概念:索引就是排序,是逻辑排序,不改变记录的物理顺序,索引文件和表文件是分开存放的目的:主要目的是提高查询速度,但会降低增、删、改的速度类型:主索引:即主关键字,字段值不能重复,一个表只能有一个主索引候选索引:即候选关键字,字段值不能重复,一个表可以有多个候选索引普通索引:字段值可以重复,一个表可以有多个普通索引唯一索引:字段值可以重复,一个表可以有多个唯一索引(注:主索引和候选索引除了排序外,还有其他功能,但普通索引就只起排序作用,目的就是提高查询速度)组织形式:非结构单索引、结构复合索引(cdx)、非结构复合索引创建:打开表设计器“索引”页面中设计索引选项:“索引名”:可以任定“类型”:选择索引类型“表达式”:不可以任定,必须是字段表达式,可用生成器生成“排序”:选择升序或降序修改:打开表设计器修改索引名、类型、表达式、排序删除:打开表设计器选择相应的索引,单击删除打开:打开表时会自动打开两表间建联系:基本概念:联系、联系的类型创建:(1)确定父表和子表,联系类型、联系字段、索引字段(即联系字段)联系类型父表子表1:1 主索引主索引1:m 主索引普通索引(外部关键字)(2)根据规则,在父表和子表中分别建好索引(3)打开数据库设计器,将父表中的连接字段拖放到子表中的连接字段上即可,此时会出现连接线,在连接线上右键/编辑关系可查看联系类型六、数据完整性1、实体完整性概念:保证记录唯一,不允许重复实现:建立主索引或候选索引2、域完整性概念:定义字段的取值范围实现:均在表设计器中完成(1)字段类型、宽度。
VFP复习(yo由老师课件改版,不转载别后悔哟)考试题型判断10(10道)选择20(10道)填空10(5空)简答20(5道)程序分析12(3道)编程7(1道)SQL语言21(6道)教材目录1、Visual FoxPro基础2、Visual FoxPro编程基础3、Visual FoxPro编程工具与编程步骤4、赋值与输入/输出5、选择结构程序设计6、循环结构程序设计7、数组8、自定义属性与自定义方法9、表单集与多重表单10、菜单与工具栏11、数据表12、数据库和多表操作13、查询与视图14、关系数据库标准语言SQL15、报表第一章一、数据库的基本概念1、数据、数据处理、数据模型(层次模型、网状模型、关系模型)、实体之间的关系(一对一,一对多,多对多)关系=二维表,关系中的术语:字段(属性)、记录(元组)、域、主关键字(候选关键字)、外部关键字2、数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)、数据库应用系统(DBAS)的关系;3、Visual FoxPro是一个32位的使用关系模型的数据库管理系统。
二、Visual FoxPro的概述VFP的发展;VFP的窗口介绍:启动、退出、界面(标题栏、菜单栏、状态栏、主窗口、工具栏、命令窗口)VFP的系统环境设置:“工具”-“选项”,文件默认位置、区域、表单、数据VFP的工作方式:交互式(菜单、命令)和程序方式VFP提供的工具:向导、设计器、生成器三、命令的书写规则1每—命令必须以命令动词开头;2命令动词后面的命令短语可按任意顺序排列,短语之间用空格分隔,空格数任意;3命令一行书写不下时,可以换行,并在分行处加上分号“;”;所有符号都是英文状态下的半角符号;4每行只能书写一条命令;5所有命令和函数均可只写前4个字符,且不分大小写;6—行命令结束后,用Enter键确认并执行,可重复执行。
第二章一、语言基础1、数据类型(13种):类型名称,简写,字节长度;哪些是基本类型,哪些用于表;2、常量与变量:6种基本类型的常量表示变量如何命名和赋值3、表达式与运算符:6种类型的表达式以及运算符4、函数:常用函数的参数、返回值类型1、数据类型13种基本数据类型:可用于字段变量,常量、内存变量、表达式的类型,有:字符型(C,注意英文1位和中文2位,最长254)数值型(N,注意小数点和正负号,最长20)、货币型(Y,注意小数位只有4位,定长8)、日期型(D,定长8位)日期时间型(T,定长8位)逻辑型(L,定长1位)1、数据类型13种其余用于表的数据类型有:浮点型(F,20)、双精度型(B,8)、整型(I,4)、备注型(M,4)、通用型(G,4):备注文件(.fpt)二进制字符型C、二进制备注型M1,常量字符型:“”,‘’,[]数值型:e,-,+,.货币型:$日期型:{^ },连字符可以是/ -,用set mark to改日期时间型:{^ :a|p} ,日期顺序set date to逻辑型: .T.2、变量值可能会发生变化的量,变量是内存中的一个存储单元的位置变量的类型:分为字段变量、内存变量、数组变量和系统变量4种命名规则由数字、字母、汉字、下划线组成只能以字母或下划线开头,不可以包含空格长度1~128字符(自由表的字段名、表的索引标识名长度最多为10个字符) 避免使用VFP的保留字2、变量变量的赋值格式1:变量名=<表达式>格式2:store <表达式> to 变量名1,变量名2,…格式3:INPUT “提示” TO <变量名>内存变量的作用范围LOCAL 指定的变量为局部变量PRIVATE 私有变量PUBLIC 全局变量3数组变量数组:一组内存变量的集合Vfp只能定义一维数组和二维数组声明方式:Public、Local 、{declare/dimension}<数组名>(行数[,列数])例:dime a(4),b(2,3)特点 1)数组各个元素的默认值为.F.2)下标计数从1开始,每个元素可以不是同一类型。