第4章表与数据库_第1页
第4章表与数据库_第2页
第4章表与数据库_第3页
第4章表与数据库_第4页
第4章表与数据库_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 表与数据库 本章主要讲述数据表和数据库的建立、修改、编辑、浏览、复制、索引的方法及其相关命令用法,另外还介绍了表间关系,数据库与数据表的关系及其设置等概念。在学习这些概念和相关命令的使用方法中,唯有通过自己操作实例才能更为有效地理解与掌握。 2表与数据库主要内容4.1 表结构 的建立、修改与输出4.2 表记录 的录入、编辑与显示4.3 表记录索引4.4 多表操作4.5 数据库 4.6 数据库表的特有设置34.1 表结构 Visual FoxPro 数据表分为数据库表和自由表两种,在此先讲述自由表的建立,有关数据库表在4.5数据库一节中再做介绍。 4.1.1二维表与数据表 学生信息表4-

2、1是常见的简单二维表,利用Visual FoxPro的关系数据模型,能够将这种二维表作为数据表文件存入计算机。通过分析学生信息表4-1的数据可为该表设计结构如表4-3所示。 45学号学号姓名姓名性别性别生日生日班级班级党员否党员否入学成绩入学成绩照片照片备注备注20090090张婷张婷女女1991-10-1009078否否51120090091肖萌肖萌女女1991-2-2209078否否53320090092李铭李铭男男1990-12-1209078否否57720090093张力张力男男1990-1-1109078否否.62220090120朋蓬朋蓬男男1991-5-509101是是55020

3、090121李园李园女女1991-1-109101否否58820090122胡虎胡虎男男1991-7-1709101否否52220090370刘冬刘冬女女1990-11-1109123是是63320090371严岩严岩男男1991-3-1309123否否55520090372王平王平男男1990-6-1609123否否5446字段名字段名类型类型宽度宽度小数位数小数位数学号学号字符字符8姓名姓名字符字符8性别性别字符字符2生日生日日期日期8班级班级字符字符5党员否党员否逻辑逻辑1入学成绩入学成绩整型整型4照片照片通用型通用型4备注备注备注型备注型4字段类型与宽度字段类型与宽度 字段类型与宽度详

4、见书中表字段类型与宽度详见书中表4-2 说明:说明: (1)字段名。字段名的命名)字段名。字段名的命名必须以汉字或字母必须以汉字或字母开头,自由表的字段开头,自由表的字段名长度不超过名长度不超过10个字节,可以是字母、汉字、数字下划线组成的序个字节,可以是字母、汉字、数字下划线组成的序列。一个汉字占有列。一个汉字占有2个字节宽度。个字节宽度。 (2)类型与宽度。)类型与宽度。 字段的类型与其宽度相关,不同类型的字段其宽字段的类型与其宽度相关,不同类型的字段其宽度有所不同,宽度以字节为单位。对于字符型、数值型、浮点型度有所不同,宽度以字节为单位。对于字符型、数值型、浮点型3种种字段要根据实际需要

5、合理选择宽度,其它类型字段宽度均由字段要根据实际需要合理选择宽度,其它类型字段宽度均由Visual FoxPro统一规定(系统默认值)。例如,日期型宽度为统一规定(系统默认值)。例如,日期型宽度为8字节,逻字节,逻辑型为辑型为1字节,而备注型与通用型为字节,而备注型与通用型为4字节(仅仅表示数据在字节(仅仅表示数据在.FPT文文件中的位置)。件中的位置)。 (3)小数位数。只有)小数位数。只有数值型、浮点型、双精度型数值型、浮点型、双精度型才需要设置小数位才需要设置小数位数。小数点与正负号都要在字段宽度中占一位。例如,若需要数。小数点与正负号都要在字段宽度中占一位。例如,若需要7位整位整数,数

