数据库与表的操作.ppt_第1页
数据库与表的操作.ppt_第2页
数据库与表的操作.ppt_第3页
数据库与表的操作.ppt_第4页
数据库与表的操作.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 数据库与表的操作,在Visual FoxPro中几乎所有的操作都同时提供了菜单界面方式的实现和命令方式的实现,使用两种方法执行的结果是相同的。 本章重点介绍如何通过界面方式实现对数据库(概念,数据库容器)及表的操作,而命令的实现方式全部集中在本章的最后一节进行说明。 3.1 表的创建与维护 3.2 数据库设计器的使用 3.3 多表操作 3.4 表的命令(行)操作方式 *阶段复习 思考题,3.1 表的创建与维护,Visual FoxPro中有两种类型的表:属于数据库的表(称数据库表)和自由表。数据库表与自由表相比,有一些特殊的性质。例如,一般自由表的字段名最长不能超过10个英文字符(个汉

2、字),而数据库表则可以突破这一限制,使用长字段名。数据库表可以从数据库中移去,变成自由表。反之也可。 3.1.1 表的创建 3.1.2 表的维护,3.1.1 表的创建,在Visual FoxPro中,创建一个新表分为两个步骤: (1) 创建表的结构。即说明表包含哪些字段,每个字段的数据类型及长度。 (2) 向表中输入记录。即向表中输入数据。 1.表结构的设计 2.表结构的创建 3.表记录的添加,1.表结构的设计,表3.1 学生表的表结构,说明:学生表的XH字段,第1、2位是年级,第3、4位是专业号,第5-7位是学号。,2.表结构的创建,1.项目管理器中选择表, 按新建按钮,打开表设计器; 2.

3、文件新建,选择表。 备注型与通用型字段中已分别显示memo与gen 标志,意味着这两种字段用其它方法来输入或修改数据。,3.表记录的添加,1.建立表结构后立即输入数据; 2.打开浏览窗口后,显示 追加方式。 注意: 1.日期型数据必须与日期格式相符,默认按美国日期格式mm/dd/yy输入。 2.某记录的备注型或通用型字段非空时,其字段标志首字母将以大写显示,即显示为Memo或Gen 。,3.1.2 表的维护,表的维护是指对表进行增加、删除和修改。包括表结构的维护和记录数据的维护。 1.表的打开与关闭: 文件菜单-打开对话框 2.表结构的维护 4.记录数据的浏览与维护,1.表结构的维护,表结构的

4、修改通常在表设计器中进行,打开表设计器的方法: 1.在项目管理器中选择要修改的表名,然后单击修改按钮。 2.在数据库设计器中选择要修改的表,然后点击数据库设计器中的修改表按钮或选择数据库菜单的修改命令。 3.打开表,显示表设计器。 4.浏览表,表 属性 修改。,1.表结构的维护(2),1).字段属性的维护 (1).删除字段 (2).添加字段 (3).修改字段,2).索引,索引(Index)是指示记录位置的指标。也是一种排序和检索的列表/机制/结构。Visual FoxPro 索引是由指针构成的文件。可以比作目录。可以帮助用户对表中的数据排序,以加速检索数据的速度。一个表可以建立多个不同的索引。

5、 (1) 索引类型 (2) 索引文件 建立一个字段的索引 建立多个字段的索引 设置主控索引,建立一个字段的索引,1.在表设计器的字段选项卡中,单击要建立索引字段的索引列。 2.在表设计器的索引选项卡中,输入索引名,选定类型,在表达式中输入要建立索引的字段名。 例如:在学生表中,对xh,csrq和jxj字段建立索引。,建立多个字段的索引,若索引表达式中包含多个字段,通常将字段都转换成字符型数据,再连接成一个字符串。排序时按第一个字段排列,若字段值相同,再按第二个字段排列,依此类推。 如果用多个数值型字段建立一个索引表达式,可以直接将字段相加,但将按字段相加的和对记录进行排序。 例如:对学生表按j

