计算机二级VF课本总结(笔试、上机).doc_第1页
计算机二级VF课本总结(笔试、上机).doc_第2页
计算机二级VF课本总结(笔试、上机).doc_第3页
计算机二级VF课本总结(笔试、上机).doc_第4页
计算机二级VF课本总结(笔试、上机).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 Visual Foxpro数据库基础1.1 数据库基础知识数据:是存储在某种媒体上能够识别的物理符号。 数据处理:将数据转化为信息的过程。 DBS(数据库系统)包括DB(数据库)、DBAS(数据库应用系统)、DBMS(数据库管理系统)数据库系统的组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。数据库系统的核心是:数据库管理系统(DBMS)数据模型:层次模型(用树型结构表示实体及其之间联系的模型称) 网状模型(用网状结构表示实体及其之间联系的模型)关系模型(用二维表来表示实体以及实体之间联系的模型。以关系数学理论为基础)1.2关系数据库“关系”指的是:表文件(.dbf文件)外部关键字:若表中的一个字段不是本表的主关键字或候选关键字而是另外一个表的主关键字或候选关键字,这个字段就称为外部关键字。传统的集合运算 并:两个关系的元组的集合。差:属于一个关系而不属于另一个关系的元组的集合。交:两个关系中的公共元组。专门的关系运算:选择:从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算。 投影:从关系中制定若干属性,组成新的关系。投影是从列的角度进行的运算。 连接:把两个关系拼接成一个关系的运算。1.4 Visual FoxPro系统概述Visual FoxPro 6.0是可运行于Windows平台的32位数据库开发系统1.5 项目管理器项目管理器定义:指文件、数据、文档和Visual FoxPro对象的集合。是将一个应用程序的所有文件集合成一个有机的整体。项目的扩展名:.pjx “数据”选项卡:数据库、自由表、查询、视图 “文档”选项卡:表单、报表、标签“ 类 ”选项卡:“代码”选项卡:扩展名为prg的程序文件、函数库API、应用程序app“其他”选项卡:文本文件、菜单文件、其他文件“全部”选项卡:包括以上各类文件在“项目管理器”的按钮中可以:新建文件、添加文件、删除文件、修改名文件,不可以重命名文件第二章数据与数据运算2.1常量与变量日期型常量常用的分隔符有斜杠、连字符、句点和空格。严格的日期型常量yyyy-mm-dd设置4位数字年份:set century on 设置2位数字年份:set century off内存变量的赋值:store 表达式 to 内存变量名 内存变量名=表达式等号一次只能给一个内存变量赋值。Store命令可以同时给若干个变量赋相同的值,各内存变量名之间必须用逗号分开。当出现内存变量与字段变量同名时,若简单的用变量名访问,则系统默认为字段变量。如果要访问内存变量,则必须在变量名前加上前缀m.或m-,例如m.姓名2.2表达式2.2.1数值表达式:算数运算符:()(括号)、*(乘方)、(乘方)、*(乘)、/(除)、%(求余数)、+(加)、-(减)求余运算:1)被除数和除数均为正数,直接求余。2)被除数和除数均为负数,先按正数求余,然后在余数前面加上负号。3)被除数和除数为异号,先按正数求余,然后让余数的符号先与被除数一致,再加上除数的值。字符表达式:由字符运算符将字符型数据连接起来形成,其运算结果是字符型数据+:将两个字符串首尾相连形成一个新的字符串。 -:前一个字符串的尾部空格移到合并后新字符串的尾部日期时间表达式:日期运算符: + 表示数据相加 - 表示数据相减日期+日期为错误写法 例如:2005/05/03+date() 2.2.2关系表达式: 关系表达式由关系运算符将两个运算对象连接起来形成,其运算结果是逻辑型数据。格式为:表达式1 关系运算符 表达式2关系运算符:小于、等于=、不等于、不等于#、不等于!=、小于等于=、字符串精确比较=、字串包含测试$数值型和货币型按数值大小进行比较 日期型数据比较:越早的时间越小,越晚的时间越大 逻辑型数据比较: .t.大于.f.子串包含测试$ $ 功能:左边字符串是右边字符串的子串才是真Store 计算机 to s1Store 微型计算机 to s2?s1$s2,s2$s1,(s1$s2)(s2$s1) .t. .f. .t.字符串精确比较与Exact设置双等号=比较时,只有当两个字符串完全相同,运算结果才为逻辑真.t. 否则为逻辑假.f.单等号=比较时,与set exact on | off 设置有关。ON:先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行精确比较。OFF(默认值):只要右边的字符串与左边的字符串的前面部分相匹配,结果即为逻辑真.T.。Set exact off? ab = ab1 ,ab1 = ab,ab = ab , ab = ab .F. .T. .F. .F. set exact on ? ab = ab1 ,ab1 = ab,ab = ab , ab = ab .F. .F. .T. .F. 2.2.3逻辑表达式:由逻辑运算符将关系表达式连接起来形成的,其运算结果仍然是逻辑型数据。逻辑运算符有:not、and、or2.2.4运算符的优先级:所有运算符的运算顺序为:算术运算,字符运算和日期时间运算,其次是关系运算,最后是逻辑运算。2.3函数函数是用程序来实现的一种数据运算和转换。函数可以用函数名加一对圆括号加以调用,自变量放在圆括号里。函数的分类:数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数2.3.1数值函数abs(数值):求数值的绝对值。 sign(数值):求数值的符号。 sqrt(数值):求数值的平方根。数值不能为负。pi():返回圆周率.该函数没有自变量。 int(数值)返回的整数部分。ceiling(数值)返回大于等于的最小整数。floor(数值)返回小于等于的最大整数。Round(数值表达式1,数值表达式2):返回指定表达式在指定位置四舍五入后的结果。mod(数值表达式1,数值表达式2):返回除以的余数。max(,) 返回其中的最大值min(,) 返回其中的最小值2.3.2字符函数len(字符表达式):返回字符的长度(即字符的个数).space(数值表达式):返回由指定数目的空格组成的字符串。 ?len(space(5)-space(3) 8alltrim(字符表达式): 删除前后空格函数left(字符表达式,长度) 从字符串左端取指定长度right(字符表达式,长度) 从字符串右端取指定长度substr(字符表达式,起始位置,长度) 从字符串的指定位置开始取指定长度的子串2.3.3日期和时间函数date()返回当前系统日期,函数值为日期型。time()返回系统当前时间,函数值为字符型。year(日期表达式):year()返回指定表达式中的年份。2.3.4数据类型转换函数str(数值表达式,长度,小数位数)功能:将的值转换成字符串,转换时根据需要进行四舍五入。的默认值为0,的默认值为10。val(字符表达式):将字符型数据转换成数值型数据。若字符串内出现非数字字符,只转换前面部分;若字符串的首字符不是数字符号,则返回零。ctod(字符表达式):ctod()将值转换成日期型数据.dtoc(日期表达式|日期时间表达式):dtoc()将日期型数据转换成字符串。宏替换函数:& 功能:替换出字符型变量的内容。2.3.5测试函数isnull(表达式):判断一个表达式的结果是否为null值,若是null值返回逻辑真.t.,否则返回逻辑假.f.。vartype(表达式):测试的类型,返回一个大写字母,函数值为字符型。eof()表文件尾测试函数。记录指针指向最后一条记录的后面时返回逻辑真.t.,否则返回逻辑假.f.。iif(逻辑表达式,表达式1,表达式2)测试的值,若为逻辑真,函数返回的值,若为假,函数返回的值。X=100 ?IIF(X50,X-50,X+50) 50第三章Visual Foxpro数据库及其操作快捷键的使用: 复制:Ctrl+C 粘贴:Ctrl+V 撤销:Ctrl+Z 全选:Ctrl+A 切换窗口:Alt+Tab自由表:就是那些不属于任何数据库的表,当没有数据库打开时建立的就是自由表。(扩展名.dbf)数据库表:属于某个数据库的表。(扩展名.dbf)1.新建表:新建表新建文件输入表名保存(create 表名)2.打开表:文件打开选择要打开的表确定显示浏览(use 表名 回车 browse) 或:选择数据工作期窗口点击“打开”选择要打开的表3.关闭表:use(或:选择数据工作区窗口选择要关闭的表点击“关闭”)4.字段类型:字符型C、数值型N、日期型D、日期时间型T、整型I、逻辑型L、备注型M、通用型G、货币型Y5.宽 度: 8 8 4 1 4 4 8 注:一个汉字占2个字节,一个字母、数字、符号各占1个字节6.NULL:空值,指尚未确定的值。在表中用ctrl+0输入,在表设计器中默认值处直接输入NULL但是这2种情况均要在表设计器的null上打对号7.显示表结构:list structure注:每条记录的总宽度为各字段宽度之和再加1,其中多出的一位宽度用来存放表记录的删除标记。例:某数据表中只包含1个日期型字段、1个备注型字段和1个逻辑型字段则该数据表的记录长度为(B)A、13 B、14 C、17 D、188.修改记录:replace 要修改的字段名 with 新值 for 条件9.定位记录指针:go 记录号 locate forcontinue 移动记录指针:skip 数字 ? 首记录指针:go top 尾记录:go bottom 10.物理删除记录:pack(只删除带逻辑删除标记的记录) zap(物理删除当前表中的所有记录,即清空表)11.恢复记录:recall 如果要物理删除当前表中的某些记录,应先后使用两条命令(C)A、delete、zap B、pack、zap C、delete、pack D、zap、pack 12.复制表结构:打开表之后 copy structury to 新表名 复制表 Copy to 新表名 定界符:规定了数据的类型以及起始和终止的界限类型 字符型定界符:双引号 单引号 方括号 如:姓名=张三 或姓名=张三 或姓名=张三 日期型定界符:花括号+脱字符 如:出生日期=1982/09/11 逻辑型定界符:两个点 如:少数民族否=.T. 婚否=.F.数据库:数据库(database)是结构化的相关数据集合,用来管理数据。(扩展名:.dbc)1.新建:新建数据库新建文件输入数据库名保存(create database 数据库名)create database ? 弹出创建对话框,提示用户输入名字2.打开:文件打开选择要打开的数据库确定 (open database 数据库名)独占:exclusive 只读:noupdate 共享:shared 检查引用的对象是否合法:validate3.关闭:close database(后不跟名字)4.修改:modify database 数据库名(同时也是打开数据库设计器的命令,同open database区别开)5.往数据库中添加表:在数据库空白处右击添加表选择要添加的表确定(add table 表名)6.从数据库中移去表:选中要移去的表右击删除移去(remove table 表名)7.删除:delete database 数据库名自由表字段名最长为10个字符。数据库表中字段名最长为128个字符 显示组框包括:格式、输入掩码、标题索引:索引是逻辑排序,不改变表中记录的物理顺序。提高了查询的速度,但降低了插入、删除、修改的速度。索引文件的种类:单索引文件(.idx)、复合索引文件(.cdx)索引类型 主索引: 字段值不能重复, 一个数据库表能建一个索引,自由表不能建立主索引,候选索引: 字段值不能重复,一个表能建多个索引 唯一索引: 字段值能重复,一个表能建多个索引普通索引: 字段值能重复,一个表能建多个索引 建立索引 菜单方式:打开表设计器,在“字段”选项卡选择要建立的索引的字段,在索引项选择升序或降序, 然后切换到“索引”选项卡,改变类型,确定,是。命令方式:Index on 索引表达式 tag 索引名 candidate 建立候选索引(重要)Index on 索引表达式 tag 索引名 unique 建立唯一索引Index on 索引表达式 tag 索引名 建立普通索引注意:用index命令无法建立主索引。 如果在表上建立了主索引或候选索引则不能用insert命令。打开单项索引的命令:set index to 索引名(了解)。 关闭索引文件的命令:set index to(不跟索引名)(了解)设置当前索引的命令:set order to 索引名(记住)在vf中,将当前索引文件中的“姓名”设置为当前索引,应使用(C)A、set order 姓名 B、set order tag 姓名 C、set order to 姓名 D、use index to tag 姓名数据完整性1.类型:实体完整性、域完整性、参照完整性(1)实体完整性:保证表中记录唯一的特性(主索引或侯选索引可以保证实体完整性)(2)域完整性:(即字段有效性)域:属性的取值范围(字段的取值范围)规则:字段的取值范围(逻辑表达式)NOT AND OR信息:当输入的字段值违背规则时的提示信息(字符串表达式)默认值:指增加新记录时的值 (随字段的类型而改变)给学生表的性别字段设置有效性规则规则:性别 $ ”男女”信息:”性别必须是男或女,请重新输入”默认值:”男”设置过程:打开表设计器选中要设有效性规则的字段设置规则、信息、默认值确定是 在数据库表上的字段有效性规则是(A )A) 逻辑表达式 B) 字符表达式 C)数字表达式 D)以上3种都有可能(3)参照完整性:定义:当在一个表中修改、删除或插入记录时,通过参照引用相互关联的另一个表检查本表的操作是否正确设置过程:打开数据库建立永久性联系(为一个表建立主索引(父表),另一个表建立普通索引(子表),然后拖动鼠标)关闭所有打开的表(clear all)清理数据库(数据库清理数据库)编辑参照完整性(单击右键编辑参照完整性)确定是是参照完整性包括:更新规则、删除规则和插入规则更新规则:级联修改父表中的关键字值时,若子表有相关值也会被修改 限制修改父表中的关键字值时,若子表有相关值则禁止修改父表中的关键字值 忽略不做参照完整性检查删除规则:级联删除父表中的记录时,若子表有相关记录也会被删除 限制删除父表中的记录时,若子表有相关记录则禁止删除父表中的记录 忽略不做参照完整性检查插入规则:限制在子表中插入一个新记录或更新已存在的记录时,若父表中不存在相匹配的关键字值则禁止插入或更新 忽略不做参照完整性检查工作区在同一时刻最多可打开32767个表(32767个工作区)select 0是选择了编号最小的空闲工作区可以在use命令中用alias短语指定别名:use 学生 in 1 alias student物理排序:sortSort与index的区别:sort是物理排序,改变了表中记录的物理顺序index 是逻辑排序,未改变表中记录的物理顺序关联(临时联系)所谓关联,就是当前表记录指针的移动,能引起别的表按某种条件相应地移动记录指针.(临时联系)建立临时联系的命令:set relation第四章关系数据库标准语言SQLSQL是结构化查询语言(Structured Query Language)SQL功能:数据查询、数据定义、数据操作、数据控制,但VF只有前三个功能。数据查询:select 数据定义:create、drop、alter 数据操作:insert、update、deleteSQL语言的核心是:查询 SQL基本形式: SELECT FROM WHERE SQL查询语句:Select 字段名1,字段名2,字段名3 from 表名1,表名2,表名3 ;where 条件 and 表名1.公共字段名=表名2.公共字段名 and 表名2.公共字段名=表名3.公共字段名 ;group by 字段名1,字段名2 having 分组条件 order by 字段名1 desc,字段名2 into table 表名distinct 去掉重复值 in 是属于的意思 ,相当于集合运算符 between and (在之间) like:字符串匹配运算符排序:order by 字段名 升序:asc 降序:desc计数:count(字段名) 求和:sum(字段名) 平均:avg(字段名) 最大:max(字段名) 最小:min(字段名)分组:group by 字段名 having 条件在SQL中,进行分组查询的短语是group by,如果要进一步限定分组的条件,应使用having短语having 子句总是跟在group by 子句之后,不可以单独使用 当 count( ),avg( ),sum( ),max( ),min( ) 作为条件时写在 having 后面,而不是在 where 后面空值:select * from 订购单 where 供应商号 is null别名一般为大写字母 格式:关系名 别名exists 或not exists 只是判断子查询中是否有结果返回(即存在或不存在元组)any 和 sum 是同义词,只要在子查询中有一行能使结果为真,则结果就为真。(等价:min()all要求所有的行都使结果为真,则结果为真。(等价:max()1.select * from 仓库 where 仓库号 in (select 仓库号 from 职工)等价: select * from 仓库 where exists(select * from 职工 where 仓库号=仓库.仓库号)2.select distinct 仓库号 from 职工 where 工资= (select min(工资) from 职工 where 仓库号= WH1)等价: select distinct 仓库号 from 职工 where 工资=any (select工资 from 职工 where 仓库号= WH1)3.select distinct 仓库号 from 职工 where 工资= (select max(工资) from 职工 where 仓库号= WH1)等价: select distinct 仓库号 from 职工 where 工资=all(select工资 from 职工 where 仓库号= WH1)超连接查询普通连接 inner join 等价于 join 左连接left join 右连接 right join 全连接 full joinSelet 仓库.仓库号,城市,面积,职工号,工资 from 仓库,职工 where 仓库.仓库号=职工.仓库号 and 条件等价:Selet 仓库.仓库号,城市,面积,职工号,工资 from 仓库 join 职工 on 仓库.仓库号=职工.仓库号 wher 条件集合的并运算 格式:union 功能:将两个查询结果合并成一个查询结果只显示前几项记录 top 数字 percent 字段名将查询结果存放到数组中 into array 数组名将查询结果存放在临时表中 into cursor 表名将查询结果存放到永久表中 into table 表名 等价:into dbf 表名将查询结果存放到文本文件中 to file 文本文件SQL的查询结果可以存放到多种类型的文件中,下列不能用来存放查询结果的是(C) A)临时表 B)永久性表 C)视图 D)文本文件操作功能插入:insert into 表名(字段名1,字段名2) values(字段值1,字段值2 ) 部分插入 insert into 表名 values(字段值1,字段值2) 完全插入 insert into 表名 from array 数组名 使用SQL语句将一条新的记录插入学院表。Insert into 学院(系号,系名) values (04 ,计算机 )更新:update 表名 set 要修改的字段名=新值 where 条件使用SQL语句完成以下操作(将所有教授的工资提高5%) update 教师SET工资=工资* 1.05 where 职称=教授删除:delete from 表名 where 条件逻辑删除成绩表中总分在240分以下的学生记录 delete from 成绩表 WHERE 总分=1000 and 工资val(thisform.text1.value) 设置文本框初始值为0:value为0文本框中显示表单的宽度:value为=thisform.width文本框中显示字符型123:value为=123文本框中显示数值型123:value为123设置文本框的值为当前系统日期:value为=date()将查询结果直接放到指定的表(学生1)中select * from 学生表 where 性别=thisform.text1.value into table 学生1例:建立一个表单form2,如下图所示,在文本框中输入姓名,点击“查询”按钮将查询出要查询人的所有信息。图: 答案:将查询结果在文本框中显示 select 入学成绩 from 学生表 where 姓名=thisform.text1.value into array aathisform.text2.value=aa例:建立一个表单,在文本框中输入仓库号,点击“查询”,查询出该仓库的所有工资总和。图: 答案:编辑框与文本框类似,特点:编辑框实际上是一个完整的字处理器,利用它能够选择、剪切、粘贴以及复制正文,可以实现自动换行,可以有自己的垂直滚动条。编辑框只能输入、编辑字符型数据。p198Scrollbars:指定编辑框是否具有滚动条属性值为0时,编辑框没有滚动条。属性值为2时,编辑框包含垂直滚动条Readonly 指定编辑框是否具有只读的特点。为T时只读。复选框Caption:复选框旁边的标题Value:指定复选框的状态。为1时,选中。为0时,未被选中if thisform.check1.value=1select语句endifif thisform.check1.value=0select语句 endif建立如下表单,运行时,当选中性别(男)复选框,单击查询按钮将查询出男生的信息,不选复选框时,单击查询按钮将查询出女生的信息。 答案:列表框RowSourceType指定列表框中数据条目的数据源类型RowSource指定列表框中数据条目的数据源ColumnCount指定列表框的列数MultiSelect指定用户能否在列表框内进行多重选定RowSourceType:1值 RowSource 男,女 或 上海,北京RowSourceType:3SQL RowSource select 姓名 from 学生表 into cursor mylistRowSourceType:4查询 RowSource 查询名RowSourceType:5数组 RowSource ss(3)然后在表单load中写 :zcx课本总结 第 13 页 共 13 页public ss(3) ss(1)=3000ss(2)=4000ss(3)=5000public ss(3) ss(1)=上海ss(2)=北京ss(3)=武汉RowSourceType:6字段RowSource 学生表.姓名RowSourceType:7文件,选择表,将某个文件名作为数据源看(p203例6.7)RowSourceType:8结构,选择表,将某个表的字段名作为数据源看(p203例6.7) select * from 学生表 where 姓名=thisform.list1.value组合框的(类似于列表框)通常只有一个条目是可见的。不提供多重选择的功能。有两种形式:下拉组合框和下拉列表框Style为:0下拉组合框,既可选择,也可输入。为 2下拉列表框,只能选择。select * from 学生表 where 姓名=bo1.value选项按钮组:Buttoncount:指定选项按钮的数目 Value:用来指定选项组中哪个按钮被选中do casecase thisform.optiongroup1.value=1语句1case thisform.optiongroup1.value=2语句2case thisform.optiongroup1.value=3语句3endcase建立如下表单,运行时,当选中男单击查询按钮将查询出男生的信息,选中女,单击查询按钮将查询出女生的信息图: 答案:表格控件Columncount:指定表格的列数Recordsource:指定表格数据源 Recordsourcetype:指明表格数据源的类型Recordsourcetype:0表 Recordsource 学生表Recordsourcetype:1别名 Recordsource 学生表Recordsourcetype:3查询 Recordsource 查询名Recordsourcetype:4SQL Recordsource select 姓名,出生日期 from 学生表 into cursor 临时表常用的列属性:Controlsource 、Sparse 、currentcontrol 标头(header)属性Caption 指定标头对象的标题文本 Alignment 指定标题文本在对象中显示的对齐方式在表格中显示:thisform.grid1.recordsource= 一.查询结果在表格中显示(2种方法)1.recordsourcetype 1-别名或0表 (在属性中设置) select * from 学生表 where 性别=thisform.text1.value into cursor aathisform.grid1.recordsource=aa2.recordsourcetype 4-SQLselect * from 学生表 where 性别=男 into cursor aathisform.grid1.recordsource=select * from aa into cursor gg二.不仅在表格中显示还要生成相应的表(文本框输入的是什么,表名就是什么)(2种方法)1.recordsourcetype 1-别名或0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论