6、,2位小数,则数据宽度就要选择位小数,则数据宽度就要选择10个字节。个字节。74.1.2创建表结构 数据表结构的建立方法有两种,一种是在表设计器中,以交互方式建立,另一种是通过执行命令来建立。 1使用命令打开表设计器建立表结构命令格式:CREATE | ?命令功能:当有选项时,按指定表文件名建立数据表。若无或选“?”,则从文件夹选择对话框中指定建立表文件所在的路径与文件名。 2使用菜单打开表设计器建立表结构例例4-1 创建学生表xs.dbf。84.1.3 修改表结构 1打开表文件(1)菜单方式(2)命令方式命令格式:USE | ?命令功能:USE ,打开指定的表文件。USE ?,进入文件夹对话

7、框选择需要打开的表文件。USE,关闭当前打开的表文件。92修改表结构(1)菜单方式(2)命令方式命令格式:MODIFY STRUCTURE命令功能:若数据表已经打开,直接进入表设计器。否则通过【打开】对话框指定要打开的表文件后,再进入表设计器。 例例4-2 修改xs.dbf中的“生日”字段名为“出生日期”。USE xsMODIFY STRUCTURE104.1.4 输出表结构 如果需要显示、打印表的结构信息,可以使用以下命令:命令格式:LIST | DISPLAY STRUCTURE TO PRINT功能说明:显示或打印当前表的结构信息。例例4-3 显示并打印表xs.dbf的结构信息。114.

8、2 表记录 4.2.1 输入记录1输入记录要点2输入记录示例4.2.2 显示记录 通常用来显示表信息的命令有DISPLAY、LIST和BROWSE。1213(1)LIST命令命令格式:LIST FIELDS FOR WHILE OFFTO PRINT命令功能:列表显示当前表指定范围内满足条件记录的指定字段值。(2)DISPLAY命令命令格式:DISPLAY FIELDS FOR WHILE OFFTO PRINT命令功能:分页显示当前表指定范围内满足条件记录的指定字段值。LIST和DISPLAY命令从功能上讲非常相似,在使用上有以下几点需要说明:省略的时候,LIST默认为ALL,DISPLAY

9、默认为当前记录。OFF子句表示不显示记录号TO PRINT子句表示送打印机输出,省略的时候,仅在主窗口显示记录。省略的时候,表示除备注型和通用型之外的所有字段。14(3)BROWSE命令命令简单格式:BROWSE FIELDS FOR WHILE NOAPPEND NODELETE NOEDIT|NOMODIFYFREEZELOCK 命令功能:在浏览窗口中显示当前表满足条件记录的指定字段值。15说明:NOAPPEND子句:不容许追加记录。NODELETE子句:不容许逻辑删除记录。NOEDIT | NOMODIFY子句:不容许修改记录。FREEZE :仅列出的那一个字段容许修改,其余字段只读。L

10、OCK :把左边的n列锁定在浏览窗口(n表示N型表达式的值)。BROWSE是个功能十分丰富的命令,它有多达几十个的子句,在此仅给出以上的简单格式,完整的格式可查看系统帮助文档。163命令方式显示示例 例例4-4用命令LIST或DISPLAY显示入学成绩大于600分的党员的学生的学号、姓名和性别。在命令窗口依次输入如下命令序列:SET DEFAULT TO d:USE xsLIST FIELDS 学号,姓名,性别 FOR 入学成绩600 AND 党员否USE17例例4-5 用BROWSE命令显示班级为09101的学生的学号、姓名和班级。Use xsBROWSE FIELDS 学号,姓名,班级 F

11、OR班级=“09101” 184.2.3 追加记录 命令方式命令方式(1)APPEND 命令命令命令格式:命令格式:APPEND命令功能:以交互方式在当前表记录之后追加若干条新记录。命令功能:以交互方式在当前表记录之后追加若干条新记录。例如,若要给学生表例如,若要给学生表xs.dbf追加记录,可以执行下列两条命令:追加记录,可以执行下列两条命令:USE xsAPPEND(2)APPEND BALNK命令命令命令格式:命令格式:APPEND BLANK命令功能:给当前表追加一条空白记录。命令功能:给当前表追加一条空白记录。19INSERT命令(3)INSERT命令命令格式:INSERT BEFO