6、xj字段排序,若jxj相同,再按csrq排序。,设置主控索引,表属性 数据工作期属性 set order to 索引名,(1) 索引类型,主索引:在指定的字段或表达式中不允许出现重复值的索引。只有数据库中的表可以主索引,而且每个数据库的表只能建立一个主索引。主索引主要用来在一个永久关系中建立完整性。 候选索引:同主索引一样具有唯一值,但是一个表可以有多个候选索引。 普通索引:允许索引对应的表达式的值重复,一个表可以建立多个普通索引。 唯一索引:同普通索引一样允许重复值,但是只显示重复值的第一条记录。,3.记录数据的浏览与维护(1),1.查看和浏览表中内容 (1)表打开后,选择显示浏览; (2)

7、在项目管理器中,选择要浏览的表,单击浏览; (3)窗口数据工作期浏览。 2.修改记录数据 (1)在浏览或编辑窗口中,直接修改某一个字段值;窗口分割器 (2)打开浏览或编辑窗口后,表替换字段。,3.记录数据的浏览与维护(2),3.向表中加入新记录 显示追加方式命令。在填充新记录的字段时,可以用Tab键在各字段间切换。 set carry ON/OFF:表示在建立一个新记录时是(ON)否(OFF)将上一记录的内容复制下来。,3.记录数据的浏览与维护(3),4.删除表中记录 从表中删除记录为两步:首先是单击待删除记录左边的小方框标记,标示记录并没有真正从表中删除,为了真正删除记录,应选择表彻底删除命

8、令,在提示框中单击是按钮,这样将从表中删除带标识的记录并重组表中的记录。,3.2 数据库设计器的使用,Visual FoxPro的数据库是用于对表及表间关系进行管理的。 3.2.1 数据库的创建 3.2.2 数据库的基本操作 3.2.3 数据库表的基本操作 3.2.4 数据库表的设置 3.2.5 创建表间的永久关系,3.2.1 数据库的创建,1.在项目管理器中选择数据库, 按新建按钮; 2.文件新建,选择数据库。,3.2.2-3 数据库及表的基本操作,1. 数据库表的展开和折叠 2.数据库排列 3.查找表和视图 4.设定属性 3.2.3 数据库表的基本操作 1. 在数据库设计器中 2.在项目管

9、理器中,3.2.4 数据库表的设置(1),1 索引选项卡 2 字段选项卡 字段.显示(Data Formatting数据格式化 & Control Format控制格式) 格式:控制该字段值在浏览、表单和报表中的输出格式。参见p75表3.9。 输入掩码:控制输入该字段数据的格式,屏蔽非法内容的输入。参见表3.10。 标题:显示表的字段标题的名字 例如:设置学生表xh字段的标题为学号,最多只能输入7个数字字符。,3.2.4 数据库表的设置(2),字段.字段有效性 规则:规定当前字段值应满足的条件 信息:当字段输入的值未满足规则的条件,系统显示的提示内容。是一个字符串。 默认值:设置当前字段的初始

10、值。 例如:设置学生表jxj字段的初始值为200,必须在0到1000之间,若输入值超过范围,则提示奖学金应在0到1000之间。,3.2.4 数据库表的设置(3),表.记录有效性 记录有效性规则检查同一个记录中有关字段之间的是否满足条件。包括验证规则的设置与出错信息的设置。 例如:要求在课程表中每一个学分必须不少于18个课时。 3 表选项卡 记录有效性 触发器: 插入、更新、删除,RI即在此处。 表注释,3.2.5 创建表间的永久关系,1 库表之间的联系永久关系。 表间要建立永久关系,其中主动表必须建立主索引(或者候选索引),被动表建立普通索引,拖动主动表中的主索引(或者候选索引)到被动表中的普

11、通索引上,这样表与表之间就通过公共字段的索引建立了永久关系。 该关系作为数据库的一部分被存放起来,只要数据库一打开就存在,直到关系被删除为止。 永久关系分为一对多和一对一两种。 2 参照完整性设置 三个规则:更新、删除、插入,3.3 多表操作(1),数据工作期:data session (工作区:3.4.7) 在Visual FoxPro中表间关系有两种:一种是在工作区中建立临时关系,一种是在数据库中建立永久关系。 临时关系只在当前有效,在关闭表或者Visual FoxPro程序之后,临时关系就不存在了;而永久关系作为数据库的一部分被保存于数据库中,只要一打开数据库,永久关系就建立了永久关系一

