还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第四章数据库和数据表的操作
4.1VFP数据库及其建立
4.
1.1数据库和表的基本概念数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理.数据表数据库的主要内容,它是一组相关数据的有序集合,是关系数据库的基本结构,是处理数据,创建关系数据库和应用的基本单元,在VFP中,数据以记录和字段的形式存储在表中数据表的存在形式数据库表:被注册到某一个数据库中自由表独立存在,不与数据库相关联
4.
1.2建立数据库(三种途径)**建立专用目录存放自己的文件
1、在项目管理器中建立数据库
2、通过新建对话框建立数据库
3、使用命令建立数据库CREATE DATABASE[<数据库名>|]使用命令建立数据库后不打开数据库设计器,只是数据库处于打开状态.在建立数据库时,建立了扩展名分别为dbc、det和dex的三个文件
4.
1.3打开数据库(三种方法与建立相对应)OPEN DATABASE[〈数据库名>|][EXCLUSIVE|sHARED]独占方式不允许其它用户在同一时刻也使用该数据库
4.
1.4删除数据库移去从项目管理器中删除,但不从磁盘上删除删除彻底删除VFP的数据库文件并不真正含有数据库表或其它数据库对象,只是在数据库文件中登录了相关的文件信息,表、视图和其它对象是独立存放在磁盘上项目管理器中删除命令删除DELETE DATABASE
1、在项目中新建、添加、打开和移去数据库
2、设置当前数据库常用工具栏的数据库下拉列表SET DATABASETO数据库名DBG
03、访问其他数据库中的表
4、关闭数据库
5、向数据库中添加和删除表
4.
7.2参照完整性实体完整性与主关键字(实体完整性是保证表中记录惟一,即在一个表中不允许有重复的记录)域完整性与约束规则参照完整性与表间的关联(当插入、删除和修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确)参照完整性规则包括更新规则、删除规则和插入规则
4.
7.3数据交换
1、数据表向数组传递数据SCATTER[FIELDS字段名表][MEMO]to数组名将当前数据表的当前记录值传递到指定的数组变量中设数据表有5个字段学号,姓名,英语,数学,计算机,当前记录为一个非空的记录,执行以下命令DEMENSION x
(3)SCATTER TOxCOPY TOARRAY数组名[FIELDS字段名表][MEMO]范围fOR条件
2、数组向数据表传递数据GATHER FROM数组名[FlELDS字段名表][MEMO]将数组的数据传送到当前表文件的当前记录Append fromarray数组名[FIELDS字段名表][MEMO]fOR条件注意字段类型匹配当前打开数据表
4.
1.5关闭数据库CLOSE DATABASE
5.2建立数据库表
6.
2.1在数据库中建立表使用数据库设计器使用表向导(数据库菜单操作,数据库快捷菜单操作)利用表设计器创建数据表结构
1、数据库表名
2、字段名(字段变量)命名规则1)最长128字符2)必须以字母或汉字开头3)可以由字母、数字、汉字和下划线组成4)字段名中不能有空格5)遵循“见名知义”原则
3、字段类型和宽度字段的数据类型有13种字符型文字性质内容的字段及不参加运算的数字性质内容的字段,最大宽度为254数值型参加运算的数字性质内容的字段(负数与小数点各占一位)日期型及日期时间型货币型保存货币数值,字段宽度固定为8个字节逻辑型两者取一性质的字段备注型字符个数较多的字段(不定长度的文本数据),字段宽度固定为4个字节通用型用于标记电子表格、文档、图片等OLE对象
4、空值缺值或没有确定值
5、显示区域格式实质上是一个输出掩码,它决定了字段在表单、浏览窗口等界面中的显示风格输入掩码是字段的一种属性,用于限制或控制用户输入的格式标题用于字段显示时的标题,若不指定则显示字段名
6、字段有效性(用于数据输入正确性的检验,不仅可以限制输入数据表中数据的类型,还可以限制输入数据的取值范围)屏蔽非法字段值的输入
7、字段注释设置字段的详细说明信息
8、记录有效性用于检查同一记录中不同字段间的逻辑关系
9、触发器
10、表注释对表中的信息和相关信息进行说明方便数据库和数据表的使用及维护
4.
2.2修改表结构
1、打开表设计器MODIFY STRUCTURE
2、修改已有字段
3、调换字段位置
4、增加新字段
5、删除字段
5.
2.3显示表结构
1、在表设计器中显示
2、命令方式显示LIST|DISPLAY STRUCTURE设数据各字段总宽度为50,显示数据库结构命令I iststru命令显示可使用字段的总宽度为()
4.3数据表的基本操作
4.
3.1数据表的打开与关闭
1、打开(项目管理器、文件菜单、数据工作期、命令)
2、关闭
4.
3.2记录的输入
1、记录输入(备注与通用型)
2、记录追加APPEND在表的尾部增加记录,一次可以输入多条APPEND BLANK在表尾增加一条空白记录INSERT[BEFOR曰[BLANK]在表的任意位置插入新记录
3、从其他数据表文件中追加记录
5.
3.3记录的浏览和显示
1、在浏览窗口显示和浏览记录BROWSE
2、用列表方式显示记录LIST|DISPLAY
6.
3.4记录的查询与定位当前记录记录指针几个常用函数表文件首测试函数BOF()测试表文件中的记录指针是否指向开始位置表文件尾测试函数EOF()测试表文件中的记录指针是否指向结束位置记录号测试函数RECNOO返回当前记录指针指向的记录号记录数测试RECCOUNT()返回当前表文件的记录个数工作区测试函数SELECTO测试当前工作区,并给出工作区号测试当前的数据库名DBCO数据表为空表时,两者同时为真测试当前工作区上打开的数据表名DBF()指针的定位当需要编辑和修改某一字段的值时,必须先将指针指向该记录
1、用GOTO|GO命令直接定位(绝对移动)
2、SKIP命令(按逻辑顺序定位)(相对移动)相对于当前记录指针的位置,向前或向后移动一定的数量值
3、用LOCATE命令定位(按条件定位)CONTINUE(继续查找命令)函数eof()FOUND(常用于程序代码中判断)
4、菜单方式定位
7.
3.5记录数据的修改
1、在浏览窗口修改
2、用EDIT|CHANGE命令式修改(在编辑窗口显示并编辑指定的字段)
3、用REPLACE命令批量(对当前数据表中指定范围内满足条件的记录分别用表达式的值自动取代相应字段的原来值)
4、利用菜单批量修改
8.
3.6记录的删除与恢复
1、逻辑删除DELETE
2、恢复逻辑删除RECALL
3、物理删除有删除标记的记录(PACK)
4、物理删除表中全部记录(ZAP)
2.4索引
4.
4.1基本概念索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序,实际上创建索引是创建一个由指向.dbf文件记录的指针构成的文件若要按特定的顺序定位、查看或操作表中记录,可以使用索引作为排序机制,为开发应用程序提供灵活性VISUAL FoxPro索引是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序,索引文件和表的.dbf文件分别存储,并且不改变表中记录的物理顺序,实际上创建索引是创建一个由指向dbf文件记录的指针构成的文件若要根据特定顺序处理表记录,可选择一个相应的索引,使用索引还可以加速对表的查询操作索引文件可以看成是按关键字段的升序或降序将数据表重新排列后的♦文件一个数据表可以有多个索引文件,一个索引文件也可以包含多个索♦引索引文件不能单独使用,它必须与相应的数据表配合使用才有意♦义索引的类型
1、主索引(只能用在数据库表中,建立的关键字段必须是不重复值项一个表只能有一个主索引不能用命令建立)
2、候选索引(用于那些不作为主关键字段但字段值又必须惟一的字段,一个表可建立多个候选索引)
3、惟一索引(在使用相应的索引时,重复的索引字段值只有惟一一个出现在索引项中,用于一些特殊的程序设计)
4、普通索引(用于一般的提高查询速度)
4.
4.2在表设计器中建立索引
1、单项索引
2、复合字段索引在多个字段上的索引
4.
4.3用命令建立索引与表名同名的.cdx索引是一种结构复合压缩索引在打开表时自动打开在同一索引文件中能够包含多个索引方案,或索引关键字在添加、删除、修改记录时自动维护索引【格式】index on〈表达式>tag〈索引标识符>[for<条件表达式>][ascend ing|descend ing][un ique|cand idate][add it ive]【格式】index on<表达式>tag<索引标识符>of<独立复合索引文件名>[for<条件表达式>][ascending|descending][unique|candidate][addit ive]独立复合索引文件只能用命令建立
4.
4.4使用索引
1、打开索引文件SET INDEXTO
2、设置当前索引SET ORDERTO
3、使用索引快速定位SEEK
4、删除索引DELETE TAGTagName|AI I
4.5数据表的统计操作及复制
一、累加求和及求平均值横向操作对当前打开表文件中的指定范围内满足条件的数值型字段的数据求和或求平均(纵向操作)sun/average字段名表范围for条件to变量名表
二、统计记录个数统计数据表文件中共有多少条记录,或者统计满足某些特定条件的记录个数COUNT范围FOR条件TO内存变量名
三、统计计算命令对当前打开的表文件中数值型字段数据求和、求平均、求最大值、最小值等计算CALCULATE表达式范围条件to内存变量名表
四、分类汇总对数据按类进行分类合计,将所求的和作为一条新记录送入到新表中TOTAL TO表文件名ON关键字段名FIELDS数值型字段名表范围条件注意在汇总之前,当前表文件应按关键字段名建立了索引,且已经指定为主控索引;新表与当前表的结构相同
五、文件复制
1、复制部分记录或整个数据表COPY TO文件名范围条件字段名表
2、复制数据表结构
4.6多数据表操作
4.
6.1工作区的基本概念是内存中开辟的一块与数据表建立起映射关系的区域(内存中的缓冲区)内存中最多可以开辟32767个工作区内存变量与工作区无关
1、工作区编号与别名VFP中最多开辟了32767个工作区编号分别为
1、
2、
3、
11、W
12、W
13、W
327672、当前工作区(在某一时刻,当前工作区只有一个,在当前工作区打开的数据表,称为当前表),VFP启动后,自动指定1号当前
3、数据表的别名在某工作区中打开数据表时,可以为数据表起一个别名use〈数据表名>[al ias<数据表别名>][in0]<工作区编号>|<工作区别名>]注意若选择IN0,表示在当前没有使用的编号最小的工作区上打开数据表;打开数据表后,可以用数据表的别名代替工作区的别名
4.
6.2工作区的选择和使用
1、选择工作区数据工作期SELETE工作区编号|工作区别名|数据表别名
2、在不同工作区打开同一数据库SELE4USE RSGLAGAIN在不同的工作区打开相同的数据表注意同一数据表在不同工作区打开后,各自的指针位置可以不同
3、使用非当前工作区中表的数据
4.
6.3数据表的关联
1、设置临时关系数据工作期
2、设置永久关系
4.7管理数据库
4.
7.1使用多个数据库。