12、RE命令功能:以交互方式在当前表的当前记录之后(或之前)插入若干新记录。说明:若有BEFORE子句,则在当前记录之前插入新记录,否则在当前记录之后插入。(4)INSERT BLANK命令命令格式:INSERT BLANK BEFORE命令功能:当前表的当前记录之后(或之前)插入一条空白记录。 20例例4-7 在学生表xs.dbf的首记录位置加入一条空白记录。Use xsInsert blank before21APPEND FROM命令 命令格式:APPEND FROM |?FIELDSFOR命令功能:从指定表文件中读出符合要求的记录,并追加到当前表文件中。说明:若有FIELDS子句,则只追加

13、字段名列表中指定的字段值,否则,只追加两个表文件共有的字段 .22例例4-8 表xsbf.dbf与表xs.dbf具有相同的结构,但没有记录,将xs的记录全部追加到xsbf中。(可先将xs.dbf的表结构复制到xsbf.dbf中:use xs copy structure to xsbf)Use xsbfAppend from xs234.2.4 修改记录1REPLACE命令命令命令格式:命令格式:REPLACE FOR WHILE WITH ADDITIVE, WITH ADDITIVE 命令功能:对当前表指定范围内满足条件的记录,用命令功能:对当前表指定范围内满足条件的记录,用WITH子子句

14、中的表达式值替换对应字段值。句中的表达式值替换对应字段值。说明:说明:(1)ADDITIVE子句仅适用于备注型字段,有子句仅适用于备注型字段,有ADDITIVE时,将表达式值追加在原数据之后,否则替换原数据。时,将表达式值追加在原数据之后,否则替换原数据。(2)的省略值为当前记录。的省略值为当前记录。24例例4-9将学生表xs.dbf中姓名为张力的班级编号改为09123。执行如下命令:USE xsREPLACE 班级 WITH 09123 FOR 姓名=张力 BROWSE252GATHER和SCATTER命令(1)用数组元素值替换记录字段值命令格式:GATHER FROM FIELDS MEM

15、O命令功能:用数组变量各元素的值依次替换当前记录各个字段的数据。说明:用第一个元素值代替第一个字段的值,依次类推。当有FIELDS 子句时,用数组各元素的值替换指定字段的值。当有MEMO子句时,用对应元素的值替代该备注型字段的内容。通用型字段不在此命令的操作范围内。26(2)将记录字段值存放到数组命令格式:SCATTER TO FIELDS MEMO命令功能:将当前记录数据存入数组变量的各个元素中。说明:用法和GATHER类似,不再重复。只是命令中的数组无需事先定义,即使已经定义而数组元素少于字段数,系统也可以自动重新定义该数组,以满足需要。27要将表xs.dbf中的第一条记录的值存入数组ss

16、可以执行以下命令实现。USE xsSCATTER TO ssLIST MEMO LIKE ss* 284.2.5 定位记录在对数据表的记录进行操作时,通常需要先进行记录定位。记录定位就是将记录指针指向某个记录,使之成为当前记录,函数RECNO()的返回值就是当前记录的记录号。在打开表时,记录指针总是指向第一个记录。1绝对定位命令命令格式1:GOTO TOP|BOTTOM命令格式2:GOTO RECORD 292相对定位命令命令格式:SKIP 命令功能:从当前记录开始移动记录指针,指针的移动步长为表达式的绝对值。说明:当表达式的值为正时,记录指针向记录尾部方向移动,否则向顶部方向移动。若无子句时

17、,默认为1。304.2.6 记录的删除与恢复通常记录的删除要分两步,先在要删除的记录上加删除标记,称逻辑删除,再用PACK命令将带有删除标记的记录从表中真正删除,称为物理删除。1逻辑删除命令命令格式:DELETE FORWHILE 2物理删除命令命令格式:PACK313恢复记录命令 命令格式:RECALL FORWHILE 命令功能:对当前表指定范围内满足条件的记录去掉删除标记。4记录清除命令 命令格式:ZAP 命令功能:物理删除当前表中的所有记录。 说明:ZAP等价于执行DELETE ALL和PACK两条命令。32例例4-11 从表xs.dbf中彻底删除班级为09123的记录。Use xsD