12、直存在并非打开数据库时建立,打开时浏览的表并无关系建立。,3.3 多表操作(2),临时关系通常在数据工作期 中建立,或使用set relation 命令建立。 被动表的公共字段须建立普通索引并设置排序。 在临时关系中,子表(或被动表)的记录指针将随着父表(或主动表)的记录指针的移动而移动。 例3.20 建立学生表与成绩表间一对多的关系。 例3.21 建立成绩表与学生表间多对一的关系。,3.4 表的命令(行)操作方式,VFP的操作一般都提供两种方式,一种是通过交互式窗口操作,一种是通过命令的方式实现。在VFP中,一般可以用前四个字母表示较长的命令参数。 命令表达规则:p95 命令动词 参数1 参

13、数2& 参数顺序无关 几个符号命令 1. 表的创建与维护 2. 记录数据的浏览与维护 3. 排序索引 p99 4. 表的定制筛选 5. 数据库的操作 打开、关闭 6. 数据库表的设置索引维护 7. 多表操作,3.4.1 表的创建与打开,表的打开命令 表的关闭命令 表的创建命令 表结构的修改和复制,表的创建,(1)命令格式: CREATE .dbf (2) 功能: 在指定的位置创建一个新表。,表的打开(1),(1) 命令格式: USE (2)功能: 在当前工作区中打开或关闭表,表打开时,若该表有备注型或通用型字段,则将自动打开同名的.FPT文件。,表的打开(2),(3) 说明: 表示被打开的表的

14、名字;缺省表示关闭当前工作区的表(工作区的概念参阅第5部分多表操作)。 打开一个表时,该工作区中原来打开的表自动关闭 已打开的表总有一个记录指针,指针所指的记录称为当前记录。表刚打开时,记录指针指向第一个记录。 表操作结束后应及时关闭,以便将内存的数据保存到表中。,表的关闭,(1) 格式:CLOSE ALL 功能:关闭所有的表。还关闭各种设计器和打开的窗口等 (2) 格式:CLEAR ALL 功能:关闭所有打开的表,释放所有的内存变量。不释放系统变量 (3) 格式:USE 功能:关闭当前工作区的表。,3.4.2 记录数据的浏览与维护,表记录的显示 表记录的添加 表记录的修改 表记录的删除,表记

15、录的显示,(1)命令格式: LIST|DISPLAY FIELDS 范围FOR |WHILEOFFTO PRINT PROMPTTO FILE (2) 功能: 在表中按指定范围与条件筛选出记录并显示出来,或送至指定的目的地。,范围子句,范围子句:用来确定执行该命令涉及的记录,范围有种限定方法: ALL 所有记录 NEXT (N) 从当前记录起的N个记录 RECORD(N) 第N个记录 REST 从当前记录起到最后一个记录为止的所有记录 LIST 缺省范围默认为ALL。 DISPLAY缺省范围表示当前记录。,FOR ,条件:指定执行本命令时,只有指定范围内满足条件的记录参加操作 FOR :范围内

16、使条件为真的记录都参加操作; WHILE :从当前记录开始,若使条件为真,则该记录参加操作,直至遇到不满足条件记录出现时停止。,FIELDS 和OFF子句,FIELDS:只有出现在字段名表中的各字段参加操作,字段名表中的各字段之间以逗号隔开。 OFF 子句:若要不显示记录号,可使用参数OFF。 LIST和DISPLAY命令除命令动词外格式一致,功能略有区别:前者以滚动方式输出,后者则以分屏输出。,表记录的添加(1),(1)追加记录 命令格式: APPEND BLANK 功能: 使用BLANK子句能在表尾追加一条空白记录,留待以后填入数据。若缺省则出现记录的编辑窗口,等待用户输入数据。,表记录的

