版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一部分 Visual FoxPro数据对象的建立1.“项目”文件构成:每个项目都由一个项目索引文件(.pjx)和一个项目备注文件(.pjt)构成.“项目管理器”的构成:文件选项卡:全部、数据、文档、类、代码、其他 选择项卡:新建、添加、修改、浏览、移去、连编2.“数据库”文件的构成:每个数据库由三个文件构成,其扩展名分别是:.dbc、.dct、.dcx。数据库的打开:OPEN DATABASE DatabaseFileName | ? EXCLUSIVE | SHARED(其中:exclusive 为独占方式、shared为共享方式)例如:OPEN DATABASE abc EXCLUSIV
2、E &&独占方式打开数据库abc数据库关闭: CLOSE DATABASE关闭打开的当前数据库以及该数据库中被打开的数据表 CLOSE ALL 关闭所有打开的数据库、数据表、索引等数据库的修改:modify database (注意:被修改的数据库事先如果没有打开,系统将出现“打开”窗口并提示打开。)数据库的删除:DELETE DATABASE DatabaseFileName | ? DELETETABLES(其中:DELETETABLES为删除所有对应的数据库表)数据表的构成:数据表由数据表“表结构”与数据表“记录”所组成,要建立数据表必须首先建立数据表结构,然后输入记录(
3、内容)。数据表分为:数据库表及自由表,3. “字段”属性:字段名:一个数据表由若干个列(字段)构成,每列都必须有一个惟一的名字; 字段名可以由字母、数字、汉字、下划线所构成;但必须以字母或汉字开头,数字不能作为字段名的开始,如:1A、2AB为错误字段名;在自由表中字段名最多10个字符(5个汉字),而数据库表中的字段名可长达128个字符;字段名中不能包含空格。.字段类型与宽度:字段数据类型决定存储在字段中的值的数据类型。.空值(NULL):空值是一个不确定的量,表示某事件尚未发生,长度为一个字节,如:对于期末考试成绩,可以用0表示考0分,用NULL表示没参加考试。在数据表中,如果某字段需要允许输
4、入NULL,则在建立表结构时必须将该字段右边的“NULL”处打勾。字段有效性:只有数据库表才有此属性。规则:确定该字段输入数据时,数据输入的合法性。例如在“性别”字段的“规则“框中,如果输入:性别=”男” or 性别=”女”,则用户在该字段中输入数据时,就无法输入“男”、“女”以外的任何信息。信息:确定用户在该字段中输入错误时的提示,如:“输入错误,请重输!”(注意:“有效性规则”是逻辑表达式,“信息”是字符型表达式。)默认值:确定新添加记录的默认输入内容,可节省用户输入时间。4.数据表数据输入:日期型数据只能按“月、日、年”顺序输入;.逻辑型数据只输入字母,用“T”或“Y”代表逻辑真,用“F
5、”或“N”代表逻辑假;数据表的打开:USE DataTableFileName | ?数据表的关闭: USE 关闭当前工作区打开的数据表,一次只能关闭一个数据表。Close all数据表结构的修改():modify strucure数据库表与自由表的几点说明:如果没有数据库打开,则建立的数据表为自由表,否则为数据库表;.自由表可添加到数据库中,使之成为数据库表,数据库表可以从数据库中移出成为自由表;.数据库表可以使用长表名(128个字符),表中字段可以使用长字段名(128字符);数据库表可以设置字段的:有效性规则、默认值、标题、输入掩码、注释;数据库表支持主关键字、参照完整性和表之间的联系。(
6、一个表一旦从数据库中移出,与之相联系的所有主索引、默认值及有关的规则都将消失;如果数据库表使用了长文件名(长字段名),一旦移出,其长文件名(长字段名)不可再使用;每一个表最多能被添加到一个数据库)5索引的类型():.主索引:只有数据库表才能建立主索引,自由表不能建立主索引;索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建主索引;一个数据库表只能建立一个主索引,但可以没有主索引。. 候选索引:数据库表、自由表均可建立多个候选索引;索引字段的值不允许重复,也不允许为空值(.Null.),否则无法创建候选索引。. 唯一索引:“唯一性”是指索引项的唯一,不是字段值的唯一;一个数据库
7、表与自由表均可建立多个唯一索引。. 普通索引:数据库表、自由表均可建立多个普通索引。索引的建立:index on eExpression tag TagName FOR lExpression ASCENDING | DESCENDING UNIQUE | CANDIDATEON eExpression:索引关键字,用于实现对字段进行排序TAG TagName:索引名,用于区分同一索引文件中的不同索引FOR lExpression:索引条件,用于排除不参与索引的记录ASCENDING | DESCENDING:ASCENDING升序,DESCENDING降序UNIQUE | CANDIDATE
8、:unique建立“唯一索引”,candidate建立“侯选索引”,不带该参数建立“普通索引”(重要提醒:用指令方式不能建立“主索引”;默认升序排列)索引名(TagName)最长为10个字符;索引文件扩展名为:.cdx 对话框方式建立():.永久关系的类型一对一关系:主表中任意一条记录,在子表中均最多有一条记录与之对应;一对多关系:主表中至少存在一条记录,在子表中有多条记录与之对应;多对多关系:主表中一条记录可能对应子表多条记录,子表中一条记录也可能对应主表中多条记录。(注意,在数据库表中,不能建立多对多关系。). 永久关系的建立第一步:在主表中建立主索引或侯选索引;第二步:在子表中建立主索引
9、、侯选索引或普通索引第三步:在主表中用鼠标左键拖动所建立的主(侯选)关键字到子表对应索引上,然后松开鼠标即可。. 永久关系与索引类型的关系(注意:主表只能建主索引或侯选索引;子表可以建主索引、侯选索引或普通索引。)索引的使用:.索引打开:set index to IndexFileList.设置当前索引():set order to nIndexNumber | tag TagName 例如:set order to tag 姓名 &&设置索引名为“姓名”的索引为当前索引set order to 2 &&设置2号索引为当前索引(注意:保留字TAG可以省略不写).
10、使用索引快速定位(查找):seek eExpression 例如:seek "何丽" &&查找第一个叫“何丽”的人注意:seek只能检索符合条件的第一条记录,对于符合条件的其它记录,可用SKIP指令指向(为什么?).删除索引:delete tag TagName | ALL 例如:delete tag all &&删除所有索引delete tag 姓名 &&删除索引名为“姓名”的索引6数据完整性:指保证数据的正确性,数据完整性一般包括实体完整性、域完整性和参照完整性。实体完整性与主关键字: 作用:保证表中记录惟一的特性,即在一
11、个表中不允许有重复的记录。实现:通过建立主关键字或侯选关键字来实现。域完整性与约束规则: 作用:保证表中字段的正确性实现:通过限定字段(表)的有效性规则来实现。参照完整性与表间关系(): 作用:保证不同数据表中相同关键字段数据之间的完整性。实现:在数据库中的某两个表之间的永久关系的基础上,通过建立参照完整性约束来实现。参照完整性及其设置:设置参照完整性约束之前,必须首先清理数据库。其目的是将数据库中各表逻辑删除的记录进行清理。清理完数据库后,用鼠标右键单击表之间任意联系(不管单击的是哪个联系,所有联系将都出现在参照完整性生成器中),打开参照完整性生成器。参照完整性规则包括:更新规则、删除规则、
12、插入规则。更新规则:主要用于当更新父表中的连接字段(主关键字)值时,如何处理相关的子表中的记录。可选择“级联”、“限制”、“忽略”等三个选项之一。级联:用新的关键字值更新子表中的所有相关记录。限制:若子表中有相关记录则禁止更新。忽略:允许更新,不管子表中的相关记录。删除规则:主要用于当父表中的记录删除时,如何处理相关的子表中的记录。可选择“级联”、“限制”、“忽略”等三个选项之一。级联:删除子表中的所有相关记录。限制:若子表中有相关记录则禁止删除。忽略:允许删除,不关子表中的相关记录。插入规则:主要用于在子表中插入记录时,是否进行参照完整性检查。可选择“限制”、“忽略”等两个选项之一。(注意:
13、父表中插入记录不受任何限制。)限制:若父表中不存在匹配的关键字值,则禁止插入。忽略:允许插入。7.数据表的基本操作1)数据表的浏览、编辑与修改操作:浏览命令:browse编辑命令:edit |change替换命令:replace FieldName1 with eExpression1 ,FieldName2 WITH eExpression2 SCOPE FOR lExpression.参数含义:FieldName : 待替换内容字段的字段名(只能写单一的字段名,不能是字段的表达式)eExpression :表达式,用于替换该字段的内容SCOPE :确定在数据表中操作的范围ALL 所有记录N
14、EXT <n> 从当前记录开始的N个记录record <n> 第N个记录(只有一条记录)rest 从当前记录到最后一条记录FOR lExpression : 限定操作记录必须符合的条件(选择操作) (.注意事项:在VFP中,命令中的各参数之间可以任意交换位置;如果没有“范围”,也没有“条件”,则只替换当前记录;如果有“范围”,没有“条件”,则替换范围内的所有记录;如果没有“范围”,只有“条件”,将对整个数据表中符合条件的记录进行替换;如果既有“范围”,又有“条件”,则在范围内替换符合条件的记录.)例题:现有工资数据表GZB.DBF(如表1.1),请完成下列操作:表 1.
15、1 工资数据表GZB.DBF职工号基本工资津贴奖金公积金实发工资020365882.00213.5115900205281562.00283.01441400102341306.00223.01151200204581748.00302.0156160020636864.00143.09870计算所有职工的实发工资,并填入该表的“实发工资”字段。命令:Replace 实发工资 with 基本工资津贴奖金公积金all将基本工资低于1000的职工工资加200元,并重新计算这些职工的实发工资。命令:Replace 基本工资 with 基本工资+200,实发工资 with 基本工资+津贴+奖金-公积金
16、 For 基本工资<10002)数据表数据的复制操作:导出数据表记录:COPY TO <filename> FIELDS fieldslist FOR lExpression导出数据表结构:COPY STRUCTURE TO <filename> FIELDS fieldslist. 参数含义:TO <filename> :导出数据所放文件Fields fieldslist:选择其中部分字段(投影操作),缺省本参数,将导出所有字段FOR lExpression:确定选择数据所符合的条件(选择操作)structure:表示拷贝表结构(不含记录). 注意事
17、项:Copy structure 只复制表结构,不包含内容(虽然存在内容)(注意理解:为什么COPY STRUCTURE命令没有“FOR lExpression”参数)例题:在表1.1所示的工资数据表中:将职工号、基本工资与实发工资拷贝到新数据表GZ.DBF中;命令:Use gzbCopy to gz fields 职工号,基本工资,实发工资从该表中取出职工号、基本工资与实发工资三个字段,并形成GZ1.DBF表,要求该表没有记录。命令:Use gzbCopy structure to gz1在1 fields职工号,基本工资,实发工资3)数据表中添加记录操作:追加新记录:append BLAN
18、K插入新记录:insert BLANK before从其它文件追加记录:append from Filename FIELDS <fieldslist> FOR lExpression.参数含义:BLANK : 仅添加空白记录,不进入编辑状态;如果不带此参数,在添加空白记录的同时将进入编辑状态;FROM Filename :数据将从Filename所指定的表中追加;before :在当前记录之前插入新记录;如果不带此参数,将在当前记录之后插入。(注意事项:append命令只能在数据表的末尾添加记录;insert命令可在数据表中任意位置添加记录;append from 命令可实现从其
19、它存在的表中添加记录。)例题:将表1.1所示的工资数据表中的记录,追加到数据表GZ1.DBF中。命令:Use gz1Append from gzb.dbf 4)数据表中删除记录:逻辑删除:delete scope FOR lExpression物理删除:pack去掉逻辑删除标记:recall scope FOR lExpression 其作用与DELETE命令相反删除全部记录:zap (注意:该命令只删除数据表的所有记录,留下表结构).注意事项:数据表中记录的删除分为“逻辑删除”与“物理删除”,其中逻辑删除是仅仅在数据表中相应记录上做删除标记;而物理删除则是对已做删除标记的记录实施彻底删除;恢
20、复逻辑删除命令的作用与逻辑删除的作用相反,它是将做了删除标记的记录去除其删除标记;数据表中记录一旦实施物理删除,被删除的记录将无法恢复;zap命令是将数据表中的所有记录一次性地完全删除,不管是否有删除标记。)例题:将表1.1中基本工资低于1000的所有记录彻底删除。命令:Delete for 基本工资<1000 等价于 Delete all for 基本工资<10005)数据表查询定位:绝对定位:GOTO(或GO) nRecordNumber | top| bottom 相对定位:skip nRecords条件定位:locate scope FOR lExpression继续查找下
21、一符合条件的记录:continue.参数含义:nRecordNumber :要定位的记录号top:最前面一条记录(不一定是第一条记录,主要看数据表是否索引)bottom :最后一条记录(不一定是第一条记录,主要看数据表是否索引)nRecords :当为正数时,向文件尾方向移动指针;当为负数时,向文件头方向移动指针。(注意事项:skip 可将指针移动到最后一条记录的后面,但不能将指针移动到第一条记录的前面。)注意比较下列两段程序执行后,记录指针的位置:USE GZ USE GZGO TOP GO BOTTOMSkip -1 SkipSkip -1 Skip locate 与continue指令一
22、般要搭配使用。只有执行LOCATE之后,才可使用CONTINUE指令,否则将出现错误。LOCATE可单独使用,即执行LOCATE之后不执行CONTINUE指令。8.工作区的使用工作区的概念:对数据表处理加工时所用的工作区间。工作区的特点:一个工作区只能打开一个数据表;如果不指定工作区,则系统默认在当前工作区操作;VFP启动时,系统默认当前工作区为第1工作区;系统工作区共有32767个工作区;除了工作区编号以外,每个工作区都有一个“别名”。前10个工作区的别名是AJ,工作区1132767工作区的别名为W11W32767。工作区的切换命令:格式:SELECT nWorkArea | cTableAlia
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 位集资房屋合同范本
- 交通意外谅解协议书
- 设备买卖意向合同范本
- 会所安全协议书范本
- 城市绿色综合分拣中心建设项目风险评估报告
- 易考词汇高考真题及答案
- 专利变更协议书范本
- 推动畜禽粪污资源化利用实施方案
- 风电机组风速与功率曲线调试方案
- 体育测试免责协议书
- 2025年7月12日河北省税务系统遴选笔试真题及答案解析
- 幼儿消防知识课件下载
- 集体协商考试试题及答案
- 分布式系统中的时间同步技术-洞察阐释
- 非织造布工厂技术标准
- 2025-2030中国乘用车行业深度调研及投资前景预测研究报告
- 车缝加工合同协议
- 2025年护士执业资格考试题库-社区护理学案例分析试题集
- 剪映剪辑教学课件
- 智慧图书馆服务功能创新与效益评估
- 2025年贵州信合考试试题及答案
评论
0/150
提交评论