18、elete for 班级=“09123”pack334.3 表记录索引4.3.1 索引的概念表的索引是对表建立各种关键字与表记录的对应关系,从而达到对表记录进行快速检索和处理的目的。 通常情况下一个索引主要由以下两部分组成。(1)索引关键字表达式:它是索引的依据,是由表字段组成的表达式。(2)索引标识:它是索引的名称,以字母或下划线开始,由字母、数字等组成。但长度不能超过10个字符。34表的记录顺序的几个概念。(1)物理顺序:记录在表中的实际排列次序。此顺序在表记录输入时已经确定,也就是记录号的顺序。(2)逻辑顺序:对于打开的表文件,若有主控索引在使用,则表文件中的记录将按主控索引中的顺序展现

19、给用户,供用户使用。记录在主控索引中的顺序称为逻辑顺序。(3)使用顺序:实际展现给用户,提供用户使用的记录顺序称为记录的使用顺序。若有主控索引在起作用,则使用顺序就是逻辑顺序;否则使用顺序就是物理顺序。 354.3.2 索引类型1按索引文件类型分复合索引和单索引两类索引文件 2按索引关键字特征分按索引关键字特征,可以分为主索引、候选索引、普通索引和唯一索引4种。说明:(1)主关键字是能唯一标识记录的索引关键字,不会出现关键字重复值。例如,一般姓名字段不用作主关键字,因为姓名可能会出现同名同姓。(2)唯一索引,对关键字值相同的记录,索引只列其中的第一个记录。 364.3.3 创建索引1建立索引命

20、令 命令格式:INDEX ON TAG FOR ASCENDING | DESCENDINGCANDIDATE 命令功能:给当前表建立一个结构复合索引,存入表的结构复合索引文件。 说明:(1)表示要建立索引的字段或字段表达式。(2)TAG 子句为索引定义一个标识。(3)有FOR子句的时候,仅对满足条件的记录索引,否则对所有记录索引。(4)ASCENDING表示按升序索引,DESCENDING表示按降序索引,省略的时候默认为升序。(5)CANDIDATE表示建立候选索引,默认为普通索引。372基于单字段的索引所谓基于单字段的索引,就是按某一个字段来建立索引,即索引关键字就是某个字段名,如下例。例