17、添加(2),(2)插入记录 命令格式(向后兼容。请用APPE或INSERT-SQL): INSERT BLANK BEFORE 功能:在指定的位置插入一条新记录。 说明: BEFORE子句表示在当前记录之前插入新记录,缺省表示在当前记录之后插入新记录。 BLANK子句表示插入一条空白记录。,表记录的修改 (1),(1)编辑方式 命令格式: EDIT FIELDS FOR/WHILE 功能: 以全屏幕编辑方式,修改当前表中满足条件的记录中指定字段的数据。,表记录的修改 (2),(2)浏览方式 命令格式: BROWSE FIELDS 功能: 以全屏幕窗口方式修改当前表中的记录。,表记录的修改 (3

18、),(3)替换方式 命令格式: REPLACE WITH ADDITIVE , WITH ADDITIVE FOR|WHILE 功能: 在当前表的指定记录中,将有关字段的值用相应的表达式值来替换。若参数都缺省,只对当前记录的有关字段进行替换。,表记录的修改 (4),说明: ADDITIVE用于备注型字段,表示将表达式值添加到字段的原有内容后,而不是取代。,表记录的删除(1),(1)逻辑删除 命令格式: DELETE FOR |WHILE 功能: 对当前表在指定内满足的记录加上删除标记。若可选项都缺省,表示当前记录。 说明: 被逻辑删除的记录前将会出现*号。,表记录的删除(2),(2)物理删除

19、命令格式: PACK 功能: 从物理上真正删除带有删除标记的记录。,表记录的删除(3),(3)逻辑删除恢复 命令格式: RECALL FOR|WHILE 功能: 对当前表在指定内满足的记录去掉删除标记,缺省参数则恢复当前记录。,表记录的删除(4),(4)清除命令 命令格式: ZAP 功能: 物理删除当前表中的所有记录。,3. 排序和索引p99,(1)设置主控索引 命令格式: SET ORDER TO | 功能: 将指定的索引名设置为主控索引。 (2) 取消主控索引 命令格式: SET ORDER TO 或 SET ORDER TO 0 功能:取消主控索引,3.4.4 表的定制,1.记录筛选 格

20、式: SET FILTER TO 2.字段筛选 格式: SET FIELDS |ALLLIKE|EXCEPT ,3.4.5 数据库的操作,1 数据库基本操作 创建数据库 格式:CREATE DATABASE 数据库名 打开数据库 格式:OPEN DATABASE 数据库名 关闭数据库 格式:CLOSE DATABASE ALL 修改数据库 格式:MODIFY DATABASE 删除数据库 格式:DELETE DATABASE 文件名|? DELETETABLES RECYCLE,3.4.6 数据库表的设置,1.主索引的建立 p106 格式: ALTER TABLE ADD PRIMARY KE

21、Y TAG 功能:为数据库建立主索引。 2.主索引的删除 格式: ALTER TABLE DROP PRIMARY 功能:删除数据库的主索引,3.4.7 多表操作(1),1.工作区的概念 要打开多个表,就要使用多个工作区。VFP可以同时打开32767个工作区。工作区通常有三种表示方式: (1)工作区名:A,B,C,D,E,F,G,H,I,J 共十个。 (2)工作区号:1,2,3,。 (3)别名:也就是表的另外一个名称,通常用表文件名来表示。,3.4.7. 多表操作(2),2.工作区的选择 格式: SELECT |0 功能:选择某个工作区。 说明: (1)VFP打开时默认1号工作区为当前工作区;

22、 (2)在命令USE ALIAS 中指定,若没有指定, 就是 ; (3)SELECT 0表示选定当前尚未使用的编号最小的工作区。,3.4.7. 多表操作(3),3.非当前工作区字段的引用 访问当前工作区中打开表的字段时,可以直接引用字段名,而访问非当前工作区中表的字段时,应使用如下格式: |. 或者: |-,3.4.7. 多表操作(4),4.建立表间的临时关系 格式:SET RELATION TO INTO , INTO ADDITIVE 功能: 把当前工作区上的表(主动表)与被动表通过关联字段建立指针联动关系,使得当前工作区上表的指针移动时,被动表的记录指针也发生相应的移动。,3.4.7.

