首页 【内部资料】江苏二级vfp要点,复习完一遍过

【内部资料】江苏二级vfp要点,复习完一遍过

举报
开通vip

【内部资料】江苏二级vfp要点,复习完一遍过【内部资料】江苏二级vfp要点,复习完一遍过 江苏二级vfp 第一章 数据库系统基础知识 (复习要点) 第一章 数据库系统基础知识 1.1 数据库系统概述 1. 数据处理 数据: 是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。 它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。 数据处理: 是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。 包括:收...

【内部资料】江苏二级vfp要点,复习完一遍过
【内部资料】江苏二级vfp要点,复习完一遍过 江苏二级vfp 第一章 数据库系统基础知识 (复习要点) 第一章 数据库系统基础知识 1.1 数据库系统概述 1. 数据处理 数据: 是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。 它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。 数据处理: 是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。 包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。 2. 数据库系统 (1) 数据库(DataBase) 定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。 特点: 具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好 (2)数据库管理系统(DataBase Management System) 定义: 是操纵和管理数据库的系统软件。Visual FoxPro 属于一种关系型数据库管理系统。 数据语言: 数据定义语言(DDL): 用来建立所需的数据库。 数据操作语言(DML): 用来对数据库进行查询和维护操作。 关系型数据库使用的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 语言是结构化查询语言(Structured Query Language, SQL)。 (3)数据库系统(DataBase System) 定义: 是以数据库应用为基础的计算机系统。 组成: 数据库 硬件(计算机硬件设备) 软件(数据库管理系统 、操作系统) 用户(应用程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 员、终端用户、数据库管理员 ) 分类:层次型数据库、网状型数据库、关系型数据库 分代:第一代 非关系型数据库系统,60年代末问世,包括层次型和网状型。 第二代 关系型数据库系统(RDBS),70年代中期问世。 第三代 对象-关系数据库系统(ORDBS 、OOBDS),80年代中期至今。 上述三个概念之间的联系:在数据库系统中通过数据库管理系统来建立和使用数据库。 3(关系模型 三个领域: 现实世界?事物(对象、性质) 观念世界?实体(对象、属性) 数据世界?数据(记录、字段) 实体模型:即反映事物联系的实体。 数据模型:即描述实体模型的数据。 数据模型的分类: 层次模型(采用树型结构) 网络模型(采用无向图型结构) 关系模型(采用二维表结构) 关系模型的性质: 第 1 页 共 71 页 江苏二级vfp 二维表的记录数随数据的增加而改变,但其字段数是相对固定的;二维表中的每一列均有唯一的字段名;二维表中不允许出现完全相同的两行二维表中行的顺序、列的顺序均可以任意交换。 二维表的主关键字: 超关键字: 能唯一确定记录的一列或几列的组合 候选关键字:最简练的超关键字 主关键字: 候选关键字中的一个 外部关键字:当A表的主关键字被包含到B表中时,则称A表的主关键字为B表的外部关键字。 4. 微机关系型数据库系统的发展 关系型数据库: 即根据表、记录和字段之间的关系进行组织和访问的一种数据库。 名 称运行环境公司名称发布时间 dBASE, dBASE?, dBASE?,dBASE? PLUS, dBASEDOSAshton-Tate FoxBASE 1.0DOSFox软件公司1987.2 FoxBASE + (2.00/2.10)DOSFox软件公司87.7/88.7 FoxPro 1.0DOSFox软件公司1989 FoxPro 2.0DOSFox软件公司1991 FoxPro 2.5DOS 、 WINDOWS 3.x微软公司1993.1 FoxPro 2.6DOS 、 Windows 3.x微软公司1994 Visual FoxPro 3.0Windows 3.X微软公司1996.1 Visual FoxPro 5.0Windows 95微软公司1997.2 Visual FoxPro 6.0Windows 98微软公司1998.1 1(2 Visual FoxPro 6.0概述 1. VFP6.0的特点 完善了关系型数据库的概念,采用了Rushmore技术,引入了SQL命令;支持多种数据交换格式;采用了可视化的面向对象的程序设计方式;提供了功能完善的集成环境和丰富的开发工具。 2. VFP6.0的用户界面 [图例] 界面基本组成:标题栏、主菜单栏、工具栏、主窗口、命令窗口、状态栏 系统工具一览表 各种菜单各种工具栏各种窗口各种设计器各种生成器各种向导 文件菜单常用工具栏命令窗口数据库设计器文本框生成器表向导 编辑菜单表单控制工具栏浏览窗口表设计器组合框生成器交叉表向导 显示菜单布局工具栏代码窗口表单设计器命令组生成器查询向导 格式菜单调色板工具栏调试窗口菜单设计器编辑框生成器本地视图向导 工具菜单打印预览工具栏编辑窗口报表设计器表达式生成器表单向导 程序菜单报表控制工具栏查看窗口标签设计器表单生成器一对多表单向导 窗口菜单查询设计器工具栏跟踪窗口类设计器表格生成器报表向导 帮助菜单表单设计器工具栏属性窗口连接设计器列表框生成器一对多报表向导 菜单菜单报表设计器工具栏通用字段窗口查询和视图设计器参照完整性生成器标签向导 数据环境菜单数据库设计器工具栏远程视图向导 表单菜单项目管理器窗口数据环境设计器自动格式生成器邮件合并向导 项目菜单导入向导 查询菜单 选项组生成器图形向导 报表菜单 数据透视表向导 表菜单分组/总计报表向导 第 2 页 共 71 页 江苏二级vfp 数据库菜单 类菜单 3. VFP 6.0的工作方式 (1) 菜单操作方式 根据所需的操作从菜单中选择相应的命令(与WORD类似)。每执行一次菜单命令,命令窗口中一般 都会显示出与菜单对应的命令 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。 利用工具菜单中的向导可以很方便地完成常规任务。 (2) 命令交互方式 根据所要进行的各项操作,采用人机对话方式在命令窗口中按格式要求逐条输入所需命令,按回车 后,机器逐条执行。 (3) 程序执行方式 先在程序编辑窗口中编完程序,再从程序菜单中选择执行,或从命令窗口中输入DO 命令,让机器 执行。 4. VFP 6.0常用文件类型 VFP 6.0常用的文件扩展名及其关联的文件类型 扩展名文件类型扩展名文件类型 .app生成的应用程序.frx报表 .exe可执行程序.frt报表备注 .pjx项目.lbx标签 .pjt项目备注.lbt标签备注 .dbc数据库.prg程序 .dct数据库备注.fxp编译后的程序 .dcx数据库索引.err编译错误 .dbf表.mnx菜单 .fpt表备注.mnt菜单备注 .cdx复合索引.mpr生成的菜单程序 .idx单索引.mpx编译后的菜单程序 .qpr生成的查询程序.vcx可视类库 .qpx编译后的查询程序.vct可视类库备注 .scx表单.txt文本 .sct表单备注.bak备份文件 5. 创建文件 新建各种类型的文件时,可以利用系统提供的相应工具,以提高工作效率。新建文件时可用的设计 器和向导。 1.3 项目管理器 1. 项目管理器简介 项目: 是一种文件,用于跟踪创建应用系统所需要的所有程序、表单、菜单、库、报表、标签、查询和 一些其他类型的文件。 项目管理器:[图例] 是开发VFP应用系统的一个工具,它生成一个项目文件,项目文件的扩展名为 .PJX,项目备注的 扩展名为:.PJT。 第 3 页 共 71 页 江苏二级vfp 项目管理器窗口的组成: 由6大类数据项(全部、数据、文档、类、代码、其他)和10个命令按钮(新建、添加、修改、浏览、关闭、打开、预览、运行、移去、连编)组成。 注:粗斜体表示的命令按纽根据用户选择的不同对象相应地出现。 项目菜单的组成:13个子菜单(其中一部分与项目管理器中的命令按钮功能相同)。 项目管理器的功能:组织和管理所有与应用系统有关的各种类型的文件。 2. 创建项目文件 用菜单方式: 打开文件菜单 ? 新建 ? 项目? 新文件 ? 给出合适的项目文件名及保存位置 ? 进入项目管理器 ? 开发应用系统 ? 完成后关闭窗口退出。 用命令方式: 语法:CREATE PROJECT <项目文件名> 功能:打开项目管理器窗口进行应用系统的开发。 3. 修改项目文件 用菜单方式: 打开文件菜单 ? 打开 ? 找到所需的项目文件并确定之 ? 进入项目管理器? 修改应用系统 ? 完成后关闭窗口退出。 用命令方式: 语法:MODIFY PROJECT <项目文件名> 功能:打开项目管理器窗口进行应用系统的修改。 4. 项目管理器的使用 可以利用项目管理器来创建、打开、浏览、修改所有VFP文件并运行其中的表单、报表、标签、菜单、程序等。特别是可以利用它来连编项目(追踪这些文件的变化情况,包括它们之间的相关性、引用和连接等,确保引用的完整,并加入自上次连编之后更新了的一些组件)、应用程序(扩展名为.APP,在VFP环境下执行)和可执行文件(扩展名为.EXE,能脱离VFP环境执行)。 1.4 VFP 6.0 的一些规则 1. VFP6.0 的命名规则: ? 只能使用字母、下划线和数字。 ? 使用字母或下划线作为名称的开头。 ? 名称可以是 1 至 128 个字符,但自由表的字段名和索引标识最多只能有 10 个字符。 ? 避免使用 Visual FoxPro 的保留字。 ? 文件的命名遵循操作系统的约定。 2. 命令和子句的书写规则 (1) 以命令动词开始; (2) 各部分之间要用空格隔开; (3) 命令、子句、函数名都可简写为前4个字符,大、小写等效; (4) 一行只能写一条命令,总长度不超过8192个字符,超过屏幕宽度时用续行符“;”; (5) 变量名、字段名和文件名应避免与命令动词、关键字或函数名同名,以免运行时发生混乱。 (6) 命令格式中的符号约定: 命令中的[ ] 、| 、„、< > 符号都不是命令本身的语法成分,使用时不能照原样输入, 其中:[ ] 表示可选项,根据具体情况决定是否选用 | 表示两边的部分只能选用其中的一个 „ 表示可以有任意个类似参数,各参数间用逗号隔开 第 4 页 共 71 页 江苏二级vfp < > 表示其中内容要以实际名称或参数代入 3( 命令工作方式中的常见错误 (1) 命令动词写错 (2) 格式不符合要求 ? 标点符号不对(一定要用英文标点符号) ? 缺少必需的空格或添加了不该有的空格 ? 数据类型不一致,要注意字符型、数值型、日期型、逻辑型数据的书写格式 (3) 打不开所需文件:没有正确输入盘符和路径或文件名输错 第二章 VFP语言基础(复习要点) 第二章 VFP语言基础(复习要点) 第二章 VFP语言基础 ,.1 程序设计概述 1. 程序设计方法简介 设计方法主要概念设计过程程序执行方式 结构化程序设计功能模块(即过程、自定义函数)编制各个功能模块,再用主程序将它们串起 来将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。 面向对象程序设计类、对象、属性、事件、方法设计类、子类、对象(设计外观、设置属性、 为事件编写方法程序)将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件, 是事件驱动的。 2(数据类型 VFP 包含下列数据类型: 通用的数据类型字符型 Character货币型 Currency日期型 Date日期时间型 DateTime逻辑型 Logical数值型 Numeric 仅用于字段的数据类型双精度型 Double浮点型 Float整型 Integer通用型 General备注型 Memo 3. 数据容器 VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。 (1) 常量(constants): 一个在操作过程中保持不变的数值或字符串。 第 5 页 共 71 页 江苏二级vfp 常用的常量类型 常量类型数值型常量字符型常量逻辑型常量日期型常量 表示方式-25.36"abc","123","中国".T. .F.{^2005/07/10} (2)变量(variables): 是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。 变量的命名习惯: 类型变量代号 如:cStud 、nCj 、dCsrq —— 分别代表一个字符型、数值型、日期型的变量名 变量的赋值方式: 1) 用 STORE 命令 如:STORE "王兰" TO cStud 2) 用赋值操作符 = 如:cStud = "王兰" 变量的作用域: 即变量起使用的有效范围。 变量作用域定义作用域的关键字特点 局部变量 local variable(本地变量)LOCAL只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。当其所属程序停止运行时,局部变量将被释放。 私有变量 private variablePRIVATE私有变量在 VFP 中是默认的,不需要特殊的关键字定义。但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE 关键字予以声明,以限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。 公共变量 public variablePUBLIC可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。 变量的访问: 当变量和字段同名时,字段有优先被访问权。要在变量名前加 m. 或 m -> 以示区别,如 m.cStud (3)数组(array): 是存储在一个变量中由单个变量名引用的有序数据集合。在 VFP中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。 数组元素的标识:通过一个数值下标来引用,如 AA[2],AA[2,3] 数组类型的声明: 私有数组 ——用DECLARE 或 DIMENSION定义 全局数组 ——用PUBLIC命定义 局部数组 ——用LOCAL定义 数组元素的赋值: 用赋值语句: 如 AA=45 用SCATTER从当前记录中取特定字段的值赋给数组: 如: scatter fields xh, xm, xb to aa 第 6 页 共 71 页 江苏二级vfp (数组长度、类型自动与所给字段相同) 用 COPY TO ARRAY从当前记录中取所有字段的值赋给数组: 如: copy to array aa (数组长度、类型自动与表中全部字段相同) 把数组中的数据传给当前表中的当前记录: gather from 数组名 [fields 字段名表] 用数组向当前表添加记录: append from array 数组名 [for 条件] [[fields 字段名表] (用二维数组可以同时添加多条记录) 数组处理的常用函数: 排序SORT(),搜索ASCAN(),删除ADEL(),插入AINS() (4) 记录: 表中的一行,由字段组成。 (5) 对象: 对象是类的一个实例,类是对拥有数据和一定行为特征的对象集合的描述。VFP对象可以是表单、 表单集、控件。 ,.2 VFP 6.0的语言成分 1. 命令 即:由用户发出的、指示VFP进行某种操作的指令。 如 USE aaa & 打开 一个名为 aaa.dbf的数据表 2. 函数 即:一个预先编制好的模块,可由VFP程序在任何地方调用。 函数的使用方法:名称、功能、参数、返回值 几个常用函数 名称命令格式示例 字符串截取函数SUBSTR( expC,expN1[,expN2 ])? SUBSTR(“ABCDEFG”,2,4) 结果是: BCDE LEFT( expC,expN )? LEFT(“ABCDEFG”,2) 结果是: AB RIGHT( expC,expN )? RIGHTT(“ABCDEFG”,4) 结果是: DEFG 字符串查找函数AT ( expC1 , expC2 [ expN ])? AT(“B”, “ABCDE”) 结果是: 2 ? AT(“A”, “ABCDEASD” ) 结果是: 1 ? AT(“A”,“ABCDEASD”,2 ) 结果是: 6 大小写字母转换函数LOWER( expC )? LOWER(“DFGHa”) 结果是: dfgha UPPER( expC )? UPPER(“asdf”) 结果是: ASDF 数值函数MAX(exp1,exp1[,exp3,„])? MAX(15,23,4,56) 结果是: 56 MIN(exp1,exp1[,exp3,„])? MIN(15,23,4,56) 结果是: 4 ABS( expN )? ABS(-15.83) 结果是: 15.83 INT( expN )? INT(25.62) 结果是: 25 压缩空格函数ALLTRIM( expC )? ALLTRIM(" AD B G ") 结果是: AD B G 第 7 页 共 71 页 江苏二级vfp 类型转换函数STR( expN1[,expN2][,expN3])? STR(789.678,6,2) 结果是: 789.68 CTOD( expC )? CTOD(“98/10/15”) 结果是: 98/10/15 VAL( expC )? VAL("123.45") 结果是: 123.45 DTOC( expD )? DTOC({98/12/15}) 结果是: 98/12/15 日期时间函数DATE()? DATE() 结果是: 2000/03/15 DATETIME()? DATETIME() 结果是: 2000/03/15 10:15:30 YEAR( expD )? YEAR({87/03/25}) 结果是: 1987 数据库函数RECNO( )DBC( )SEEK( )其它函数LEN( )DELETED() EOF( )BOF( )FOUND( )EMPTY(exp)INLIST(,,) RECCOUNT( ) SELECT( )BETWEEN(,,)IIF(,,) TABLEREVERT( )LOCK( )CHR()ASC() TABLEUPDATE( )FSIZE( )TAG()INKEY() 自定义函数: 由用户为自己的应用程序创建的专用函数,可作为独立的程序文件保存在磁盘上也可作为过程文件存放在其他程序中。 3. 表达式 即:变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。 表达式的类型: 算术表达式:由算术操作符和数值型数据构成的表达式。 字符表达式:由字符操作符和字符型数据构成的表达式。 日期表达式:由日期操作符和日期、时间型数据构成的表达式。 逻辑表达式:由逻辑操作符和逻辑型数据构成的表达式。 名称表达式: 由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。 例: DBF_NAME="学生成绩登记表" USE (DBF_NAME) 宏替换:用宏替换符号 & 表示,它与名称表达式具有相似的作用。 例: 已知 A="1", B="2", C12="GOOD" 则 C&A&B="GOOD" 4. 操作符 数值操作符( )^ 或 ***/%(取余数)+ - 关系操作符<<=> >=<> 或 != 或 # = = 逻辑操作符()表达式分组NO或~(非)AND(和)OR (或) 日期和时间操作符+- 注意: 日期型: 天数 时间型: 秒数 字符操作符:+- $ 两个特殊的操作符圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、事件、方法。 范围转变操作符(::):提供了从一个子类中调用一个父类的方法。 ,.3 程序设计基础 1. 基本概念 第 8 页 共 71 页 江苏二级vfp 程 序:为解决某一问题而设计的一系列指令。 主程序:通常被用户直接执行的程序。 子程序:在程序中被调用的程序。 源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。 目标程序: 是源程序经过编译后所产生的机器语言程序。 可执行程序: 源程序被编译后产生的可被机器直接执行的程序,具有 .EXE 扩展名。在VFP中是指由项目管理 器连编生成的、可脱离VFP环境运行的程序。 应用程序: 指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP中是指一组 Visual FoxPro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩 展名为.APP。 例行程序: 按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的 一部分。它可由若干个子程序组成。 2. 程序控制 (1) 顺序语句 即按程序中的语句顺序依次执行。 (2) 分支语句 条件语句:情况语句: IF 条件 命令组1 [ ELSE 命令组2 ] ENDIFDO CASE CASE 情况1 命令组1 CASE 情况2 命令组2 „ [OTHERWISE 其它命令组 ] ENDCASE 3. 循环语句 FOR 循环语句(预知循环次数)FOR 变量 = 初值 TO 终值 [STEP 步长 ] 命令组 ENDFOR | NEXT DO WHILE 循环语句(未知循环次数)DO WHILE 条件 命令组 ENDDO SCAN 第 9 页 共 71 页 江苏二级vfp 循环语句(针对全部记录)SCAN [ 范围 ] [FOR | WHILE 条件 ] 命令组 ENDSCAN 循环结构中的LOOP命令和EXIT命令: LOOP是短路语句,表示从此开始下一次循环; EXIT是退出语句,表示跳出循环。 4. 子程序 子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。 子程序自定义函数过程 特点总是被其他程序调用而不单独执行,可以调用其他子程序,不一定要返回一个值。能以一个 独立的文件储存,也可包含在调用程序中,必须返回一个值。是一个程序段,是程序的组成部分,一般放在 程序的最后。 定义方法与程序相同,只是在子程序的结尾加需一条返回命令: RETURN [ 表达式 |TO MASTER |TO 程序文件名]FUNCTION 函数名 或:MODIFY COMMAND 函数名 PARAMETERS 数表 命令组 RETURN 表达式 注:用此命令定义的函数以独立的文件形式储存。PROCEDURE 过程名 PARAMETRS 参数表 命令组 RETURN 调用方法DO 子程序名[WITH 参数表 ]= 函数名 ( 参数表 )DO 过程名 WITH 参数表 3. 创建应用程序 方法一: 在命令窗口中输入: MODIFY COMMAND 程序名 方法二: 单击文件菜单 ? 新建 ? 程序 ? 新文件 ? 在编辑窗口中编辑程序 ? 完成后关闭 ? 给出 合适的程序名及保存位置 。 程序的注释: 方法1: * | NOTE <注释内容> 可出现在程序中的任何地方 方法2: && <注释内容> 一般用于命令的尾部 给程序加注释的目的是为了提高程序的可读性。 面向过程的程序设计三步曲: 输入 ? 处理 ? 输出 4. 修改应用程序 方法一: 在命令窗口中输入: MODIFY COMMAND 程序名 | , 注: ? 表示不知道程序名,要从打开对话框中选定。 方法 二: 单击文件菜单 ? 打开 ? 选择所需程序并打开 ? 在编辑窗口中对程序进行修改 ? 完成后关 闭退出。 第 10 页 共 71 页 江苏二级vfp 5. 执行应用程序 方法一: 在命令窗口中输入: DO 程序名 | , 方法二:从程序菜单中选择执行?从打开对话框中选择所需程序并执行之。 6. 程序设计的基本步骤 (1)对问题进行说明 (2)分解问题 (3)编制各模块 (4)测试并完善各模块 (5)组装全部模块 (6)整体测试 第三章 表的创建和使用(复习要点) 第三章 表的创建和使用(复习要点) 第三章 表的创建和使用 ,.1 VFP6.0表 1. 表的概念 表(数据表): 是指存放在磁盘文件中的一张二维表。(相当FoxPro 2.x 版本中的数据库) 自由表:不属于任何数据库的表。 数据库表:包含在一个数据库中的表。 表文件名: 表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。 备注文件名: 当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文 件名。 表结构:存储表记录的公共结构。(就是指一张表的表头结构,即字段的属性)。 记录:表中的一行。它是多个字段的集合,同一张表的每个记录都有相同的字段。 字段:表中的一列。它规定了数据的特征。 关系型数据表的特点: (1)每一个字段不可再分解,也不能有名字相同的字段; (2)每一列中的数据都有相同的数据类型; (3)表中没有内容完全相同的行(记录)。 2. 字段的基本属性 字段的属性: 包括:字段名、数据类型、字段宽度、小数位数、空值支持 字段名: 即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别, 但其中不许有空格或其它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可 达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。 第 11 页 共 71 页 江苏二级vfp VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。 数据类型:指该字段的数据特征。 字段宽度:指该字段所能容纳数据的的最大字节数。 小数位数:指数值型数据将保留几位小数。此时的字段宽度 = 整数位数+1+小数位数。 NULL 值(空值): 无明确的值。NULL 值不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。 VFP 6.0表中字段的数据类型 字段类型代号说明字段宽度使用示例 字符型C字母、汉字和数字型文本每个字符为1个字节,最多可有 254 个字符学生的学号或姓名, "8199101" 或 '李立' 货币型Y货币单位8 个字节工资, $1246.89 日期型D包含有年、月和日的数据8 个字节出生日期, {^1980/07/08} 日期时间型T包含有年、月、日、时、分、秒的数据8 个字节上班时间, {^2005/02/20 9:15:15 AM} 逻辑型L“真”或“假”的布尔值1 个字节课程是否为必修课, .T. 或 .F. 数值型N整数或小数在内存中占 8 个字节;在表中占1 至20个字节考试成绩, 83.5 双精度型B双精度浮点数8 个字节实验要求的高精度数据 浮点型F与数值型一样 整型I不带小数点的数值4 个字节学生的数量 通用型GOLE 对象在表中占 4 个字节图片或声音 备注型M不定长度的一段文字在表中占 4 个字节学生简历 字符型(二进制)C任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254 个字符 备注型(二进制)M任意不经过代码页修改而维护的备注数据在表中占 4 个字节 3. 表的基本操作 表的创建:设计表名和表结构、输入记录、建立索引 数据维护:增加记录、修改记录、删除记录 创建表的主要步骤: 设计表结构 ? 输入记录 ? 建立索引 ? 数据维护 4(关于表操作的几个基本命令 命令格式功能 CREATE 表文件名创建一个新的自由表的结构 USE 表文件名打开指定的表文件 USE关闭当前表文件 LIST ALL显示当前表的全部记录内容(类似于DOS 命令中的dir) DISPLAY ALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p) DISPLAY STRUCTURE显示当前表的结构(分屏显示) LIST STRUCTURE显示当前表的结构(不分屏显示) MODIFY STRUCTURE调出表设计器,修改当前表的结构。 CLEAR清除主窗口中的所有内容 第 12 页 共 71 页 江苏二级vfp 注意: (1)必须先打开所需的数据表才可进行以上操作; (2)当带有命令子句时,只对指定的记录进行操作; (3)LIST 命令的默认范围是所有记录,DISPLAY 命令的默认范围是当前记录。 ,.2 表结构的创建和修改 1. 表结构的创建 创建表结构其实就是设计字段的基本属性。可以使用表设计器、表向导或SQL命令来创建表结构。 (1)使用表设计器创建表 [图例] 步骤: 从文件菜单中单击新建 ? 在新建对话框中选择表并单击新文件 ? 在创建对话框中给出文件名并确定所需的保存位置 ? 在表设计器对话框中逐个输入所需字段(用?或鼠标换行),全部字段输入完成后单击确定。 (2)使用表向导创建表 步骤: 从文件菜单中单击新建 ? 在新建对话框中选择表并单击向导?在表向导中做第1步:选取字段,完成后单击下一步 ? 在表向导中做第1a步:选择数据库,完成后单击下一步 ? 在表向导中做第2步:修改字段设置,完成后单击下一步 ? 在表向导中做第3步:为表建索引,完成后单击下一步 ? 在表向导中做第4步:完成,选择表的保存方法,完成后单击完成 ? 在另存为对话框中给出文件名并确定所需的保存位置。 注意: 先选择一个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下一步根据实际需要修改或直接采用原字段的宽度。 (3) 使用 CREATE TABLE - SQL命令 该命令的一般格式为: CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]„„) 例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d) 2. 表结构的修改 (1)用表设计器修改 用菜单调出表设计器: 打开所需的表文件 ? 单击显示菜单中的表设计器 ? 在表设计器对话框中对字段进行修改 ? 修改完毕单击确定并在消息框中选择是。 用命令调出表设计器: USE <表文件名> MODIFY STRUCTURE (2) 使用 ALTER TABLE - SQL命令 功能命令格式示例 添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14) 重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc 删除字段ALTER TABLE xscj DROP COLUMN kc 第 13 页 共 71 页 江苏二级vfp ,.3 表记录的处理 1( 记录的输入 (1) 立即输入方式: 设计好表的结构后,系统会提示是否直接进入数据输入状态。若选是,则进入编辑窗口,输完后单击“X”按钮退出,系统自动存盘。需输入备注型或通用型字段的数据时,双击“memo” 或“gen”,在新打开的编辑窗口中输入所需内容,输完后单击“X”按钮系统自动存盘,退回到原窗口 ,此时字段中的“memo” 或“gen”变成“Memo” 或“Gen”。 (2) 追加方式: 若设计好表的结构后并没有及时输入数据,则可以用追加方式: 从文件菜单中(或从命令窗口中输入:USE 表文件名) 打开所需表文件 ? 从显示菜单中选择浏览 ? 再从显示菜单中选择追加方式 ? 在浏览窗口中输入所需记录。 不同追加方式适用的场合 追加记录的方式适用的场合 显示菜单中的追加方式在现有数据表的尾部添加一个或多个新记录 表菜单中的追加新记录在现有数据表的尾部添加一个新记录 表菜单中的追加记录„从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部 APPEND [BLANK]在当前表的末尾自动添加一个或多个新记录。相当于显示菜单中的追加方式。有BLANK时添加一个空记录,相当于表菜单中的追加新记录。 APPEND FROM 表文件名 [FIELDS 字段名1,字段名2 „][FOR 条件 ] 从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部。相当于表菜单中的追加记录„。 APPEND FROM 文本文件名 SDF将符合要求的文本文件全部追加在当前数据表的尾部。 注意:文本内容要与表中的字段结构相适应。 文件菜单中的导入 将其它类型的文件转换成一个完整的VFP数据表。 (3) 使用INSERT-SQL命令 该命令的一般格式为: INSERT INTO <表名>[(字段名1[,字段名2 „])] VALUES (表达式1[,表达式2 „]) 例:INSERT INTO xscj(xh,xm,cj) VALUES ("81991001", "张良", 85.5) 2. 记录的浏览 (1) 通过浏览窗口 (2) 通过BROWSE 命令 BROWSE命令用来打开表的浏览窗口,可通过不同的子句来实现对特定记录的浏览。 VFP命令中的常用子句 1) 范围子句 子句格式功能 ALL表示对表文件的全部记录进行操作 NEXT n表示对从当前记录开始的共n个记录进行操作, n为正整数 RECORD n指明操作对象是表文件的第n号记录 REST对从当前记录起到文件结尾的全部记录进行操作 第 14 页 共 71 页 江苏二级vfp 2) FOR子句 用于指明进行操作的条件。 格式: FOR <条件> 指明只对指定范围中那些符合给定条件的进行当前操作。 例如: list NEXT 6 FOR cj < 85 3) WHILE 子句 也用于指明进行操作的条件。 格式: WHILE <条件> 例如: list NEXT 6 WHILE cj < 85 4) FIELDS 子句 用于指明当前的操作涉及到表文件的哪些字段。 格式:BROWSE [ FIELDS 字段名1,字段名2„„] 例如:BROWSE FIELDS xh,xm,cj 3. 记录的定位 (1) 系统对记录的三个控制标志 记录开始标志:位于第一个记录之前。其值用函数BOF()进行测试。 记录指针标志:指向当前记录。其值用函数RECNO()进行测试。 记录结束标志:位于最后一个记录之后。其值用函数EOF()进行测试。 记录指针可以理解为保存当前记录号的变量,它的初始值总是1,不可能为0或负数,最大值是表 中记录总数+1。 刚打开表时记录指针的情况 表中记录情况BOF()的值RECNO()的值EOF()的值 无记录.T.1.T. 有记录.F.1.F. (2)记录的定位方式 绝对定位:是指把指针移到指定的位置。 相对定位: 是指把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。 条件定位: 是指按一定的条件在整张表或表的某个指定范围中查找符合该条件的记录。 通过菜单进行定位 从表菜单中选择转到记录:记录号——实现绝对定位 定位„ ——实现条件定位 通过命令进行定位 记录的定位 命令格式功能备注 绝对定位GO TOP将记录指针定位到表文件之首或 GOTO TOP GO BOTTOM将记录指针定位到表文件之尾或GOTO BOTTOM GO 将记录指针定位到指定的n号记录 相对定位SKIP 将记录指针从当前记录向上或向下移动n个n为正值则向下移动 n为负值则向上移动 无n向下移动 1个 条件定位LOCATE FOR <条件> [ 范围 ]按顺序搜索表, 直到找到满足指定条件的第一个记录默 第 15 页 共 71 页 江苏二级vfp 认范围是所有记录 4. 记录的修改和删除 一张表用非只读方式打开后,即可通过菜单在浏览窗口(或编辑窗口)中或从命令窗口中用命令直接对其记录进行编辑、修改和删除。 (1) 菜单方式 修改记录: 从表菜单中选择替换字段„ ? 在替换字段对话框中选择待替换的字段并构造出替换表达式及替换条件 ? 替换。 删除记录: 从表菜单中选择删除记录 ? 在删除对话框中选择删除范围和删除条件 ? 单击删除按钮 ? 从表菜单中选择彻底删除 ? 在消息框中单击是。 删除记录包括两步: 标记要删除的记录 和 彻底删除带删除标记的记录 恢复带删除标记的记录: 从表菜单中选择恢复记录 ? 在恢复记录对话框中选择作用范围和条件 ? 单击恢复记录按钮。 (2) SQL命令方式 (表事先可以不打开,适用于编程工作方式) 修改记录: 用 UPDATE-SQL 命令。 命令格式: UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 „]; WHERE 条件表达式 例: UPDATE xscj SET cj = cj*1.05 WHERE cj>80 删除记录: 用 DELETE-SQL 命令。 命令格式: DELETE FROM <表名> [WHERE 条件表达式] 例: DELETE FROM xscj WHERE cj<60 (3) 在命令窗口中用VFP命令: 命令格式功能备注 插入 INSERT [BLANK][BEFORE]在当前表的指定位置上插入一个空记录或若干新记录BLANK :在当前记录后插入一个空记录 BEFORE :在当前记录之前插入若干新记录 修改CHANGE [FIELDS 字段名1,„][FOR 条件] [LEDIT] [REDIT]在编辑窗口显示要修改的字段LEDIT:调出编辑窗口 REDIT:调出浏览窗口 替换REPLACE 字段名1 WITH 表达式1 [ADDITIVE][, 字段名2 WITH 表达式2[ADDITIVE] „] [范围] [FOR 条件] 把字段值用指定的表达式进行替换。如: 工资单中给某些人长工资默认范围是当前记录 ADDITIVE:把备注字段的替换内容添加在原备注内容的后面 删除 DELETE [ 范围 ][FOR 条件] 对当前表中指定范围内满足条件的记录加上删除标记 *默认范围是当前记录 PACK [MEMO][DBF]将所有带删除标记的记录从表中抹去(不能再恢复)DBF:不影响备注文件 MEMO:从备注文件中删除未使用空间 ZAP删除当前表中所有记录,只留下表的结构相当于 DELETE ALL + PACK 恢复 RECALL [ 范围] [FOR 条件] 取消当前表中指定记录上的删除标记默认范围是当前记录 第 16 页 共 71 页 江苏二级vfp 5. 筛选记录和字段 (1) 用菜单方式 从表菜单中选择属性 ? 在工作区属性对话框中单击数据过滤器框后的按钮 ? 在表达式生成器对话框中构造所需的条件表达式并确定 ? 单击字段筛选„按钮 ?在字段筛选器中选择所需字段并确定 ? 单击选项按钮:字段筛选指定的字段 ? 确定。 (2)用命令方式 命令格式: SET FILTER TO 条件表达式 例: SET FILTER TO xb ='男' 注意:SQL命令对记录的访问不受此筛选命令的限制。 ,.4 表的使用 1. 工作区 工作区: 指用来标识一张打开的表的区域。一个工作区在某一时刻只能打开一张表,但可以同时在多个工作区打开多张表,一张可以在多个工作区中多次被打开。每个工作区都有一个编号。 表的别名: 在工作区中打开表时为该表所定义的名称。可以自定义别名,否则系统默认就以表名作为别名。若一张表在多个工作区中被打开,系统默认在表名后依次加_a 、_b„。 自定义别名的格式: USE <表名> ALIAS <别名> 当前工作区: 正在使用的工作区。可以通过“数据工作期窗口”或用 SELECT命令把任何一个工作区设置为当前工作区。 SELECT 命令格式: SELECT <工作区号>|<别名> 要操作非当前工作区中的表,可以把其它工作区选为当前工作区,或在命令中强行指定工作区。 命令格式: IN <工作区号>|<别名> ALIAS([工作区号])函数: 测试指定工作区中的表的别名,无参数时指当前工作区表的别名。 SELECT([别名])函数: 测试指定别名的表所在的工作区号,无参数时指当前工作区的区号。 2. 表的打开和关闭 打开表的途径关闭表的途径 文件菜单中的打开工具栏上的打开数据工作期窗口中关闭USE 数据工作期窗口中打开USE <表名>USE IN <别名>|<工作区号>CLOSE ALL USE <表名> IN <工作区号>USE <表名>AGAINCLOSE DATABASECLOSE TABLE USE <表名> ALIAS <别名>退出VFP系统,则关闭所有的表 3. 表的独占与共享使用 独占使用: 一张表只能被一个用户打开。VFP6.0在默认状态以独占方式打开。 共享使用: 一张表可以被多个用户同时打开。 系统的默认打开方式可以通过工具菜单中的选项„来设置,或 用命令: SET EXCLUSIVE OFF && 默认打开方式为共享 SET EXCLUSIVE ON && 默认打开方式为独占 第 17 页 共 71 页 江苏二级vfp 或强行打开:USE cj SHARED && 以共享方式打开cj表 USE cj EXCLUSIVE && 以独占方式打开cj表 4. 利用缓冲访问表中的数据 数据缓冲: 先将对表记录的修改存放在缓冲区中,用户决定是否用缓冲区中的数据更新表文件。它是VFP6.0在多用户环境下用来保护对表记录所做的数据更新和数据维护操作的一种技术。 数据缓冲的类型: 记录缓冲: 当记录指针移动或关闭表时,缓冲区自动更新表中的相应记录。 表缓冲:当发出更新表的命令或关闭表时更新表。 缓冲锁定方式:有两种:开放式 和 保守式。 ,.5 表的索引 1. 基本概念 记录的顺序 : 物理顺序:即表中记录的存储顺序。用记录号表示。 逻辑顺序:表打开后被使用时记录的处理顺序。 索 引: 指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。 索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。 注意:1)用多个字段建立索引表达式时,表达式的计算结果将影响索引的结果; 2)不同类型字段构成一个表达式时,必须转换数据类型。 索引标识(索引名): 即索引关键字的名称。必须以下划线、字母或汉字开头,且不可超过10个字。 索引类型:主索引、候选索引、普通索引、唯一索引。 主索引: 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。 候选索引: 在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。 普通索引: 也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。 唯一索引: 参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。 2. 索引的作用 用途采用的索引类型 排序记录,以便显示、查询或打印使用普通索引、候选索引或主索引 在字段中控制重复值的输入并对记录排序对数据库表使用主索引或候选索引,对自由表使用候选索引 准备设置表关系依据表在关系中所起的作用,使用普通索引、主索引或候选索引 第 18 页 共 71 页 江苏二级vfp 3(索引文件的种类 索引文件种类特征关键字数目限制 结构复合索引文件 .CDX使用和表文件名相同的基本名,随表的打开自动打开。可以看成表结构的一部分。多关键字表达式,称为标识。有效表达式限制在 240 个字符之内。 非结构复合索引文件 .CDX必须明确地打开,使用和表名不同的基本名。其中不能创建主索引多关键字表达式,称为标识。有效表达式限制在 符之240 个字内。 独立索引文件 .IDX必须明确地打开,文件的基本名由用户定义。一般作为临时索引文件。单关键字表达式。有效表达式限制在 100 个字符之内。 结构复合索引文件(扩展名为.CDX)的特点: .在创建索引标识时自动创建。 .在打开表时自动打开。 .在同一索引文件中能包含多个排序方案,或索引关键字。 .在添加、更改或删除记录时自动维护。 4. 创建结构复合索引 VFP中创建索引文件有两种方式:表设计器方式和命令方式。 (1)表设计器方式 打开表文件 ?从显示菜单中选择表设计器 ? 在表设计器中单击索引 ? 输入索引名并选择索引类型 ? 选择索引的方向(按升序或降序排列记录) ? 在表达式框中输入作为排序依据的索引关键字 ? 在筛选框中输入筛选表达式 ? 单击确定,完毕。 (2) 命令方式 命令功能 INDEX ON <索引关键字段> TAG <索引标识>[FOR 条件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE] 用INDEX ON 命令建立一个索引文件 ALTER TABLE <表名> ADD PRIMARY KEY <关键字段名> TAG <索引标识名>用SQL命令创建主索引 ALTER TABLE <表名> ADD UNIQUE <关键字段名>TAG <索引标识名> 用SQL命令创建候选索引 注意:1)备注型字段和通用型字段不能作为索引关键字段; 2)不要建立无用的索引,以免降低系统性能; 3)及时清理已无用索引标识,提高系统效率。 4)在复合索引的多个索引中,某一时刻只有一个索引对表起作用。 5. 索引的修改和删除 修改: 打开表设计器,在索引对话框中进行所需修改; 或 用命令重新建立一个相同标识名而索引表达式不同的索引。 删除: 打开表设计器,在索引对话框中删除不需要的索引标识即可; 或 用命令: DELETE TAG ALL | 索引标识1 [, 索引标识2 ] „ 删除不需要的索引标识,ALL表示全部标识。 6. 索引的使用 第 19 页 共 71 页 江苏二级vfp 功能命令格式 打开表的同时指定主控索引USE <表名> ORDER <标识名> 为已打开的表确定主控索引SET ORDER TO <标识名> [ASCENDING | DESCENDING] ] 搜索某张已建立索引的表FIND <表达式> 搜索表中首次出现的记录SEEK <表达式> [ <索引标识名>] SEEK <表达式> 12072 第三章 表的创建和使用(复习要点) 第三章 表的创建和使用(复习要点) 第三章 表的创建和使用 ,.1 VFP6.0表 1. 表的概念 表(数据表): 是指存放在磁盘文件中的一张二维表。(相当FoxPro 2.x 版本中的数据库) 自由表:不属于任何数据库的表。 数据库表:包含在一个数据库中的表。 表文件名: 表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。 备注文件名: 当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文件名。 表结构:存储表记录的公共结构。(就是指一张表的表头结构,即字段的属性)。 记录:表中的一行。它是多个字段的集合,同一张表的每个记录都有相同的字段。 字段:表中的一列。它规定了数据的特征。 关系型数据表的特点: (1)每一个字段不可再分解,也不能有名字相同的字段; (2)每一列中的数据都有相同的数据类型; (3)表中没有内容完全相同的行(记录)。 2. 字段的基本属性 字段的属性: 包括:字段名、数据类型、字段宽度、小数位数、空值支持 字段名: 即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别, 但其中不许有空格或其它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。 VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。 数据类型:指该字段的数据特征。 第 20 页 共 71 页 江苏二级vfp 字段宽度:指该字段所能容纳数据的的最大字节数。 小数位数:指数值型数据将保留几位小数。此时的字段宽度 = 整数位数+1+小数位数。 NULL 值(空值): 无明确的值。NULL 值不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。 VFP 6.0表中字段的数据类型 字段类型代号说明字段宽度使用示例 字符型C字母、汉字和数字型文本每个字符为1个字节,最多可有 254 个字符学生的学号或姓名, "8199101" 或 '李立' 货币型Y货币单位8 个字节工资, $1246.89 日期型D包含有年、月和日的数据8 个字节出生日期, {^1980/07/08} 日期时间型T包含有年、月、日、时、分、秒的数据8 个字节上班时间, {^2005/02/20 9:15:15 AM} 逻辑型L“真”或“假”的布尔值1 个字节课程是否为必修课, .T. 或 .F. 数值型N整数或小数在内存中占 8 个字节;在表中占1 至20个字节考试成绩, 83.5 双精度型B双精度浮点数8 个字节实验要求的高精度数据 浮点型F与数值型一样 整型I不带小数点的数值4 个字节学生的数量 通用型GOLE 对象在表中占 4 个字节图片或声音 备注型M不定长度的一段文字在表中占 4 个字节学生简历 字符型(二进制)C任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254 个字符 备注型(二进制)M任意不经过代码页修改而维护的备注数据在表中占 4 个字节 3. 表的基本操作 表的创建:设计表名和表结构、输入记录、建立索引 数据维护:增加记录、修改记录、删除记录 创建表的主要步骤: 设计表结构 ? 输入记录 ? 建立索引 ? 数据维护 4(关于表操作的几个基本命令 命令格式功能 CREATE 表文件名创建一个新的自由表的结构 USE 表文件名打开指定的表文件 USE关闭当前表文件 LIST ALL显示当前表的全部记录内容(类似于DOS 命令中的dir) DISPLAY ALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p) DISPLAY STRUCTURE显示当前表的结构(分屏显示) LIST STRUCTURE显示当前表的结构(不分屏显示) MODIFY STRUCTURE调出表设计器,修改当前表的结构。 CLEAR清除主窗口中的所有内容 注意: (1)必须先打开所需的数据表才可进行以上操作; 第 21 页 共 71 页 江苏二级vfp (2)当带有命令子句时,只对指定的记录进行操作; (3)LIST 命令的默认范围是所有记录,DISPLAY 命令的默认范围是当前记录。 ,.2 表结构的创建和修改 1. 表结构的创建 创建表结构其实就是设计字段的基本属性。可以使用表设计器、表向导或SQL命令来创建表结构。 (1)使用表设计器创建表 [图例] 步骤: 从文件菜单中单击新建 ? 在新建对话框中选择表并单击新文件 ? 在创建对话框中给出文件名并确定所需的保存位置 ? 在表设计器对话框中逐个输入所需字段(用?或鼠标换行),全部字段输入完成后单击确定。 (2)使用表向导创建表 步骤: 从文件菜单中单击新建 ? 在新建对话框中选择表并单击向导?在表向导中做第1步:选取字段,完成后单击下一步 ? 在表向导中做第1a步:选择数据库,完成后单击下一步 ? 在表向导中做第2步:修改字段设置,完成后单击下一步 ? 在表向导中做第3步:为表建索引,完成后单击下一步 ? 在表向导中做第4步:完成,选择表的保存方法,完成后单击完成 ? 在另存为对话框中给出文件名并确定所需的保存位置。 注意: 先选择一个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下一步根据实际需要修改或直接采用原字段的宽度。 (3) 使用 CREATE TABLE - SQL命令 该命令的一般格式为: CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]„„) 例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d) 2. 表结构的修改 (1)用表设计器修改 用菜单调出表设计器: 打开所需的表文件 ? 单击显示菜单中的表设计器 ? 在表设计器对话框中对字段进行修改 ? 修改完毕单击确定并在消息框中选择是。 用命令调出表设计器: USE <表文件名> MODIFY STRUCTURE (2) 使用 ALTER TABLE - SQL命令 功能命令格式示例 添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14) 重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc 删除字段ALTER TABLE xscj DROP COLUMN kc ,.3 表记录的处理 1( 记录的输入 第 22 页 共 71 页 江苏二级vfp (1) 立即输入方式: 设计好表的结构后,系统会提示是否直接进入数据输入状态。若选是,则进入编辑窗口,输完后单击“X”按钮退出,系统自动存盘。需输入备注型或通用型字段的数据时,双击“memo” 或“gen”,在新打开的编辑窗口中输入所需内容,输完后单击“X”按钮系统自动存盘,退回到原窗口 ,此时字段中的“memo” 或“gen”变成“Memo” 或“Gen”。 (2) 追加方式: 若设计好表的结构后并没有及时输入数据,则可以用追加方式: 从文件菜单中(或从命令窗口中输入:USE 表文件名) 打开所需表文件 ? 从显示菜单中选择浏览 ? 再从显示菜单中选择追加方式 ? 在浏览窗口中输入所需记录。 不同追加方式适用的场合 追加记录的方式适用的场合 显示菜单中的追加方式在现有数据表的尾部添加一个或多个新记录 表菜单中的追加新记录在现有数据表的尾部添加一个新记录 表菜单中的追加记录„从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部 APPEND [BLANK]在当前表的末尾自动添加一个或多个新记录。相当于显示菜单中的追加方式。有BLANK时添加一个空记录,相当于表菜单中的追加新记录。 APPEND FROM 表文件名 [FIELDS 字段名1,字段名2 „][FOR 条件 ] 从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部。相当于表菜单中的追加记录„。 APPEND FROM 文本文件名 SDF将符合要求的文本文件全部追加在当前数据表的尾部。 注意:文本内容要与表中的字段结构相适应。 文件菜单中的导入 将其它类型的文件转换成一个完整的VFP数据表。 (3) 使用INSERT-SQL命令 该命令的一般格式为: INSERT INTO <表名>[(字段名1[,字段名2 „])] VALUES (表达式1[,表达式2 „]) 例:INSERT INTO xscj(xh,xm,cj) VALUES ("81991001", "张良", 85.5) 2. 记录的浏览 (1) 通过浏览窗口 (2) 通过BROWSE 命令 BROWSE命令用来打开表的浏览窗口,可通过不同的子句来实现对特定记录的浏览。 VFP命令中的常用子句 1) 范围子句 子句格式功能 ALL表示对表文件的全部记录进行操作 NEXT n表示对从当前记录开始的共n个记录进行操作, n为正整数 RECORD n指明操作对象是表文件的第n号记录 REST对从当前记录起到文件结尾的全部记录进行操作 2) FOR子句 第 23 页 共 71 页 江苏二级vfp 用于指明进行操作的条件。 格式: FOR <条件> 指明只对指定范围中那些符合给定条件的进行当前操作。 例如: list NEXT 6 FOR cj < 85 3) WHILE 子句 也用于指明进行操作的条件。 格式: WHILE <条件> 例如: list NEXT 6 WHILE cj < 85 4) FIELDS 子句 用于指明当前的操作涉及到表文件的哪些字段。 格式:BROWSE [ FIELDS 字段名1,字段名2„„] 例如:BROWSE FIELDS xh,xm,cj 3. 记录的定位 (1) 系统对记录的三个控制标志 记录开始标志:位于第一个记录之前。其值用函数BOF()进行测试。 记录指针标志:指向当前记录。其值用函数RECNO()进行测试。 记录结束标志:位于最后一个记录之后。其值用函数EOF()进行测试。 记录指针可以理解为保存当前记录号的变量,它的初始值总是1,不可能为0或负数,最大值是表 中记录总数+1。 刚打开表时记录指针的情况 表中记录情况BOF()的值RECNO()的值EOF()的值 无记录.T.1.T. 有记录.F.1.F. (2)记录的定位方式 绝对定位:是指把指针移到指定的位置。 相对定位: 是指把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。 条件定位: 是指按一定的条件在整张表或表的某个指定范围中查找符合该条件的记录。 通过菜单进行定位 从表菜单中选择转到记录:记录号——实现绝对定位 定位„ ——实现条件定位 通过命令进行定位 记录的定位 命令格式功能备注 绝对定位GO TOP将记录指针定位到表文件之首或 GOTO TOP GO BOTTOM将记录指针定位到表文件之尾或GOTO BOTTOM GO 将记录指针定位到指定的n号记录 相对定位SKIP 将记录指针从当前记录向上或向下移动n个n为正值则向下移动 n为负值则向上移动 无n向下移动 1个 条件定位LOCATE FOR <条件> [ 范围 ]按顺序搜索表, 直到找到满足指定条件的第一个记录默 认范围是所有记录 第 24 页 共 71 页 江苏二级vfp 4. 记录的修改和删除 一张表用非只读方式打开后,即可通过菜单在浏览窗口(或编辑窗口)中或从命令窗口中用命令直接对其记录进行编辑、修改和删除。 (1) 菜单方式 修改记录: 从表菜单中选择替换字段„ ? 在替换字段对话框中选择待替换的字段并构造出替换表达式及替换条件 ? 替换。 删除记录: 从表菜单中选择删除记录 ? 在删除对话框中选择删除范围和删除条件 ? 单击删除按钮 ? 从表菜单中选择彻底删除 ? 在消息框中单击是。 删除记录包括两步: 标记要删除的记录 和 彻底删除带删除标记的记录 恢复带删除标记的记录: 从表菜单中选择恢复记录 ? 在恢复记录对话框中选择作用范围和条件 ? 单击恢复记录按钮。 (2) SQL命令方式 (表事先可以不打开,适用于编程工作方式) 修改记录: 用 UPDATE-SQL 命令。 命令格式: UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 „]; WHERE 条件表达式 例: UPDATE xscj SET cj = cj*1.05 WHERE cj>80 删除记录: 用 DELETE-SQL 命令。 命令格式: DELETE FROM <表名> [WHERE 条件表达式] 例: DELETE FROM xscj WHERE cj<60 (3) 在命令窗口中用VFP命令: 命令格式功能备注 插入 INSERT [BLANK][BEFORE]在当前表的指定位置上插入一个空记录或若干新记录BLANK :在当前记录后插入一个空记录 BEFORE :在当前记录之前插入若干新记录 修改CHANGE [FIELDS 字段名1,„][FOR 条件] [LEDIT] [REDIT]在编辑窗口显示要修改的字段LEDIT:调出编辑窗口 REDIT:调出浏览窗口 替换REPLACE 字段名1 WITH 表达式1 [ADDITIVE][, 字段名2 WITH 表达式2[ADDITIVE] „] [范围] [FOR 条件] 把字段值用指定的表达式进行替换。如: 工资单中给某些人长工资默认范围是当前记录 ADDITIVE:把备注字段的替换内容添加在原备注内容的后面 删除 DELETE [ 范围 ][FOR 条件] 对当前表中指定范围内满足条件的记录加上删除标记 *默认范围是当前记录 PACK [MEMO][DBF]将所有带删除标记的记录从表中抹去(不能再恢复)DBF:不影响备注文件 MEMO:从备注文件中删除未使用空间 ZAP删除当前表中所有记录,只留下表的结构相当于 DELETE ALL + PACK 恢复 RECALL [ 范围] [FOR 条件] 取消当前表中指定记录上的删除标记默认范围是当前记录 5. 筛选记录和字段 第 25 页 共 71 页 江苏二级vfp (1) 用菜单方式 从表菜单中选择属性 ? 在工作区属性对话框中单击数据过滤器框后的按钮 ? 在表达式生成器对话框中构造所需的条件表达式并确定 ? 单击字段筛选„按钮 ?在字段筛选器中选择所需字段并确定 ? 单击选项按钮:字段筛选指定的字段 ? 确定。 (2)用命令方式 命令格式: SET FILTER TO 条件表达式 例: SET FILTER TO xb ='男' 注意:SQL命令对记录的访问不受此筛选命令的限制。 ,.4 表的使用 1. 工作区 工作区: 指用来标识一张打开的表的区域。一个工作区在某一时刻只能打开一张表,但可以同时在多个工作区打开多张表,一张可以在多个工作区中多次被打开。每个工作区都有一个编号。 表的别名: 在工作区中打开表时为该表所定义的名称。可以自定义别名,否则系统默认就以表名作为别名。若一张表在多个工作区中被打开,系统默认在表名后依次加_a 、_b„。 自定义别名的格式: USE <表名> ALIAS <别名> 当前工作区: 正在使用的工作区。可以通过“数据工作期窗口”或用 SELECT命令把任何一个工作区设置为当前工作区。 SELECT 命令格式: SELECT <工作区号>|<别名> 要操作非当前工作区中的表,可以把其它工作区选为当前工作区,或在命令中强行指定工作区。 命令格式: IN <工作区号>|<别名> ALIAS([工作区号])函数: 测试指定工作区中的表的别名,无参数时指当前工作区表的别名。 SELECT([别名])函数: 测试指定别名的表所在的工作区号,无参数时指当前工作区的区号。 2. 表的打开和关闭 打开表的途径关闭表的途径 文件菜单中的打开工具栏上的打开数据工作期窗口中关闭USE 数据工作期窗口中打开USE <表名>USE IN <别名>|<工作区号>CLOSE ALL USE <表名> IN <工作区号>USE <表名>AGAINCLOSE DATABASECLOSE TABLE USE <表名> ALIAS <别名>退出VFP系统,则关闭所有的表 3. 表的独占与共享使用 独占使用: 一张表只能被一个用户打开。VFP6.0在默认状态以独占方式打开。 共享使用: 一张表可以被多个用户同时打开。 系统的默认打开方式可以通过工具菜单中的选项„来设置,或 用命令: SET EXCLUSIVE OFF && 默认打开方式为共享 SET EXCLUSIVE ON && 默认打开方式为独占 或强行打开:USE cj SHARED && 以共享方式打开cj表 USE cj EXCLUSIVE && 以独占方式打开cj表 第 26 页 共 71 页 江苏二级vfp 4. 利用缓冲访问表中的数据 数据缓冲: 先将对表记录的修改存放在缓冲区中,用户决定是否用缓冲区中的数据更新表文件。它是VFP6.0在多用户环境下用来保护对表记录所做的数据更新和数据维护操作的一种技术。 数据缓冲的类型: 记录缓冲: 当记录指针移动或关闭表时,缓冲区自动更新表中的相应记录。 表缓冲:当发出更新表的命令或关闭表时更新表。 缓冲锁定方式:有两种:开放式 和 保守式。 ,.5 表的索引 1. 基本概念 记录的顺序 : 物理顺序:即表中记录的存储顺序。用记录号表示。 逻辑顺序:表打开后被使用时记录的处理顺序。 索 引: 指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。 索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。 注意:1)用多个字段建立索引表达式时,表达式的计算结果将影响索引的结果; 2)不同类型字段构成一个表达式时,必须转换数据类型。 索引标识(索引名): 即索引关键字的名称。必须以下划线、字母或汉字开头,且不可超过10个字。 索引类型:主索引、候选索引、普通索引、唯一索引。 主索引: 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。 候选索引: 在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。 普通索引: 也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。 唯一索引: 参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。 2. 索引的作用 用途采用的索引类型 排序记录,以便显示、查询或打印使用普通索引、候选索引或主索引 在字段中控制重复值的输入并对记录排序对数据库表使用主索引或候选索引,对自由表使用候选索引 准备设置表关系依据表在关系中所起的作用,使用普通索引、主索引或候选索引 3(索引文件的种类 第 27 页 共 71 页 江苏二级vfp 索引文件种类特征关键字数目限制 结构复合索引文件 .CDX使用和表文件名相同的基本名,随表的打开自动打开。可以看成表结构的一部分。多关键字表达式,称为标识。有效表达式限制在 240 个字符之内。 非结构复合索引文件 .CDX必须明确地打开,使用和表名不同的基本名。其中不能创建主索引多关键字表达式,称为标识。有效表达式限制在 符之240 个字内。 独立索引文件 .IDX必须明确地打开,文件的基本名由用户定义。一般作为临时索引文件。单关键字表达式。有效表达式限制在 100 个字符之内。 结构复合索引文件(扩展名为.CDX)的特点: .在创建索引标识时自动创建。 .在打开表时自动打开。 .在同一索引文件中能包含多个排序方案,或索引关键字。 .在添加、更改或删除记录时自动维护。 4. 创建结构复合索引 VFP中创建索引文件有两种方式:表设计器方式和命令方式。 (1)表设计器方式 打开表文件 ?从显示菜单中选择表设计器 ? 在表设计器中单击索引 ? 输入索引名并选择索引类型 ? 选择索引的方向(按升序或降序排列记录) ? 在表达式框中输入作为排序依据的索引关键字 ? 在筛选框中输入筛选表达式 ? 单击确定,完毕。 (2) 命令方式 命令功能 INDEX ON <索引关键字段> TAG <索引标识>[FOR 条件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE] 用INDEX ON 命令建立一个索引文件 ALTER TABLE <表名> ADD PRIMARY KEY <关键字段名> TAG <索引标识名>用SQL命令创建主索引 ALTER TABLE <表名> ADD UNIQUE <关键字段名>TAG <索引标识名> 用SQL命令创建候选索引 注意:1)备注型字段和通用型字段不能作为索引关键字段; 2)不要建立无用的索引,以免降低系统性能; 3)及时清理已无用索引标识,提高系统效率。 4)在复合索引的多个索引中,某一时刻只有一个索引对表起作用。 5. 索引的修改和删除 修改: 打开表设计器,在索引对话框中进行所需修改; 或 用命令重新建立一个相同标识名而索引表达式不同的索引。 删除: 打开表设计器,在索引对话框中删除不需要的索引标识即可; 或 用命令: DELETE TAG ALL | 索引标识1 [, 索引标识2 ] „ 删除不需要的索引标识,ALL表示全部标识。 6. 索引的使用 功能命令格式 打开表的同时指定主控索引USE <表名> ORDER <标识名> 第 28 页 共 71 页 江苏二级vfp 为已打开的表确定主控索引SET ORDER TO <标识名> [ASCENDING | DESCENDING] ] 搜索某张已建立索引的表FIND <表达式> 搜索表中首次出现的记录SEEK <表达式> [ <索引标识名>] SEEK <表达式> 12072 第五章 创建查询和视图(复习要点) 第五章 创建查询和视图(复习要点) 第五章 创建查询和视图 ,.1 创建查询 1. 查询的概念 查询:就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。 查询文件: 即保存实现查询的SELECT-SQL命令的文件。查询文件保存时,系统自动给出扩展名 .qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为 .qpx。 查询结果: 通过运行查询文件得到的一个基于表和视图的动态的数据集合。查询结果可以用不同的形式来保存。查询中的数据是只读的。 查询的数据源:可以是一张或多张相关的自由表、数据库表、视图。 2. 用查询设计器创建查询[图例] 基本步骤: 打开查询设计器 ? 添加创建查询所基于的数据表 ? 定义输出内容 ? 设置联接、筛选、排序、分组条件 ? 选择查询结果的输出形式 ? 保存查询文件 ?运行查询。 (1)打开查询设计器 方法1: 从文件菜单或工具栏上单击新建 ? 查询 ? 新建文件 ? 进入查询设计器 方法2: 当所用到的数据表已在项目中时,从项目管理器窗口中单击数据 ? 查询 ? 新建 ? 新建查询 ? 进入查询设计器 方法3:从命令窗口中输入命令: create query 查询文件名 & 创建新查询 modify query 查询文件名 & 修改已存在的查询 (2) 定义查询的输出内容 单击字段选项卡 ? 从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的„ 按钮,打开表达式生成器,构造出所需的表达式)? 单击添加按钮 ? 所需字段自动出现在选定字段框中。 (3) 设置查询的筛选条件 第 29 页 共 71 页 江苏二级vfp 筛选条件决定将哪些记录显示出来。 在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式: 1) 字符串可以不带引号(当与源表中的字段名相同时才用引号); 2) 日期型数值要用{ }括起来; 3) 逻辑型数据两侧要带 .号,如 .T.,.F. (4) 设置查询结果的排序依据 排序决定查询输出结果中记录显示的顺序。 设置方法: 单击排序依据 ? 从选定字段框选中字段 ? 选择升序或降序 ? 单击添加。 (5) 设置查询结果的分组依据 分组是指将一组类似的记录压缩成一个结果记录,目的是为了完成基于该组记录的计算,比如:求平均值、总和、统计个数、其中的最大值、最小值等。 几个常用的统计函数 功能求平均值求总和求最大值求最小值统计个数 名称AVG()SUM()MAX()MIN()COUNT() 用于分组的字段不一定是选定输出的字段,但分组字段不能是一个计算字段。 可以用 满足条件„ 来对分组结果进行进一步筛选。 (6) 对查询结果的其他设置 可以排除查询结果中所有重复的行,并设置结果的记录范围。 (7) 选择查询结果的输出类型 默认情况下,查询结果将输出在浏览窗口中,且其中的数据是只读的。 设置其他输出类型的方法: 打开查询菜单 ? 选择查询去向 ? 在查询去向对话框中选择一种。一般多选择表或报表。 (8)运行查询 在查询设计器打开的状态下,单击常用工具栏上的 ~按钮或从查询菜单中选择运行查询。其他情况下,可从项目管理器中选中查询文件并单击运行按钮,或从程序菜单中选择执行命令,或从命令窗口中输入: DO 查询文件名。 (9) 创建多表查询 打开查询设计器 ? 将所需的多个相关表添加进来 ? 设置联接条件 ? 按上面(2)至(8)步进行。 3. 用查询向导创建查询 (1) 创建标准查询: 打开待查询的数据表 ? 从文件菜单中单击新建 ? 在新建对话框中选择查询并单击向导 ? 选择查询向导 ? 从单张或多张相关的表中进行字段选取 ? 设置筛选条件 ? 设置排序次序 ? 选择查询结果的保存方式 ? 给出查询文件名并选择保存位置 ? 查询结果显示在查询窗口中。 注意:查询此时得到的数据是只读的,不可以更新。 (2)交叉表查询 打开待查询的数据表 ? 从文件菜单中单击新建 ? 在新建对话框中选择查询并单击向导 ? 选择交叉表向导 ? 从单张表中选取字段 ? 设计布局 ? 加入总和信息 ? 选择查询结果的保存方式 ? 给出查询文件名并选择保存位置 ? 查询结果显示在查询窗口中。 第 30 页 共 71 页 江苏二级vfp 注意:不是任何表都适宜采用交叉表的形式。 (3)用SELECT-SQL命令创建查询 常用的格式: SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], „ FROM 数据库名! 表名1 [,数据库名! 表名2 ] [, 数据库名! 表名3 ] [TO FILE 文本文件名 | into table | into cursor 表文件名 ] [ WHERE 选定条件] [GROUP BY 分组字段名 ] [HAVING 分组中的满足条件 ] [ORDER BY 排序字段名1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]] 示例: 浏览学生中的查询学生 student.qpr : SELECT 表xs.xh as 学号, 表xs.xm as 姓名, 表xs.xb as 性别, ; 表xs.csrq as 出生日期, 表xs.bj as 班级名称; FROM 数据test!表xs; WHERE 表xs.bj =cs1; ORDER BY 表xs.xh; INTO TABLE xs 浏览成绩中的按课程查询 sub_cj.qpr : SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ; MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分; FROM 数据test!表xs, 数据test!表cj, 数据test!表kc; WHERE 表cj.xh = 表xs.xh; AND 表kc.kcm = 表cj.kcm; AND 表cj.kcm = sc1; GROUP BY 表xs.bj; ORDER BY 表xs.bj; INTO TABLE sub_cj ,.2 创建视图 1. 视图的特点 1) 视图是存在于数据库中的一个虚表,不以独立的文件形式保存; 2) 视图中的数据是可以更改的,它不仅具有查询的功能,且可以把更新结果反映到源数据表中; 3) 视图打开时,其基表自动打开,但视图关闭时,其基表并不随之自动关闭; 4) 视图的数据源可以是自由表、数据库表或另一个视图。 2. 用视图设计器创建本地视图[图例] 从项目管理器中选择一个数据库 ? 选择本地视图 ? 单击新建按钮 ? 选择新视图 ? 添加所需的数据表 ? 在视图设计器中按照与创建查询相同的步骤(2),(6)建立视图 ? 设置更新条件 ? 保存视图 ? 给出视图名称 ? 关闭视图设计器(可以先运行一下看看)。 创建参数化视图: 在筛选页面的实例框中输入: ,参数名 ? 从查询菜单中选择视图参数 ? 在对话框中给出参数名并选择参数类型 ? 确定 ? 保存视图 ? 第 31 页 共 71 页 江苏二级vfp 给出视图名称 ? 关闭视图设计器(可以先运行一下看看)。 3. 用视图向导创建本地视图 从项目管理器中选择一个数据库 ? 选择本地视图 ? 单击新建按钮 ? 选择视图向导 ? 选取字段 ? 关联表 ? 记录操作范围 ? 筛选记录 ? 排序记录 ? 选择保存方式? 完成。 4. 用CREATE SQL VIEW 命令创建视图 打开数据库,用命令来创建视图: OPEN DATABASE 数据库名 CREATE SQL VIEW 视图文件名 AS SQL-SELECT 语句 例: OPEN DATABASE SJ CREAT SQL VIEW SCORE AS SELECT SJCJ.XH, SJCJ.CJ ; FROM SJ!SJCJ WHERE SJCJ.KCH=”计算机基础” 5. 视图的使用 用菜单方式对视图中的记录进行编辑的方法与操作数据表相同。也可用以下命令操作。 视图操作基本命令 打开视图文件并浏览OPEN DATABASE 数据库名 USE 视图文件名 BROWSE 修改视图MODIFY VIEW 视图文件名 视图重命名RENAME VIEW 原视图文件名 TO 新视图文件名 删除视图DELETE VIEW 视图文件名 6(利用视图更新源表数据 可在视图设计器的更新条件页面中进行如下设置来实现对源表数据的更新: 1)从表框中选择想要更新的源表; 2)在字段名框中单击一个字段前关键列B 和更新列 ! ,使其作为主关键字和可更新字段; 3)将发送SQL 更新复选框选中 ,.3 SQL 语言中的命令语句 SQL是一种日趋流行的标准的数据库系统管理语言,能使数据检索异常地方便、灵活。 VFP5.0支持的7条SQL命令一览表 命令功能示例备注 CREATE TABLE -SQL创建一个指定字段的表create table xs (; xh c(4) default "1201" primary key,; xm c(6), ; xb c(2) check xb="男" or xb="女" error "性别只能是男或女" default "女",; nl n(2) null )新表的每个字段由名称、类型、精度、比例、是否支持 NULL 值和参照完整性规则来定义,可从命令本身或数组中获得这些定义。 CREATE CURSOR-SQL创建一个临时表CREATE CURSOR teacher ; (TeacherID N(5), Name C(20), Address; C(30),OfficeNo C(8) NULL, Specialty M) ALTER TABLE - SQL以编程方式修改一个已存在的表的结构。ALTER TABLE xscj ADD COLUMN kcmc C(14)可以修改表中每个字段的名称、类型、精度、比例、是否支持 NULL 值和参照完整性规则。 ALTER TABLE cj; 第 32 页 共 71 页 江苏二级vfp ALTER COLUMN cj SET CHECK cj >= 0; ERROR " 成绩不能为负数" SELECT - SQL从一个或多个表中检索数据。SELECT 表xs.xh, 表xs.xm, 表xs.xb, ; FROM 数据test!表xs; WHERE 表xs.xh >'81991025'; ORDER BY 表xs.xh可以用union命令连接两个条件。 DELETE - SQL使用 SQL 语句将表中的记录加上删除标记。DELETE FROM cj WHERE cj<60 INSERT - SQL在已存在表的末尾追加一条新记录 INSERT INTO xs(xh,xm,xb) VALUES; ("8399101", "张丽", "女")新记录包含的数据列在 INSERT 命令中,或者来自数组。 UPDATE - SQL更新表中的记录UPDATE cj SET cj = cj*1.05 WHERE cj>80可以基于 SELECT - SQL 语句结果更新记录 7503 第六章 面向对象的程序设计(复习要点) 第六章 面向对象的程序设计(复习要点) 第六章 面向对象的程序设计 6.1 面向对象程序设计概述 1. 基本概念 面向对象的程序设计是通过对类、子类和对象等的设计来体现的,类是面向对象程序设计技术的核心。 类:定义了对象特征以及对象外观和行为的模板。 类的特征: 封装性:隐藏了类中对象的内部数据或操作细节,只看到外表信息。 继承性: 任何类都可以从其它已有的类中派生,新类保持了父类中的行为和属性,但增加了新的功能。体现了面向对象设计方法的共享机制。 多态性:相同的操作可作用于多种类型的对象上,并获得不同的结果。 抽象性:提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理。 基类: 系统本身提供的类称为基类。基类包括容器类和控件类。容器类是其他对象的集合,如表格、选项按钮组;控件类是单一的对象,不包含其他对象,如命令按钮、文本框。 子类: 以其他类定义为起点,对某一对象所建立的新类。新类将继承任何对父类所做的修改。 类库: 存储类的文件,每一个以可视方式设计的类都存储在一个类库中。类库文件的扩展名为 .VCX 。 对象:是类的一个实例,包括了数据和过程。具有所在类所定义的全部属性和方法。 VFP有两种对象:容器对象和控件对象。 属性:控件、字段或数据库对象的特性。 事件:由对象识别的一个动作。 第 33 页 共 71 页 江苏二级vfp 方法:与对象相联系的由程序执行的一个处理过程,即处理事件的一组代码。 用户不可以为对象创建新的事件,但可以创建新的方法程序。 2. Visual FoxPro 基类 从下述 Visual FoxPro 基类中,可以派生子类或创建对象。 容器命令组控件微调标签 表单命令按钮复选框OLE 容器控制线条 表单集选项组列表框OLE 绑定型控制分隔符 # 表格选项按钮 #文本框自定义形状 标头 #页框组合框工具栏图象 列 #页面 #编辑框计时器 注:# 这些类是父容器的集成部分,在类设计器中不能子类化。 基类事件的最小集合 事件说明 Init当对象创建时激活。 Destroy当对象从内存中释放时激活。 Error当类中的事件或方法过程中发生错误时激活。 基类属性的最小集合 属性说明 Class该类属于何种类型。 BaseClass该类由何种基类派生而来,例如 Form、Commandbutton 或 Custom 等 ClassLibrary该类从属于哪种类库。 ParentClass对象所基于的类。若该类直接由 Visual FoxPro 基类派生而来,则 ParentClass 属性值与 BaseClass 属性值相同。 容器类 容器类可以包含其他对象,并且允许访问这些对象。每种容器类所能包含的对象如下。 容器能包含的对象 命令按钮组命令按钮 容器任意控件 控件任意控件 表单集表单、工具栏 表单页框、任意控件、容器或自定义对象 表格列标头对象以及除表单、表单集、工具栏、计时器和其他列对象以外的任意对象 表格表格列 选项按钮组选项按钮 页框页面 页面任意控件、容器和自定义对象 工具栏任意控件、页框和容器 第 34 页 共 71 页 江苏二级vfp 6.2 类的创建 1. 创建类的方法 (1)类设计器 (2)表单设计器 (3)编程方式 2. 用类设计器创建类[图例] 使用“类设计器”能够可视化地创建并修改类。 类存储在类库 (.VCX) 文件中。 (1) 创建新类 可以用三种方法(文件菜单、项目管理器、CREATE CLASS命令)打开类设计器并在其中创建新类,且在设计时就能看到每个对象的最终外观。 步骤: 单击文件菜单中的新建 ? 选择类,新文件 ? 在对话框中给出新类的名称、新类基于的类以及保存新类的类库 ? 进入类设计器 | ?] 功 能: 打开菜单设计器进行菜单设计 4. 运行菜单程序 设计好菜单并生成菜单程序文件后, 即可从程序菜单中选执行„来执行此程序。 或 从命令窗口中输入: DO 菜单文件名 .MPR 运行菜单程序文件后, 系统又产生一个同名的编译后的程序文件, 扩展名为 .MPX 5. 创建快捷菜单 单击文件菜单中的新建 ? 选择菜单、新文件 ? 选择快捷菜单 ? 进入快捷菜单设计器 ? 按设计一般菜单相同的方式设计快捷菜单 ? 生成并保存 ? 在表单设计器中给调用此快捷菜单的控件编写代码:DO 快捷菜单名.MPR ? 运行表单即可看到快捷菜单的作用。 6. 创建SDI菜单 单击文件菜单中的新建 ? 选择菜单、新文件 ? 选择菜单 ? 进入菜单设计器 ? 按设计一般菜单相同的方式设计SDI菜单 ? 从显示菜单中选择常规选项 ?在常规选项对话框中将顶层表单前的复选框勾上? 生成并保存 ? 在表单设计器中给调用此SDI菜单的表单的INIT事件编写代码: DO SDI菜单名 .MPR WITH THIS,.T.? 将表单的ShowWindow属性设置为2 ? 运行表单即可看到SDI菜单的作用。 9.3 创建自定义工具栏 1. 用类设计器定义工具栏类 单击文件菜单中的新建 ? 选择类、新文件 ? 给出自定义工具栏类名、基于toolbar、类库名 ? 在类设计器中,将所需的命令按钮和分隔符依次添加到自定义工具栏上 ? 在属性窗口中为每个按钮选择Picture 和 ToolTipText ? 双击各按钮 ? 在代码窗口为各按钮的Click事件添加实现各项功能所需的代码 ? 关闭窗口保存。 2. 用编程方式定义工具栏类 单击文件菜单新建 ? 选择程序、新文件 ? 在程序编辑窗口中用DEFINE命令定义工具栏类,用ADD OBJECT命令添加对象,用 第 48 页 共 71 页 江苏二级vfp PROCEDURE事件名命令为该事件名定义方法程序。 3. 为单集添加工具栏类表 单击文件菜单新建 ? 选择表单、新文件 ? 单击表单控件上的查看类按钮 ? 打开自定义类库 ? 单击表单控件上的自定义工具栏类按钮 ? 在表单上单击并在对话框中选择确定 ? 自定义工具栏类被加到表单集中 ? 运行表单集。 4658 第十章 类的创建和应用(复习要点) 第十章 类的创建和应用(复习要点) 第十章 类的创建和应用 10.1 创建类的方法 1、 类设计器 2、 表单设计器 3、 编程方式 10.2 用类设计器创建类 使用“类设计器”能够可视化地创建并修改类。 类存储在类库 (.VCX) 文件中。 1、 创建新类 可以用三种方法(文件菜单、项目管理器、CREATE CLASS命令)打开类设计器并在其中创建新类, 且在设计时就能看到每个对象的最终外观。 步骤:单击文件菜单中的新建 ? 选择类,新文件 ? 在对话框中给出新类的名称、新类基于的类以及保存新类的类库? 进入类设计器 ? 根据需要在基类的基础上进行所需修改 ? 关闭设计器并确定保存。 2、 为类指定设计时的外观 1) 为类设置一个工具栏图标 在类设计器中从类菜单中选择类信息 ? 打开类信息对话框,在工具栏图标框中键入 .BMP 文件的名称和路径。 附注:工具栏图标的 .BMP 文件必须是 15 乘 16 象素点大小。如果图片过大或过小,它将被调整到 15 乘 16 象素点,图形可能变形。 2) 为类设置一个容器图标 打开类设计器从类菜单选择类信息 ? 在容器图标框中键入将在表单设计器中的控件工具栏按钮上显示的 .BMP 文件名称和路径。 3、 创建类库 可以用三种方法创建类库。 1) 在创建类时,在新类对话框的“存储于”框中指定一个新的类库文件。 2) 使用 CREATE CLASS 命令,同时指定新建类库的名称。 例如,下面的语句创建了一个名为 myclass 的新类和一个名为 new_lib 的新类库: CREATE CLASS myclass OF new_lib AS CUSTOM 3) 使用 CREATE CLASSLIB 命令。 例如,在命令窗口键入下面的命令,可以创建一个名为 new_lib 的类: CREATE CLASSLIB new_lib 第 49 页 共 71 页 江苏二级vfp 4、 修改类定义 在创建类之后,还可以修改它,对类的修改将影响所有的子类和基于这个类的所有对象。也可以增加类的功能或修改类的错误,所有子类和基于这个类的所有对象都将继承修改。 在项目管理器中选择所要修改的类或使用 MODIFY CLASS 命令进行修改。 5、 将表单和控件保存为类 可以将表单或表单上的控件子集保存为类定义。如果打算创建基于表单的子类,或在其他表单中重新使用这些控件,可将表单作为类定义来保存。 从文件菜单中选择另存为类? 在另存为类对话框中,选择当前表单或选定控件? 在“类名”框中输入类的名称 ?在文件框中输入保存类的文件名 ?选择确定按钮。 10.3 用编程方式创建类 在程序窗口中建立一个定义类的程序文件(扩展名为.PRG),然后执行该程序。举例。 10.4 将类添加到表单、表单集和工具栏中 1、 注册一个类库 从工具菜单中选择选项 ?在选项对话框中选择控件选项卡 ? 选择可视类库并选择添加按钮 ?在打开对话框中选择要注册的类库并选择打开 ? 选择确定按钮。 2、 给子类增加功能 使用作用域操作符 (::) 可以在子类上调用父类的代码,引用父类的方法。调用父类方法的语法是:ParentClass::Method( ) 3、 将属性和方法添加到类 可以向新类中添加任意多的新属性和新方法。属性保存一个值,而方法则保存调用时可以运行的过程代码。 从类菜单选择新属性或新方法 ? 在新属性对话框中键入属性或方法的名称 ? 指定它是否受保护。 10.5 类浏览器 1、类浏览器的作用 可创建子类,把类从一个类库复制到另一类库,删除类和库文件,重命名类或者重新定义类关系。 注意:如果要对类进行删除、重命名或重定义,则基于此类的表单可能不能正确运行。 2、 添加一个子类 在类浏览器中打开类库 ? 选择要从中派生子类的类,然后选择新类按钮 ?在新类对话框中输入新子类名 ? 在类设计器中定义并保存子类。 3、把类从一个类库复制到另一类库中 在类浏览器中打开源类库 ? 从工具菜单中打开类浏览器的第二个实例,并选择目标库文件 ? 在源类库中选择要复制的类,然后在按住Ctrl键的同时,把位于类列表上方的类图标拖到目的库中的类图标上。 若不同时按住Ctrl键则是移动。 4、 把多个类从一个类库文件复制到另一个类库文件中 在类浏览器中打开源类库 ? 如果要筛选类列表,则在类型框中键入筛选条件以限定想要从文件中复制的类 ? 从工具菜单中,打开类浏览器的第二个实例,并选择目标库文件 ? 在源类库中,选择要复制的类库文件,然后在按住Ctrl键的同时,把位于类列表上方的类图标拖到目标库中的类图标上。 5、 删除类、类库或表单 1) 在类浏览器中打开类库或表单。 第 50 页 共 71 页 江苏二级vfp 2) 在类列表中,选择要删除的类、类库或表单,然后选择删除按钮。对类来说,它在库中的记录标有删除标记,下一次就可选择清除类库;对类库和表单来说,文件是从磁盘中删除。 6、 重命名类库中的类, 在类浏览器中打开类库 ? 在类列表中,选择要重命名的类,然后选择重命名按钮 ? 在重命名类对话框中,输入新的名称,然后选单击重命名。 注意:如果对具有相关子类的类重命名,则子类将不能引用从重命名类中继承下来的属性。 7、 更改一个类的父类 在类浏览器中打开类库 ? 在类列表中,选择想要重定义的类,然后选择重定义按钮 ? 在重定义对话框的为框中,输入新的父类名。新父类与原父类必须是来源于同一基类 ? 在基于框中,选择或输入类库文件名。 8、 定制类浏览器 可更改类浏览器的属性、事件和方法。可通过程序来操作类浏览器: 1) 打开类浏览器将自动创建公共变量 _oBrowser,可使用此变量来引用或操作类浏览器表单,如同对任何表单对象一样。 2) 对要更改的类浏览器的属性进行设置。 例如,在打开类浏览器之前,可通过下列命令把类浏览器的标题属性设置为 Hello: _OBROWSER.Caption = "Hello" _OBROWSER.Left = 10 3) 打开类浏览器,创建一个实例。 例如,为了打开类浏览器,可输入代码:DO (_BROWSER) 4494 第十一章 应用程序开发(复习要点) 第十一章 应用程序开发(复习要点) 第十一章 应用程序开发 11.1 开发应用程序的基本步骤 在开发应用程序时,首先应进行系统环境规划,规划中要考虑的因素有:应用程序所面向的用户及其可能需要的各种操作、数据库规模、系统工作平台(单用户或是网络)、程序要处理的数据类型(是本地数据还是远程数据)等。规划完成之后,即可利用项目管理器来进行每一步开发,它可以帮助管理开发过程中的所有文件,并最终连编成应用程序。应用程序的开发步骤大致如下图所示: 1. 数据库结构设计 2. 系统功能模块设计 3. 菜单设计 4. 用户界面设计 5. 查询设计 6. 报表设计 7. 系统维护设计 第 51 页 共 71 页 江苏二级vfp 8. 系统模块调试 9. 用项目管理器连编成应用程序 11.2 优化应用程序的技巧 1. 优化表和索引 (1) 如果没有启用记录或表缓冲,应该使用INSERT-SQL命令(因索引只需更新一次),而不要使用APPEND BLANK 命令后再使用REPLACE; (2) 当需要将大量记录追加到索引过的表中时,应先取消或关闭索引,在数据追加完毕,再重建索引,这样速度会快些; (3) 在SQL语句中要尽量避免函数调用; (4) 如果需要经常使用某种索引顺序,应周期性使用此索引对表进行排序,提高表的性能; (5) 在多用户环境中,使用CDX 索引文件比 IDX 索引文件快。 2. 使用Rushmore 技术加速数据访问 使用 Rushmore 技术可以显著地提高查询的速度。Rushmore 是一种从表中快速地选取记录集的技术,它可将查询响应时间从数小时或数分钟降低到数秒。访问单表时,使用 FOR 子句,访问多表时,使用SELECT-SQL 查询,可自动隐含地使用该技术。 (1)访问单个表中的数据,使用一个FOR子句; (2)访问多个表中的数据,使用SELECT-SQL、DELETE-SQL、UPDATE-SQL命令。 3. 优化表单和控件 (1) 使用数据环境; (2)在表单集里限制表单数目; (3)在页框中动态加载页面控件; (4)动态绑定控件与数据; (5)当必须对屏幕进行多处更改时,延迟屏幕刷新; (6)在经常使用的方法程序中减少代码。 4. 提高VFP程序性能的一般技巧 (1)数据要选择正确的数据类型 (2)避免重复打开文件,需要打开多个文件时,将它们分配给不同的工作区,需要时使用SELECT命令选择工作区; (3)尽量使用FOR„ENDFOR循环,而不要使用DO WHILE„ENDDO循环,因为FOR循环较快; (4)从多个字段复制数据时,用SCATTER TO ARRAY 比用SCATTER MEMVER快; (5)为了有效的使用内存,避免在需要对象之前就创建它们,当不要该对象时应及时清除它; (6)尽量将输出发送到顶层窗口,速度快些; (7)使用SET TALK OFF命令取消状态显示,可节省屏幕顶端更新时间; (8)将SET DOHISTORY 设置为OFF,避免当运行程序时每次都更新命令窗口; (9)使用名称表达式代替宏替换,因为名称表达式更快; (10)有效地引用对象属性: ?优化对属性的重复引用,可将属性值保存到一个变量中,再进行更改,在完成时一次性的设置属性; ?有效地引用多个属性,可以用WITH„ENDWITH命令避免重复查找同一个对象,或将对象的引用保存在变量中。 11.3 程序开发实例 —— 简单的高校教学管理系统 第 52 页 共 71 页 江苏二级vfp 1. 设计数据库 数据库的组成:学生登记表、教师登记表、院系登记表、专业登记表、班级登记表、教学计划表、课程登记表、成绩登记表 数据表的结构:各数据表的结构如下表。 表名字段名及字段类型 学生登记表 学号姓名性别出生日期 班级 年级专业院系特长政治面貌 C8C8 C2DC5 C2 C4 C3 MC10 教师登记表教工号姓名性别出生日期职称晋升时间职务专业院系 参加工作时间 C5C8C2DC10D C10 C4 C3 D 成绩登记表学号姓名 课程代号 平时成绩 期末考试 总评成绩 考试类型教师考试日期 C7 C8 C5 N5.1N5.1N5.1C10C5D 教学计划表院系名称班级名称课程名学年/学期学时数考试类型教室任课教师 C10C10C16C5N3C10C4C8 课程登记表课程代号类别课程名学分是否考试是否必修 C5C2C16N3.1LL 班级登记表班级代号班级名称班级人数专业代号 C5 C10 N3 C4 专业登记表专业代号专业名称 部门代号 C4 C20 C3 院系登记表院系代号 院系名称 C3 C20 2. 设计基本表单 总表单:设计主界面表单与口令检查表单(采用表单集)并运行测试。 数据表表单:先用向导创建各数据表的表单,再用表单设计器修改成所需的样式。 数据测试:利用各表单向每个数据表输入部分数据,并进行简单测试。 3. 设计菜单 主菜单组成:根据需要本系统设置6大项菜单:系统维护(需密码才可进入)、浏览、查询、信息输出、帮助、退出。 菜单设计:根据需要完成的各项功能,在菜单设计器中设计各菜单的子菜单和菜单项。 4. 设计浏览表单 设计成表单集的形式,该表单集既要能浏览到各表的详细信息,又要能浏览到相关表的统计信息。在此表单中出现的任何信息仅供浏览。 5. 设计查询表单 先在表单设计器中设计一个查询总表单,再用表单向导中的一对多表单向导设计几个分表单,并在表单设计器中进行所需的修改, 最后在总表单的命令按钮中添加所需代码, 使各项查询功能得到实现。 6. 设计输出报表 根据学校通常所需的教学管理信息,设计一组报表,需要时可以打印出来。 输出报表包括:学生一览表、教师一览表、部门一览表、专业一览表、班级一览表、课程一览表、成绩一览表、教学计划一览表。 7. 完善菜单设计 编制各菜单项的过程代码使菜单功能得以实现。 8. 编制帮助信息 第 53 页 共 71 页 江苏二级vfp 将帮助信息以独立的文件形式保存在计算机中,通过表单的调用来显示帮助信息。帮助信息主要介绍本系统的各项功能及使用方法。 9. 连编应用程序 设计一个主程序,并在项目管理器中用连编按钮将系统所有文件连编成一个应用程序。 10(测试 对不符合要求的部分进行修改,重新连编,再调试,直到完全满足要求为止。 3797 第 54 页 共 71 页 江苏二级vfp 2010年秋江苏二级VFP语言真题 2010年秋江苏二级VFP语言真题 绝密? 启用前 2010年秋 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级试卷 试卷语种:VFP语言 说 明: 1(本试卷包括计算机基础知识部分和程序设计部分,考试时间共12 0分钟; 2(本试卷满分为60分,分选择题和填空题,试卷不分A、B类型; 3(计算机基础知识部分全部是选择题(20分),程序设计部分分为选择题(1 0 分)和填空题(30分)两种; 4(选择题用答题卡答题。每一项有A、B、C、D四个可供选择的答案,请选 择其中一个你认为正确的答案,用HB铅笔涂写在答题卡的相应答题号内。 每选对一项得1分,不选或选错不得分; 5(填空题用答题纸答题。请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的 相应答题号内,每个答案只占一行,不得换行。每填对一个答案得1分, 不填或填错不得分; 6(请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是 否填写正确。 7(考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。待监考人员收 毕清点后,方可离场。 第一部分计算机基础知识 1.微电子技术是信息技术领域中的关键技术,它以集成电路为核心.下列有关集成电路的叙述中,错 误的是 ___(1)___ A. 现代集成电路使用的半导体材料只能是硅(Si),不能使用其它任何半导体材料 B. 集成度是指集成电路包含的电子元件数目,可分为SSI、MSI、VLSI等 C. Moore定律指出,单块集成电路的集成度平均18--24个月翻一番 D. 我国第二代身份证中嵌入了集成电路芯片,可以实现电子防伪和数字管理功能 2. 数据传输速率是数据通信中重要的性能指标。Gb/s是数据传输速率的计量单位之一,其正确含 义是 ___(2)___ 。 A.每秒兆位 B.每秒千兆位 C.每秒百兆位 D.每秒百万位 3. 所谓"变号操作"是指将一个整数变成绝对值相同但符号相反的另一个整数。假设使用补码表示的8位 第 55 页 共 71 页 江苏二级vfp 整数x=10010101,则经过变号操作后结果为___(3)___. A.01101010 B.00010101 C.11101010 D.01101011 4. 下列有关PC机主板的叙述中,错误的是 ___(4)___ 。 A. 主板的物理尺寸没有标准,各厂家均可自行定义 B. 主板上包含芯片组,它是PC机各组成部分相互连接和通信的枢纽 C. 主板上包含BIOS和CMOS芯片 D. 主板上包含CPU插座、内存条插槽及其它类型的插槽 5. 下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是 __(5)____ . A.PC机所采用的CPU都是Intel公司生产的Pentium系列芯片,其它厂商生产的 CPU都与之不兼容 B. 目前已有双核的微处理器(例如Core 2 Duo),但还没有四核的微处理器 c. 通常来说,DRAM的速度比SRAM的存取速度慢 D. 一般来说,一个内存条上仅有一个DRAM或SRAM芯片 6. 下列有关PC机I/O总线与I/O接口的叙述中,错误的是 __(6)____ . A. 目前PC机中协调与管理总线操作的总线控制器包含在主板上的芯片组中 B. 总线最重要的性能是数据传输速率,其单位通常为MB/s或GB/s C. SATA接口的数据传输速率通常低于USB 2.0的数据传输速率 D. USB连接器有4个引脚,其中一个引脚连接+5V电源 7. 下列有关PC机常用I/O设备的叙述中,错误的是__(7)____。 A. 目前台式机键盘通常有一百零几个按键,笔记本电脑的键盘有八十几个按键 B. 目前流行的鼠标是光电鼠标,其与主机的接口有PS/2与USB两种 C. 宽屏LCD显示器的宽高比为16:9或16:10 D. 打印速度是打印机的重要性能指标,速度单位通常为dpi 8. 下列有关PC机外存储器的叙述中,错误的是___(8)___ 。 A. 目前硬盘的盘片大多为3.5、2.5或1.8英寸,一个硬盘中可有一个或多个盘片 B. 目前有些u盘可以模拟硬盘和光盘存储器启动操作系统 C. 目前光盘存储器主要分为CD、DVD和BD三种,它们均采用红外激光进行读写 D. 目前光驱的速率通常用多少倍速表示 9. 下列有关计算机软件的叙述中,错误的是___(9)___. A. 软件一般是指程序及其相关的数据和文档资料 B. 从软件的用途考虑,软件可以分为系统软件和应用软件,主要的系统软件有操作系统、语言处理系统和数据库管理系统等。 C. 从软件的权益来考虑,软件可以分为商品软件、共享软件和自由软件,共享软件和自由软件均为无版权的免费软件 D.Linux是一种系统软件、自由软件 10.到目前以止,Windows系列操作系统已推出多个版本。在下列版本中,最新的Windows 版本是___(10)___ A. Windows7 B. Windows Me C. Windows XP D. Windows Vista 11.下列有关Windows XP操作系统功能的叙述中,错误的是___(11)___. A. 系统通过"时间片”轮转策略支持多任务处理 B. 系统利用SPOOLing技术进行存储管理 第 56 页 共 71 页 江苏二级vfp C. 在设备管理中引入了缓冲技术,以减少I/O操作的等待时间 D. 系统支持PnP功能,并按ACPI标准进行电源管理 12.在因特网中某台主机的IP地址为20.25.30.8,子网掩码为255.255.255.0,那么该主机 的主机号为 ___(12)___ 。 A. 20 B. 25 C. 30 D. 8 13.局域网中需要传输的数据必须预先组织成若干数据帧,每一数据帧的格式如下图所示: 上图中最末部分"?”表示的是___(13)___ 。 发送计算机地址目的计算机地址编号有效载荷 ? A. 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 信息 B.校验信息 C.冗余信息 D.结束标志 14.目前网络用户接入因特网有多种方式,例如ADSL、HFC等。通过HFC接入因特网时采用的网络是___(14)____。 A. 有线电话网 B. 有线电视网 C. 无线局域网 D. 移动电话网 15.下列网络协议中,直接与电子邮件传输相关的网络协议是___(15)___。 A.FTP B.SMTP C.TELNET D.NNTP 16.下列有关计算机中文本与文本处理的叙述中,错误的是 ___(16)____ A. 西文字符主要是采用ASCII字符集,基本ASCII字符集共有256个字符 B. 我国最早采用的汉字字符集是GB2312,包含6000多个汉字和若干个非汉字字符 C. 无论采用何种方式输入汉字,在计算机中保存时均采用统一的汉字内码 D. 简单文本和丰富格式文本中字符信息的表示相同,区别在于格式信息的表示 17.彩色图像所使用的颜色描述方法称为颜色模型(即颜色空间)。下列四种颜色模型中, 彩色喷墨打印机使用的是___(17)___. A. RGB B. HSB C. YUV D. CMYK 18.文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名,下 列文件中,属于数字声音的文件是______ A. ABC.RM B. ABC.WMA C. ABC.MKV D. ABC.SWF 19.信息系统软件开发瀑布模型包括系统规划、系统分析、系统设计、系统实施和系统维 护等几个阶段。下面各项工作中,属于系统实施阶段的是___(19)___ A.问题定义 B.可行性研究 C.系统测试 D.绘制E-R图 20.下列有关Micmsoft Word 2003和Microsoft Excel 2003软件的叙述中,错误的是___(20)___ A. 利用Word软件编辑文档,可以将其保存为TXT、DOC、RTF和HTM格式文件 B. 利用Word软件编辑文档时,可以统计选定文本的字符数 C. 在Excel软件中,可以打开(导入)TXT、DBF、HTML格式的文件(数据) D. Excel文件可以设置打开权限密码,但不可以单独设置修改权限密码 第 57 页 共 71 页 江苏二级vfp 第二部分Vi sua I FoxPro程序设计 一、选择题(用答题卡答题,答案依次填在21,30答题号内) 21.假设某学生表(XS)中有学号(XH)、姓名(XM)和籍贯(JG)等字段,SQL语句"SELECT xh FROM xs"完成的是关系的 ____(21)____ 操作。 A.选择 B.投影 C.连接 D.并 22.文件扩展名为MNX的文件是 ____(22)_____ 。 A.项目文件 B.表单文件 C.菜单文件 D.备注文件 23.函数LEN(DTOC(DATE0,1))的返回值是 _____(23)_____ A.1 B.4 C.8 D.10 24.在下列有关数据库表和自由表的叙述中,错误的是 _______(24)______ 。 A.数据库表和自由表都可以利用表设计器来创建 B.数据库表和自由表都可以创建主索引和普通索引 C.自由表可以添加到数据库中成为数据库表 D.自由表与数据库表、自由表与自由表之间不可创建永久性关系 25.在下列有关查询与视图的叙述中,错误的是 ______(25)_______ . A.利用查询设计器创建的查询文件,可以利用"Windows记事本"应用程序打开和修改 B.可以基于一个视图来建立新的查询,也就是说查询的数据源可以是视图 C.基于两个表进行查询时,查询结果的记录数可能大于两个表的记录数之和 D.可以基于一个查询文件来建立新的查询,也就是说查询的数据源可以是查询 26.下列自定义函数ABC的功能是计算一个整数的各位数字之和: FUNCTION abc Parameter x s=0 DO WHILE x>0 s=s+MOD(x,10) ___________ ENDDo RETURN S ENDFUNC 在上述函数定义中,下划线处应填写的语句是____(26)_____ . A.x=INT(x/10) B.x=x-INT(x/10) C.x=INT(x%10) D.x=x-INT(x%10) 27.下列有关表单设计器和表单(集)的叙述中,错误的是___(27)___。 A.利用表单设计器可以创建和设计表单集 B.表单的最大设计区(即表单的大小,或者说分辨率)由系统决定,用户不可对其调整 C.利用"ActiveX控件(OleControl)"可以向表单中添加视频和声音对象 D.在默认情况下,表单的AutoCenter属性值为.F. 28.下列VFP基类中,均有ControlCount属性的是___(28)___ A.Form、TextBox、ListBox B.FormSet、Form、PageFrame C.Form、Page、Column D.Column、OptionGroup、CommandGroup 第 58 页 共 71 页 江苏二级vfp 29.对于表单上的某文本框控件来说,下列事件中一定会发生的事件是___(29)___ . A.Init B.When C.valid D.GotFocus 30.下列命令中,语法正确的是 ___(30)____ A.DO PROGRAM ? B.DO QUERY ? C.DO MENU ? D.DO FORM ? 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) 1.在信息系统的开发过程中,数据库设计一般分为三个阶段,即概念结构设计、逻辑结构设计和物理结构设计。其中,概念结构设计阶段常使用的设计工具是___(1)__图。 2.在Windows环境下,用户通常使用鼠标的拖放操作或利用剪贴板功能进行文件的复制。在VFP中,可以直接使用命令对文件进行复制。例如,将当前工作目录中的"abc.txt"文件复制到盘符为E的U盘中,可以使用命令___(2)___abc.txt TO e:。 3.VFP支持多种数据类型,例如字符型、货币型、数值型等等。每种数据类型可以用一个字母表示,例如字符型可用C表示、数值型可用N表示、备注型可用___(3)___ 表示。 4.函数ABS(MOD(-23,-5))的返回值为___(4)___;若要产生一个0-1之间的随机数,可以使用函数___(5)___ 。 5.用户可以在表设计器中修改表结构,也可以用命令直接修改表结构。例如,删除XS表的更新触发器可以使用命令DELETE ___(6)___ON xs FOR UPDATE。 6.某表中有数值型的NL字段(字段宽度为3,无小数位)和字符型的DW字段.如果需要为该表创建一个普通索引,要求首先根据NL字段捧序,NL字段值相同时根据Dw字段捧序,则索引表达式可以为___(7)___ +dW。 7.一个工作区中仅能打开一个表,但同一个表可以在多个工作区中同时打开.例如XS表已在1号工作区打开,则在5号工作区再次打开该表,可以使用命令USE xs IN 5 ___(8)___ . 8.在VFP中使用Microsoft Excel文件中的数据有两种方法:一是执行"文件"菜单中的"导入"菜单命令(采用这种方式将会创建一个新表);二是利用命令___(9)___将.XLS文件中的数据追加到当前工作区的表中。 9.在使用SELECT-SQL命令进行查询时,可以在查询命令中使用___(10)__子句指定查询结果必须满足的筛选条件。 10.某展览会对每位参观者进出都有登记,并将数据记录在表DJB中.DJB表含有进门时间(JSJ,日期时间型)、出门时间(CSJ,日期时间型)等字段。下列SELECT-sQL命令可以查询出每天的参观人数及参观者在展览会上逗留的平均时间(以小时计): SELECT LEFT(TTOC(jsj),8) AS 日期,___(11)___AS 参观人数,; ___(12)___ /60 AS平均时间; FROM djb; ___(13)___ 11.某高速公路上有一测速点(该路段限速60--120km/h),它对所有来往的车辆进行测速,并将测速数据登记在表CLCS中。该表含有日期时间(SJ)字段、汽车牌号(PH)字段和数值型的车速(cs)字段.下列SELECT-SQL命令可以查询出所有的违章车辆(低于最低速度或超过最高速度限制): 第 59 页 共 71 页 江苏二级vfp SELECT sj,ph,cs FROM clcs _____(14)______ 12.在VFP中,内存变量通常不需要特别声明(定义),在需要使用时可以直接进行赋值。但通过预先的声 明,可以定义变量的作用域。例如,下列命令(语句)声明了两个全局变量x、y: ____(15)_____ x,y 13.运行下列程序后,显示的运行结果为____(16)________ CLEAR FOR i=1 T0 3 j=1 DO WHILE j<4 m=i*j IF MOD(m,2)=0 ??m ENDIF j=j+1 ENDDO i=i+1 ENDFOR 14.下列程序(由10行语句组成)的功能是求出所有的幸运数(幸运数是指前两位数字之和等于后两位 数字之和的四位数),但程序运行时提示程序的第5行有错?第5行语句应修改为____(17)_____ CLEAR DIME x(4) FOR i=1001 TO 9999 FOR j=1 T0 4 x(j)=VAL(SUBSTR(i,j,1)) ENDFOR IF x(1)+x(2)=x(3)+x(4) ?i ENDIF ENDFOR 15.完善下列程序,其功能是统计一个文本文件(内容为英文文章)中大小写英文字母的个数。 CLEAR cFile=GETFILE('TXT','文件名') cc=fileToMem(cFile) STORE 0 TO i,j DO WHILE LEN(cc)>0 c=LEFT(cc,1) ____(18)______ CASE ASC(c)>96 AND ASC(c)<123 j=j+1 CASE ASC(c)>64 AND ASC(e)<91 i=i+1 ENDCASE cc=SUBSTR(___(19)____) 第 60 页 共 71 页 江苏二级vfp ENDDO ?'大写、小写英文字母个数分别为',_____(20)______ FUNCTION fileToMem &&该函数的功能是将文件内容读到内存变量中 PARAMETER cFileName fhandle=FOPEN(cFileName) cText=SPACE(0) IF fhandle>0 nSize=FSEEK(fhandle,0,2) =FSEEK(fhandle,0) eText=FREAD(fhandle,nSize) =FCLOSE(fhandle) ENDIF RETURN cText 16.利用报表设计器设计报表时,报表设计区分为多个报表带区。系统规定最多有9种不同的报表带区,即标题、页标头、列标头、组标头、细节、组注脚、列注脚、页注脚和 ____(21)_____带区。 17.在菜单设计器中设置某一菜单(项)的"结果",就是指定在选择该菜单(项)时发生的动作(即指定任务),可以设置的"结果"类型有命令、填充名称、___(22)____和过程。 18.主程序是一个应用系统运行时的起点,在连编项目之前一般要确定主程序.对于程序、菜单、表单、报表、查询来说,不能设置为主程序的是___(23)____。 19.基类的事件集合是固定的,不能进行扩充。基类的最小事件集包括____(24)____事件、Destroy事件和Error事件。 20.设有"列表框示例"表单如图1所示。表单上有一个命令按钮控件(Command1)、两个标签控件和两个列表框控件(List1和List2),且两个列表框的数据源类型已分别设置为"结构"和"值"。单击命令按钮可以打开"打开"对话框以选择表文件,然后打开表文件、设置List1列表框的属性以显示表的结构(字段名),命令按钮的Click事件代码应为: CLOSE TABLE ALL cfile=GETFILE('DBF','文件名') IF !FILE(cfile) RETURN ENDIF USE &cfile THISFORM.List1.___(25)____=ALIAS() THISFORM.Refresh 对于List1列表框来说,双击其中的某列表项可以将其添加到List2列表框,且从List1列表框中移去该项,List1列表框的DblCiick事件代码为 THISFORM.List2.____(26)_____(THISFORM.List1.Value) THISFORM.____(27)____.RemoveItem(THIS.ListIndex) 21.设有用于"显示日期或时间"的表单如图2所示.表单有一个计时器控件(Timerl)、一个文本框控件(Textl)和选项按钮组控件(Optiongroup1)。表单左上角的图标默认是VFP系统图标("狐狸头"),如果要更改该图标,应设置表单的___(28)____属性:表单上的文本框用于显示当前日期或当前时间(是显示日期还是显示时间,由选项按钮组决定);计时器控件根据选项按钮组和当前系统日期/时间,每秒更新文本框内容一次,则计时器控件的___(29)___ 第 61 页 共 71 页 江苏二级vfp 事件代码可设置为: IF THISFORM.OptionGroup1.value=1 THIS.___(30)___.Text1.Value=DATE() &&对象引用采用相对引用 ELSE THISFORM.Text1.Value=TIME() ENDIF THISFORM.Text1.Refresh 一 选择题 1.A 2.B 3.D 4.A 5.C 6.C 7.D 8.C 9.C 10.A 11.B 12.D 13.B 14.B 15.B16.A 17.D 18.B 19.C 20.D 21.B 22.C 23.C 24.B 25.D 26.A 27.B 28.C 29.A 30.D 二 填空题 (答案不区分大小写) (1)E-R (2)COPY FILE (3)M (4)3 (5)Rand() (6)TRIGGER (7)str(nl) (8)again (9)APPEND FROM (10)Where (11)COUNT(*) (12)(csj-jsj)/60 (13) GROUP BY 1 (14) Where cs<60 Or cs>120 或者输入Where not Between(cs,60,120) (15) PUBLIC (16)2 6 (17) x(j)=VAL(SUBSTR(str(i,4),j,1)) (18)DO CASE (19)cc,2 (20)i,j (21)总结 (22)子菜单 (23)报表 (24)Init (25)RecordSource (26)AddItem (27)List1 (28)ICON (29)TIMER (30)Parent 334 第 62 页 共 71 页 江苏二级vfp 2009年春江苏省二级VFp考试试题与答案 2009年春江苏省二级VFp考试试题与答案 绝密?启用前 2009年春 江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级试卷 试卷语种: Visual FoxPro 说 明: 1.本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟 2.本试卷满分为60分,分选择题和填空题,试卷不分A、B类型; 3.计算机基础知识部分全部是选择题(20分),程序设计部分分为选择题(10分)和填空题(30分)两种; 4.选择题用答题卡答题。每一项有A、B、C、D四个可供选择的答案,请选择其中一个你认为正确的答 案,用HB铅笔涂写在答题卡的相应答题号内。每选对一项得1分,不选或选错不得分; 5.填空题用答题纸答题。请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的相应答题号内,每个答案 只占一行,不得换行。每填对一个答案得1分,不填或填错不得分; 6.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是否填写正确。 7.考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。待监考人员收点 第一部分计算机基础知识 1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。 A.集成电路是20世纪90年代初出现的,它的出现直接导致了微型计算机的诞生 B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件 C.目前所有数字通信均不再需要使用调制解调技术和载波技术 D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘ . 2. 最大的10位无符号二进制整数转换成八进制数是 2 .。 A.1023 B.1777 C.1000 D.1024 3. 在下列有关目前PC机CPU的叙述中,错误的是 3 。 A.CPU芯片主要是由Intel公司和AMD公司提供的 B."双核"是指PC机主板上含有两个独立的CPU芯片 C.Pentium 4微处理器的指令系统由数百条指令组成 D.Pentium 4微处理器中包含一定容量的Cache存储器 4. 在下列有关当前PC机主板和内存的叙述中,正确的是 4 。 A.主板上的BIOS芯片是一种只读存储器,其内容不可在线改写 B.绝大多数主板上仅有一个内存插座,因此PC机只能安装一根内存条 C.内存条上的存储器芯片属于SRAM(静态随机存取存储器) D.目前内存的存取时间大多在几个到十几个ns(纳秒)之间 5. 在下列有关PC机辅助存储器的叙述中,正确的是 5 。 A.硬盘的内部传输速率远远大于外部传输速率 B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度 第 63 页 共 71 页 江苏二级vfp C.使用USB 2.0接口的移动硬盘,其数据传输速率大约为每秒数百兆字节 D.CD-ROM的数据传输速率一般比USB 2.0还快 6. 在下列PC机I/O接口中,数据传输速率最快的是 6 。 A.USB 2.0 B.IEEE-1394 C.IrDA (红外) D.SATA 7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。在下列相关叙述中,错误的是 7 。 A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的 B.共享软件通常是一种"买前免费试用"的具有版权的软件 C.自由软件的原则是用户可共享,并允许拷贝和自由传播 D.软件许可证是一种法律 合同 劳动合同范本免费下载装修合同范本免费下载租赁合同免费下载房屋买卖合同下载劳务合同范本下载 ,它确定了用户对软件的使用权限 8. 人们通常将计算机软件划分为系统软件和应用软件。下列软件中,不属于应用软件类型的是 8 A.AutoCAD B.MSN C.Oracle D.Windows Media Player 9. 在下列有关Windows 98/2000/XP操作系统的叙述中,错误的是 9 。 A.系统采用并发多任务方式支持多个任务在计算机中同时执行 B.系统总是将一定的硬盘空间作为虚拟内存来使用 C.文件(夹)名的长度可达200多个字符 D.硬盘、光盘、优盘等均使用FAT文件系统 10. 在下列有关算法和数据结构的叙述中,错误的是 10 。 A.算法通常是用于解决某一个特定问题,且算法必须有输入和输出 B.算法的表示可以有多种形式,流程图和伪代码都是常用的算法表示方法 C.常用的数据结构有集合结构、线性结构、树形结构和网状结构等 D.数组的存储结构是一种顺序结构 11•因特网的IP地址由三个部分构成,从左到右分别代表 11 。 A.网络号、主机号和类型号 B.类型号、网络号和主机号 C.网络号、类型号和主机号 D.主机号、网络号和类型号 12•在下列有关ADSL技术及利用该技术接入因特网的叙述中,错误的是 12 。 A.从理论上看,其上传速度与下载速度相同 B.一条电话线上可同时接听/拨打电话和进行数据传输 C.利用ADSL技术进行数据传输时,有效传输距离可达几公里 D.目前利用ADSL技术上网的计算机一般需要使用以太网网卡 13.人们往往会用"我用的是10M宽带上网"来说明白己计算机连网的性能,这里的"10M" 指的是数据通信中的 13 指标。 A.最高数据传输速率 B.平均数据传输速率 C.每分钟数据流量 D.每分钟IP数据包的数目 14•计算机局域网按拓扑结构进行分类,可分为环型、星型和 14 型等。 A.电路交换 B.以太 C.总线 D.对等 第 64 页 共 71 页 江苏二级vfp 15.网络信息安全主要涉及数据的完整性、可用性、机密性等问题。保证数据的完整性就是 15 。 A.保证传送的数据信息不被第三方监视和窃取 B.保证发送方的真实身份 C.保证传送的数据信息不被篡改 D.保证发送方不能抵赖曾经发送过某数据信息 16.某计算机系统中,西文使用标准ASCII码、汉字采用GB2312编码。设有一段纯文本,其机内码为CB F5 DO B4 50 43 CA C7 D6 B8,则在这段文本中含有: 16 。 A.2个汉字和1个西文字符 B.4个汉字和2个西文字符 C.8个汉字和2个西文字符 D.4个汉字和1个西文字符 17.以下关于汉字编码标准的叙述中,错误的是 17 。 A.GB 2312标准中所有汉字的机内码均用双字节表示 B.我国台湾地区使用的汉字编码标准BIG 5收录的是繁体汉字 C.GB 18030汉字编码标准收录的汉字在GB 2312标准中一定能找到 D.GB 18030汉字编码标准既能与UCS(Unicode)接轨,又能保护已有中文信息资源 18.若波形声音未进行压缩时的码率为64kb/s,已知取样频率为8kHz,量化位数为8,那么它的声道数是 18 。 A.1 B.2 C.4 D.8 19.从信息处理的深度来区分信息系统,可分为业务处理系统、信息检索系统和信息分析系统等。在下列几种信息系统中,不属于业务处理系统的是 19 。 A.DSS B.CAI C.CAM D.OA 20.在下列有关信息系统开发、管理及其数据库设计的叙述中,错误的是 20 。 A.常用的信息系统开发方法可分为结构化生命周期方法、原型法、面向对象方法和CASE方法等 B.在系统分析中常常使用结构化分析方法,并用数据流程图和数据字典来表达数据和处理过程的关系 C.系统设计分为概念结构设计、逻辑结构设计和物理结构设计,通常用E-R模型作为描述逻辑结构的工具 D.从信息系统开发过程来看,程序编码、编译、连接、测试等属于系统实施阶段的工作 第二部分Visual FoxPro程序设计 一、选择题(用答题卡答题,答案依次填在21-30答题号内) 21.在下列叙述中,错误的是 21 。 A.关系型数据库中的每一个关系都是一个二维表 B.在关系模型中,运算的对象和运算的结果都是二维表 C.二维表中不允许出现任何数据冗余 D.Visual FoxPro是一种关系型数据库管理系统产品 22.关键字是关系模型中的重要概念。当一个二维表(A表)的主关键字被包含到另一个二维表(B表)中时,它就称为B表的 22 。 A.主关键字 B.候选关键字 C.外部关键字 D.超关键字 23.在Visual FoxPro系统中,下列返回值是字符型的函数是 23 。 A.VAL() C.DATETIME() B.CHR() D.MESSAGEBOX() 第 65 页 共 71 页 江苏二级vfp 24.在Visual FoxPro系统中,数据库表的字段默认值保存在 24 。 A.项目文件中 C.数据库表文件中 B.数据库文件中 D.数据库表的备注文件中 25.在Visual FoxPro系统中,下列关于数据库和数据库表的叙述错误的是 25 。 A.数据库是一个容器,它是许多相关的数据库表及其关系的集合 B.数据库表与数据库之间的相关性是通过数据库表文件与数据库文件之间的双向链接实现的 C.数据库表随着其所在的数据库的关闭而关闭,但不随着其所在的数据库的打开而打开。 D.一个数据库表可以属于多个数据库 26.依次执行下列命令后,浏览窗口中显示的表的别名及当前工作区号分别是 26 。 CLOSE TABLES ALL USE js SELECT 5 USE js AGAIN SELECT O USE js AGAIN BROWSE A.B、2 B.TS、2 C.B、5 D.E、2 27.在Visual FoxPro系统中,下列关于查询和视图的叙述错误的是 27 。 A.查询文件是一种包含SELECT-SQL语句的文本文件,其扩展名为.QPR. B.查询的输出去向可以为Excel文件,即可以将查询的结果直接存储为Excel格式 c.视图不以文件形式独立保存,视图的定义保存在数据库文件中 D.可以使用USE命令打开和关闭视图 28.设表单Form1上有一个命令按钮组CommandGroup1,命令按钮组中有两个命令按钮(分别:cmdl和cmd2)。若单击命令按钮Cmdl,可以将命令按钮Cmd2设置为废止状态,则在命令按Cmdl的Click事件中,应包含 28 命令(或功能与之等价的命令)。 A.This.Parent.Cmd2.Enabled=.F. B.ThisForm.Cmd2.Enabled=.F. C.THis.CommandGroup1.cmd2.Enabled=.F. D.THIS.Cmd2.Enabled=.F. 29.在下列几组控件中,均具有ControlSource属性和Value属性的是 29 。 A.Pageframe、EditBox、OptionGroup C.TextBox、Label、CommandButton B.ListBox、Grid、ComboBox D.CheckBox、Spinner、ComboBox 30. 在下列有关报表设置的叙述中,错误的是 30 。 A.定义报表的两个要素是报表的数据源和报表的布局 B.报表的数据源只能是表 C.报表布局的常规类型有列报表、行报表、一对多报表等 D. 标签实质上是一种多列布局的特殊报表 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) 1.关系的基本运算有两类:一类是传统的集合运算,主要指并、差、交等运算:另一类是专门的关系运算,主要指选择、(1) 、联接等运算。 2.数据字典是系统中各类数据定义和描述的集合。在数据字典中,除了定义外部实体、(2)、处理逻辑和数据存储以外,还需要对数据元素和数据结构进行定义 第 66 页 共 71 页 江苏二级vfp 3.内存变量是在内存中设置的临时存储单元,当退出Visual FoxPro时其数据自动丢失,若要保存内存变量以便以后使用,可使用SAVE To命令将其保存到文件中。在visual FoxPr 中,默认的内存变量文件的文件扩展名为 (3) 。 4.表达式SUBSTR("计算机等级考试",AT("DBMS","ABCDEFDBMS"),LEN("数据库管理系统"))的返回值为 (4) . 5.依次执行下列两条命令,则屏幕上显示的结果是 5 。 DIMENSION y(2) ?TYPE("y(1)") 6.MESSAGEBox()函数的功能是显示一个用户自定义对话框。若未指定该对话框的标题,则对话框的默认标题为: 6 7.在VIsual FoxPro系统中,可以实现关系型数据库的三种完整性:实体完整性、(7)和用户自定义完整型。 • 8.在VisualFoxPro中,每个表最多可以有 ( 8 )个字段。 9.创建一个教师表(JS.dbf),其中有字段gh(工号,字符型,长度为6)、xm(工号,字符型,长度为10)、xb(性别,字符型,长度为2)、csrq(出生日期,日期型)、JL(教师简历,备注型 ,且允许为空值)。 CREATE TABLE JS(gh c(6),xm C(10),xb c(2),csrq D,jl M _____(9)____) 10.在命令窗口或程序中,可以使用usE命令打开一个表。在该命令中,(10)子句用于定 义表的别名。 11.利用DBGETPRoP()函数可以返回当前数据库的属性,或者返回当前数据库中表、表的字段或视图属性,例如,函数DBGETPROP("xs.xh",___(11)____"DefaultValue")可以返回xs表xh字段的默认值属性。 12.一个表可以有一个或多个索引,在需要使用某个索引时必须显式地指定,即将某个索引设置为"主控索引"。在USE命令中使用(22)子句,可以在打开表的同时设置主控索引。 13.在教学管理数据库JxsJ中有2个表:XS.DBF(学生表)和CJ.DBF(成绩表),表结构如下: XS.DBF 字段名 含义 字段类型及宽度 XH 学号 C(8) XM 姓名 C(8) XB 性别 C(2) CJ.DBF 字段名 含义 字段类型及宽度 XH 学号 C(8) KCDH 课程代号 C(3) CJ 成绩 N(3) (1)完善下列SELECT-sQL命令,其功能是基于xs表和cJ表查询总成绩前3名的学生的情况, 要求输出为XH、XM、总成绩和选课门数。 SELECT_(13)__ XS.xh,XS.xm,SUM(CJ.CJ) AS 总成绩,COUNT(*) AS 选课门数; FROM jxsj!xs INNER JOIN jxsj!cj; ON Xs.xh=cj.xh; GROUP BY XS.xh; (14) 第 67 页 共 71 页 江苏二级vfp (2)完善下列SELECT-SQL命令,其功能是基于XS表和CJ表查询有两门或两门以上课程不合格的学生情况。要求输出为XH、XM、选课门数和不及格门数,查询结果按不及格门数排序且将查询结果输出到打印机打印。(注:CJ小于60为不及格) SELECT XS.xh,XS.xm,COUNT(*) AS 选课门数, (15) AS 不及格门数; FROM jxsj!xs INNER JOIN jxsj!cj; ON Xs.xh=cj.xh; GROUP BY CJ.xh; ORDER BY 4 (16) 14.某图书管理数据库有"读者"和"借阅"2个表。"读者"表中含有:借书证号(字符型)、单位(字符型)、姓名(字符型)等字段,"借阅"表中含有:借书证号(字符型),书目编号(字符型),借书日期(日期型)等字段。执行下列SELECT-SQL命令,可以检索出当前至少借阅了5本图书的读者姓名和所在单位。 SELECT 姓名,单位 FROM 读者 WHERE 借书证号 IN; (SELECT 借书证号 FROM 借阅 GROUP BY 借书证号 HAVING (17) >=5) 15.在SELECT-SQL语句中,若要使查询结果中无重复记录,则可使用( 18 ) 关键字;若要组合两个SQL SELECT语句的结果(结构相同),则应使用( 19 )子句。 16.在"表单设计器"中设计表单时,若从"数据环境设计器"中将某表的逻辑型字段拖放到表单中,则在系统默认情况下表单中将会增加一个 (20) 对象。 17.某表单上有一个文本框控件,若要该文本框的初值设置为当前系统日期,则可以在该文本框的Init事件代码中设置语句 (21) 。 18.对于组合框控件来说,要在组合框失去焦点前检验其值的有效性,可以在 (22) 事件代码中写入相应的有效性检验代码。 19.在某单位设备管理系统中,数据库SBGL中有设备代码表SBDM.DBF和设备明细表SBMX.DBF, 其结构如下: SBDM.DBF 宇段名 含义 字段类型及宽度 DM 设备代码 C(8) PM 设备名称 C(20) SBMX.DBF 字段名 含义 字段类型及宽度 DM 设备代码 C(8) DJ 单价 N(10.2) 某表单运行后如图1所示,其数据环境包含SBDM.DBF和SBMX.DBF表,表单上有2个文本框 控件(Textl和Text2)、4个标签控件(Labell、Label2,Label3和Label4)、1个组合框控件(Combo1)和1个表格控件(GridI)。其中,文本框控件Textl和Text2均为只读;标签控件Labell、Label2、Label3、Label4的Caption属性值分别为“设备代码"、"总金额"、"平均价"和"设备明细表";表格控件的RecordSourceType属性值为4(SQL说明);组合框combo1的RowsourceType属性值为6(字段),Rowsource属性值为字段SBDM.DM,其 InteractiVeChange事件代码的功能是: 当选中组合框中某设备的代码时,表格(Gridl)中显示出该设备的设备代码、设备名称和单价的明细记录(注:每条记录的设备件数为1),文本框Textl和Text2分另别显示该设备的总金额和平均价,Label4被选 第 68 页 共 71 页 江苏二级vfp 设备名称和"设备明细表"字样。 根据以上所示的表单及要求,填写下列有关内容。 (1)文本框Textl和Text2的 ( 23 )值为.T. (2)组合框(Combo1)的InteractiveChange事件代码如下: cDm=ALLTRIM(THIS.Value) SELECT SUM(sbmx.dj).COUNT(*) FROM sbmx; WHERE ALLT(Sbmx.dm)=cDm INTO ARRAY cA THISFORM.Gridl. (24) ="SELECT sbmx.dm AS 设备代码,; sbdm.pm AS 设备名称,sbmx.dj AS 单价; FROM sbgl!sbdm INNER JOIN sbgl!sbmx; ON Sbdm.dm=Sbmx.dm; WHERE ALLT(sbmx.dm)=cDm; INTO CURSOR temp" THISFORM.Textl.Value=cA(1,1) THISFORM.Text2.Value=cA(1,1)/cA(1,2) THISFoRM.Label4.CAPTION=ALLTRIM(Sbdm, (25) )+"设备明细表" 20(完善下列程序,使两个程序的功能相同(求一个数列的前20项之和)。 【程序清单1】 【程序清单2】 CLEAR CLEAR s=0 s=0 FOR i=1 To 20 FOR i=l TO 19 STEP 2 s=s+(-1)**(i+1)/( 26 ) s=s+1/(i*(i+1))-1/((i+1)*(i+2)) ENDFOR ENDFOR ?s ?S 21(下列程序用来计算数列2/1,3/2,5/3,„„,155/18,173/19,192/20,„„的前20项之和。阅读程序并完善,使它能实现要求的功能。 【程序清单】 CLEAR m=2 s=0 FOR i=1 TO 20 s=s+m/i m= (27) ENDFOR ?s 22(执行下列程序后,输出到屏幕的结果为( 28 )。 【程序清单】 CLEAR cstring="VisualFoxPro" nresult=0 m=LEN(cstring) FOR n=1 to m c=SUBSTR(cstring,n,1) IF !BETWEEN(ASC(c),ASC("A"),ASC("Z")) 第 69 页 共 71 页 江苏二级vfp LOOP ENDIF nresult=nresult+l ENDFOR ?nresult 23。执行下列程序后,输出到屏幕的结果为(29) 。 【程序清单】 CLEAR STORE 5 TO ml,m2 STORE 1 TO m3,m4 DO PA WITH ml,m2,m3,m4 ?m4 PROCEDURE PA PARAMETER a,b,c,d d=b^2-4*a*c DO CASE CASE d<0 d=100 CASE d=0 d=200 CASE d>0 d=300 ENDCASE RETURN 24(一只球从100米的高度自由落下,每次落地后反弹回原高度的一半。下列程序的功能是:计算并 显示当它在第10次落地时,总共经过的距离和第10次反弹的高度。 【程序清单】 CLEAR S=100 h=50 FoR i=1 TO 9 s=s+h*2 h=( 30 ) ENDFOR ?"球在第10次落地时,共经过了:'+ALLT(STR(s,10,6))+"米" ?"球第1O次反弹的高度是:"+ALLT(STR(h,10,6))+"米" 公共基础知识部分: 1.D 2.B 3.B 4.D 5.B 6.D 7.A 8.C 9.D 10.A 11.B 12.A 13.A 14.C 15.C 16.B 17.C 18.A 19.A 20.C VFP部分: 第 70 页 共 71 页 江苏二级vfp 21.C 22.C 23.B 24.B 25.D 26.A 27.B 28.A 29.D 30.B (1)投影 (2)数据流(3).mem (4)等级考试 (5).F. (6)Microsoft Visual Foxpro (7)参照完整性 (8)255 (9)not null (10)alias (11)Field (12)order (13)top 3 (14)order by 3 desc (15)sum(iif(cj.cj<60,1,0)) (16)To Printer (17)Count(*) (18)distinct (19)union (20)复选框 (21)this.value=date() (22)valid (23)ReadOnly (24)RecordSource (25)PM (26)i**2+i (27)m*2-1 (28)3 (29)300 (30)h/2 22360 第 71 页 共 71 页
本文档为【【内部资料】江苏二级vfp要点,复习完一遍过】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_477730
暂无简介~
格式:doc
大小:243KB
软件:Word
页数:0
分类:
上传时间:2017-09-02
浏览量:17