21、例4-8创建索引,对学生表xs.dbf的记录按入学成绩降序排序。执行以下命令序列:USE xsINDEX ON 入学成绩 TAG rxcj DESCENDINGBROWSE 383基于多字段的索引相对于单字段索引就很容易理解所谓多字段索引,指的是按照多个字段的某种计算关系进行索引,即索引关键字是由几个字段构成的一个表达式,如下例。 例例4-9 创建索引,对学生表xs.dbf的记录先按班级升序排序,班级相同再按入学成绩降序排序。 则执行如下命令: USE xs INDEX ON (班级+STR(1000-入学成绩) TAG bjrx BROWSE394.3.4 使用索引如前所述一个复合索引文件可

22、以容纳多个索引,但任意时刻最多只有一个索引起作用,那个起作用的索引被称为主控索引。1主控索引的指定命令格式:SET ORDER TO | TAG ASCENDING | DESCENDING命令功能:为当前表指定索引顺序,即指定主控索引。说明:(1)表示索引建立的次序号,可以依此指定主控索引。(2)SET ORDER TO或SET ORDER TO 0 用于取消主控索引。402索引的更新(1)自动更新。若在有主控索引状态下,数据表中的记录数据发生变化,则索引自动更新。(2)重新索引。若在未指定主控状态下,数据表中的记录数据发生变化,索引文件不会自动更新。如果要维持记录的逻辑顺序,可用REIND

23、EX 命令重新索引,也可以重新建立索引 413索引的删除命令格式:DELETE TAG ALL |,.命令功能:将所列出的索引从当前表的结构复合索引文件中删除。说明:(1)ALL表示删除所有索引。(2)若当前表的所有索引都被删除,则其结构复合索引文件被自动删除。424.3.5 记录的查找1顺序查找命令格式:LOCATE FOR 说明:(1)的省略值为ALL。(2)找到记录的时候,FOUND()()函数为逻辑真值(.T.),否则为逻辑假值(.F.)。(3)LOCATE找到一个符合条件的记录后,就停止查找。如果要继续查找后面满足条件的记录,需要执行CONTINUE命令,CONTINUE命令相当于在

24、缩小了的范围内又执行了一次LOCATE命令。432索引查找命令格式:SEEK 命令功能:在当前主控索引关键字中搜索与的值相匹配的第一条记录,若找到,则使该记录成为当前记录,否则记录指针定位到文件尾。说明:查找成功时函数FOUND()为逻辑真值(.T.),否则为逻辑假值(.F.),且函数EOF()为逻辑真值(.T.)。444.3.6 记录的统计1计数命令命令格式:COUNT FORWHILE TO 命令功能:计算当前表指定范围内满足条件的记录的个数。说明:(1)的省略值为ALL。(2)TO子句的作用是将记录数保存在指定的内存变量中,若省略则计算结果仅在主窗口的状态条中显示。452求和命令 命令格

25、式:SUM FORWHILE TO | ARRAY 功能:对当前表指定范围内满足条件的记录,分别计算各个数值表达式的和。 说明:(1)的省略值为ALL。(2)TO子句的作用是将计算结果保存在指定的内存变量或数组中,若省略则计算结果显示在主窗口中。(3)若省略,则分别求每个数值型字段的和。463求平均命令 命令格式:AVERAGEFORWHILETO 内存变量名列表| ARRAY 命令功能:在打开的表中,对数值表达式表的各个表达式分别求平均值。 说明:对当前表指定范围内满足条件的记录,分别计算各个数值表达式的平均值。 说明:(1)的省略值为ALL。(2)TO子句的作用是将计算结果保存在指定的内存

26、变量或数组中,若省略则计算结果显示在主窗口中。(3)若省略,则分别求每个数值型字段的平均值。473汇总命令 命令格式:命令格式:TOTAL TO ON FORWHILE FIELDS 命令功能:对当前表指定范围内满足条件的记录,按命令功能:对当前表指定范围内满足条件的记录,按值分类,值分类,分别求各个数值型字段的和,并将结果存入表文件中。分别求各个数值型字段的和,并将结果存入表文件中。 说明:说明:(1)的省略值为的省略值为ALL。(2)分类字段值相同的记录在新表中产生一条记录,对非求和字段,只有)分类字段值相同的记录在新表中产生一条记录,对非求和字段,只有分类字段值相同的第一条记录的字段值出

27、现在记录中,也就是说,存放分类字段值相同的第一条记录的字段值出现在记录中,也就是说,存放汇总结果的表文件的记录数是分类字段值的种类数。汇总结果的表文件的记录数是分类字段值的种类数。(3)分类字段应该是当前表的主控索引,或者当前表在分类字段上是有序)分类字段应该是当前表的主控索引,或者当前表在分类字段上是有序的,否则汇总结果是不正确的。的,否则汇总结果是不正确的。(4)FIELDS 若省略,则对所有数值型字段汇总。若省略,则对所有数值型字段汇总。 484.3.7表的复制 1复制表命令基本格式:COPY TO FORWHILE FIELDS 命令功能:将当前表指定范围内满足条件记录的指定字段复制到

28、指定表文件中。说明:当省略全部可省略子句时,复制全部记录的所有字段到新表。 492复制表的结构命令格式:COPY STRUCTURE TO FIELDS 命令功能:复制当前表的指定字段形成新表的结构。说明:省略FIELDS 时,复制当前表的全部字段到新表。 503复制任何文件命令格式:COPY FILE TO 命令功能:复制文件1到文件2。说明:文件必须写完整文件名,且不能为打开的。514.4 多表操作通常在一个数据库应用系统中,往往有多个表文件,有时需要同时打开几个表文件,这种操作称为多表操作。在前面对表的各种操作示例中,均以学生基本信息表xs.dbf为例说明表的各种操作的。事实上学生管理系