23、多表操作(5),使用说明 被动表的公共字段必须已建立索引并被激活。 要求主动表打开在当前工作区,被动表打开在其它工作区。 可在一条SET RELATl0N命令中创建单个主动表与多个被动表之间的关系,各个关系之间要用逗号隔开。,3.4.7. 多表操作(6),选项ADDITIVE表示保留当前工作区中所有已存在的关联并添加指定的新关联。如果命令中不包括ADDITIVE,将先断开当前工作区中已有的关联,然后再创建指定的新关联。 取消当前工作区中的所有关联: SET RELATl0N TO 取消父表与指定子表间的关联: SET RELATION OFF INTO ,几个符号命令,?|?计算和显示表达式的

24、值 ?直接送打印机打印 |打印或显示文本行 =赋值、计算一个或多个表达式 ! 运行外部命令(少用)分隔库和表 $、%包含、比较 *、&注释 &宏替换,永久关系和临时关系,永久关系(persistent relationship)和临时关系(temporary relationship) : 永久关系: 在数据库中创建的表之间的一种关系,这种关系不仅在运行时存在,而且一直保留。拥有永久关系的表必须在数据库中。 临时关系:在数据工作期中创建的表之间的关系。临时关系在退出 Visual FoxPro 时解除。 两者的关系:没有本质联系,只在数据环境的设计中,具永久关系的两个表会自动建立连接(是表单中

25、的一种临时关系,如:relation1。查询和视图设计中作为默认的联接条件),表结构的修改和复制,进入表设计器(教材无此命令) 格式:MODIFY STRUCTURE 功能: 打开表设计器修改当前表|打开表对话框。 显示表结构 格式:LIST|DISPLAY STRUCTUURE 表结构的复制 格式:COPY STRUCTURE TO FIELDS 功能: 复制表的结构,不复制表中的数据。,表结构的修改和复制,表结构的修改 格式1:ALTER TABLE ADD|ALTER COLUMN (,) 格式2: ALTER TABLE DROP COLUMN RENAME COLUMN TO ,3.

26、4.3 排序和索引p99,1 (物理)排序 格式:SORT TO ON /A|/D /C /A|/D/C 范围 FOR WHILE FIELDS |FIELDS |FIELDS EXCEPT 功能: 对当前表中指定范围内满足条件的记录按指定字段升序或降序排列,并将结果保存到新表中。 说明:为排序后的表名;/A升序,/D降序,/C忽略大小写;默认对所有记录排序;FIELDS指明新表包含的字段。,3.4.3 排序和索引(2),2 索引 建立单索引 格式:INDEX ON TO .idx FOR COMPACT ASCENDING|DESCENDING UNIQUE|CANDIDATE ADDITI

27、VE 功能: 对当前表中符合条件的记录按索引表达式升序或降序建立单索引文件。 说明: ON指定索引表达式;TO指定索引文件名;默认对所有记录; COMPACT建立压缩文件; UNIQUE|CANDIDATE建立唯一或候选索引; ADDITIVE附加到当前打开的索引文件。,3.4.3 排序和索引(3),建立复合索引 格式:INDEX ON TAG OF .cdx FOR COMPACT ASCENDING|DESCENDING UNIQUE|CANDIDATE ADDITIVE 功能: 对当前表中符合条件的记录按索引表达式升序或降序建立指定的索引标识符。 说明: TAG制定索引标识符名;OF指定索引标识符名;默认对所有记录;COMPACT建立压缩文件;UNIQUE | CANDIDATE建立唯一或候选索引;ADDITIVE附加到当前打开的索引文件。,3.4.3 排序和索引(4),删除复合索引标识符 格式:DELETE TAG ALL| OF 复合索引文件名 功能:删除已打开的结构或非结构复合索引文件中的索引标识。 说明:ALL删除所有索引标识(索引文件也将被删除);不删除独立索引,3.4.3 排序和索引(5),删除单索

温馨提示

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

评论

0/150

提交评论