29、统还要涉及课程、班级、必修课成绩和选修课成绩等数据表。 524.4.1 工作区 1工作区与当前工作区2选择当前工作区(1)工作区标号 有32767个工作区的标号 (2)工作区别名 命令格式:USE ALIAS (3)选择当前工作区命令 53(3)选择当前工作区命令 命令格式:命令格式:SELECT 0 命令功能:指定命令功能:指定或或代表的工作区为当前工作区。代表的工作区为当前工作区。 说明:说明:SELECT 0表示选定当前尚未使用的最小号工作区。表示选定当前尚未使用的最小号工作区。函数函数SELECT()能够返回当前工作区的区号。能够返回当前工作区的区号。使用命令:使用命令:USE IN

30、能在指定的工能在指定的工作区打开表,但不改变当前工作区,要改变工作区仍需要使用作区打开表,但不改变当前工作区,要改变工作区仍需要使用SELECT命令。命令。引用非当前工作区的字段可以有如下两种格式:引用非当前工作区的字段可以有如下两种格式: 格式格式1:. 格式格式2: 54例如执行下列命令观察其区别。 CLOSE ALL & 关闭所有打开的表,当前工作区默认为关闭所有打开的表,当前工作区默认为1号号 工作区工作区 ? SELECT() & 显示:显示:1 USE bxcj GO 3 ? 学号学号,高等数学高等数学 & 显示:显示:20090092 54 SELECT 2 & 选定选定2号工作

31、区为当前工作区号工作区为当前工作区 USE xs GO 3 ? 姓名姓名,bxcj.学号学号,bxcj.高等数学高等数学 &显示:李铭显示:李铭 20090092 54 553数据工作期除了用命令方式选择工作区和打开多个数据表外,为了方便用户了解和配置当前的数据工作环境,Visual FoxPro提供一种称为数据工作期(Data Session)的窗口用于打开或显示表、建立表间关系、设置工作区属性。 564.4.2 多表间的关联通常,表与表之间存在以下3种关系:一对多关系:一个表的一条记录对应另一个表的多条记录。例如,表xs.dbf与表xxcj.dbf按学号具有一对多关系。多对一关系:一个表的

32、多条记录对应另一个表的一条记录。例如,表xxcj.dbf与表xs.dbf按学号具有多对一关系。一对一关系:一个表的一条记录仅对应另一个表的一条记录。例如,表xs.dbf与表bxcj.dbf按学号具有一对一关系。按两个表的主从关系分,通常分为父表(又称主表)和子表两种。在建立关联的两个表中总有一个是父表,一个是子表。571RELATION命令 命令格式:SET RELATION TO INTO ,INTOADDITIVE 命令功能:以当前表为父表,分别按给定表达式与相应别名表建立关联。 说明:(1)用来指定父表的关联字段表达式,其值将与子表的主控索引关键字构成对照,相匹配的记录构成关联,表示子表

33、或其所在的工作区。(2)ADDITIVE保证在建立关联时不取消以前建立的关联。 58 例例4-21 用命令方式建立表xs.dbf和bxcj.dbf的关联,观察相关表的记录指针变化情况和显示结果。 select 2 use bxcj index on 学号 tag xh select 1 use xs set relation to 学号 into bxcj display 学号,姓名,bxcj.高等数学,bxcj.计算机 go 5 display 学号,姓名,bxcj.高等数学,bxcj.计算机 browse fields 学号,姓名, bxcj.高等数学,bxcj.计算机592在数据工作期窗

34、口建立关联在数据工作期窗口建立关联的基本步骤如下:打开数据工作期窗口。打开需要建立关联的表。为子表按关联的关键字建立索引或确定主控索引。选定父表工作区为当前工作区,并与一个或多个子表建立关联。说明建立的关联为一对多关系。若省略本步骤则表示多对一关系。604.5 数据库 数据库是一个容器,它按照数据库的组织结构构成表的集合,从而提高数据的一致性和有效性,降低数据冗余。同时,在数据库中还可以建立和保存数据表之间的永久关系,以使各表保持相互协调和相互制约机制。另外,与自由表相比,数据库表增加了许多自由表所不具备的特性,例如字段的标题、默认值、显示格式、输入掩码、触发器和有效性规则等等,从而使表的功能

35、更强大。614.5.1 数据库的创建与修改1创建数据库(1)交互方式创建数据库(2)使用命令创建数据库命令格式:CREATE DATABASE |?命令功能:按指定的数据库文件名建立数据库文件,或在【创建】对话框中指定数据库文件的存储位置和文件名来建立。622修改数据库命令格式:MODIFY DATABASE |?命令功能:在数据库设计器中显示指定的数据库。说明:若当前有打开的数据库,则可以省略文件名;若当前没有打开的数据库又省略了文件名或者使用了?,则需通过【打开】对话框来指定要打开修改的文件。634.5.2 打开与关闭数据库1打开数据库命令命令格式:OPEN DATABASE |?功能:打

36、开指定的数据库文件,或从【打开】对话框中指定数据库文件来打开。说明:使用该命令可以打开多个数据库文件。2关闭数据库的命令命令格式:CLOSE DATABASE ALL功能说明:ALL子句表示关闭所有打开的数据库文件,若无子句ALL,则仅关闭当前数据库文件。644.5.3 数据库表的添加与移除1向数据库添加自由表2从数据库中移去表使用下列命令移去表。命令格式:REMOVE TABLES 命令功能:从当前数据库中移去指定的数据库表,被移去的数据库表变为自由表。654.5.4 设置当前数据库1设置当前数据库命令格式:SET DATABASE TO 命令功能:设置指定数据库为当前数据库。说明:如果省略

37、,则没有设置当前数据库。2非当前数据库的引用非当前数据库表的引用格式:!说明:其中为所在的数据库文件名。664.5.5 删除数据库 命令格式:DELETE DATABASE DELETE TABLES命令功能:当使用DELETE TABLES子句时,将数据库及其中的表一并删除,否则仅删除数据库文件,并将其中的表变为自由表。应该注意的是,若要删除数据库,必须先关闭它。674.5.6 数据库表的关联永久关系建立的前提是相关联的两个表在关联字段上已建立索引。如果两个表之间是一对多的关系,则对父表的关联字段必须是主索引或候选主索引,而子表的关联字段可以是任何类型的索引,但通常是普通索引。若是一对一关系

38、,则子表的关联字段必须也是主索引或候选索引。 1建立关联关系 2删除关联关系3编辑关联关系684.5.7 参照完整性设置对于彼此相关的数据库表,在更新、插入或删除记录时,如果只改其一不改其二,将会影响相关数据的一致性和完整性。而当数据库表之间建立了永久关系之后,可以通过设置参照完整性规则来建立必要的制约机制,以保证相关数据的完整性。1打开参照完整性生成器2参照完整性生成器界面694.6 数据库表的特有设置所谓数据完整性,主要是指数据的正确性和相容性。无论单用户或多用户数据库,用户在操作中难免发生差错。如果对数据操作缺乏经验及必要的约束,就难以保证数据的有效性。在Visual FoxPro中,对

39、于向数据库表中输入的数据允许设置三级验证,即字段级验证、记录级验证和表间验证。其中前两级属于表内检验,其规则一般在表设计器窗口中进行设置;最后一级属于表间检验,其规则可通过参照完整性生成器进行设置。704.6.1 字段级设置1设置显示属性(1)格式:用以确定当前字段在浏览窗口、表单或报表中的显示格式。例如,使用格式码“!”,则当前字段在浏览窗口输出时全部字母均为大写;若换为格式码“L”,则表示输出数值型数据时,用0填满前导空格。常用的格式码参考书中描述 712设置字段有效性规则字段有效性规则用来检验对当前字段输入的数据是否有效。可在文本框中直接输入表达式,也可单击其右边的按钮,在【表达式生成器】中生成表达式。(1)规则:当前字段的有效性检验表达式,对于在该字段输入的数据,Visual FoxPro会自动检查它是否使表达式为逻辑真值,若不是则不被接受,直到条件表达式为真值才允许光标离开该字段。

温馨提示

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

评论

0/150

提交评论