数据库原理- V F P教学课件:第03章 查询与统计.ppt

上传人(卖家):罗嗣辉 文档编号:1795296 上传时间:2021-10-18 格式:PPT 页数:90 大小:2.36MB
下载 相关 举报
数据库原理- V F P教学课件:第03章 查询与统计.ppt_第1页
第1页 / 共90页
数据库原理- V F P教学课件:第03章 查询与统计.ppt_第2页
第2页 / 共90页
数据库原理- V F P教学课件:第03章 查询与统计.ppt_第3页
第3页 / 共90页
数据库原理- V F P教学课件:第03章 查询与统计.ppt_第4页
第4页 / 共90页
数据库原理- V F P教学课件:第03章 查询与统计.ppt_第5页
第5页 / 共90页
点击查看更多>>
资源描述

1、1 第3章 查询与统计 2 3.1 排序与索引 表的记录通常按输入的先后排列,用表的记录通常按输入的先后排列,用LISTLIST等命令显示表时将按等命令显示表时将按 此顺序输出。若要以另一种顺序来输出记录,便须对表进行排序或此顺序输出。若要以另一种顺序来输出记录,便须对表进行排序或 索引。排序与索引都能改变记录输出顺序,后者还能决定记录的存索引。排序与索引都能改变记录输出顺序,后者还能决定记录的存 取顺序。取顺序。 3 一、排序 排序就是根据表的某些字段重排记录。排序后将产生一个排序就是根据表的某些字段重排记录。排序后将产生一个 新表,其记录按新的顺序排列,但原文件不变。新表,其记录按新的顺序

2、排列,但原文件不变。 命令格式:命令格式: SORT TO SORT TO ON ON /A | /D /C , /A | /D /C , /A | /D /C . /A | /D /C . FOR FOR 1 WHILE WHILE 2 FIELDS FIELDS |FIELDS LIKE |FIELDS LIKE | FIELDS | FIELDS EXCEPT EXCEPT 4 说明:说明: (1 1)ONON子句的字段名表示排序字段,记录将随字段值子句的字段名表示排序字段,记录将随字段值 的增大(升序)或减小(降序)来排序。选项的增大(升序)或减小(降序)来排序。选项/A/A和和D D

3、分别分别 用来指定升序或降序,默认按升序排序。选项用来指定升序或降序,默认按升序排序。选项C C表示不区表示不区 分字段值中字母大小写,即将同一字母的大写与小写看成一分字段值中字母大小写,即将同一字母的大写与小写看成一 样。样。 不可选用备注型或通用型字段来排序。不可选用备注型或通用型字段来排序。 (2 2)可在)可在ONON子句中使用多个字段名实现多重排序,即子句中使用多个字段名实现多重排序,即 先按主排序字段先按主排序字段 l排序,对于字段值相同的记录再排序,对于字段值相同的记录再 按第二排序字段按第二排序字段 2排序,依此类推。排序,依此类推。 (3 3)缺省)缺省 、FORFOR1和和

4、WHILEWHILE2等子句等子句 表示对所有记录排序。表示对所有记录排序。 (4 4)FIELDSFIELDS子句指定新表应包含的字段默认包含原子句指定新表应包含的字段默认包含原 表所有字段。表所有字段。 5 示例:示例: (1 1)将所有非主要设备按照启用日期排序,新表只包含编)将所有非主要设备按照启用日期排序,新表只包含编 号、名称、启用日期三个字段。号、名称、启用日期三个字段。 sort to shb1 on sort to shb1 on 起用日期起用日期 /D fields /D fields 编号编号, ,名称名称, ,起用日起用日 期期 for .not.for .not.主要

5、设备主要设备 sort to shb1 on sort to shb1 on 起用日期起用日期 /A fields /A fields 编号编号, ,名称名称, ,起用日起用日 期期 for .not.for .not.主要设备主要设备 (2 2)将主要设备按照部门降序排列,当部门相同按照价格)将主要设备按照部门降序排列,当部门相同按照价格 升序排列升序排列 sort to shb1 on sort to shb1 on 部门部门 /d,/d,价格价格 for for 主要设备主要设备 6 二、索引 1 1、索引的概念、索引的概念 (1 1)记录的物理顺序与逻辑顺序)记录的物理顺序与逻辑顺序

6、文件中的记录一般按其磁盘存储顺序输出,这种顺序称文件中的记录一般按其磁盘存储顺序输出,这种顺序称 为物理顺序。执行排序后,在新文件中形成了新的物理顺序。为物理顺序。执行排序后,在新文件中形成了新的物理顺序。 索引排序属于另外一种方法,排序建立索引文件,但索引排序属于另外一种方法,排序建立索引文件,但它它 不改变记录的物理顺序,而是按某个索引关键字(或其表达不改变记录的物理顺序,而是按某个索引关键字(或其表达 式)来建立记录的逻辑顺序。在索引文件中,所有关键字值式)来建立记录的逻辑顺序。在索引文件中,所有关键字值 按升序或降序排列,每个值对应原文件的一个记录号,这样按升序或降序排列,每个值对应原

7、文件的一个记录号,这样 使确定了记录的逻辑顺序。使确定了记录的逻辑顺序。 7 以价格为关键字段排序后示意 8 索引类似于书的目录索引,目录书页号列表用于指示读索引类似于书的目录索引,目录书页号列表用于指示读 者查找书中的特定页码,而数据表的索引是指向特定记录的者查找书中的特定页码,而数据表的索引是指向特定记录的 记录号列表,用于处理如何确定记录的处理顺序。记录号列表,用于处理如何确定记录的处理顺序。 例如要显示所有记录,系统就依次按索引文件中的记录例如要显示所有记录,系统就依次按索引文件中的记录 号取出表中的物理记录,达到按关键字值顺序来列出记录的号取出表中的物理记录,达到按关键字值顺序来列出

8、记录的 效果。效果。 虽然排序与索引都以增加一个文件为代价,但索引文件虽然排序与索引都以增加一个文件为代价,但索引文件 只包括关键字和记录号两个字段,比被索引的表要小得多;只包括关键字和记录号两个字段,比被索引的表要小得多; 索引起作用后,增删或修改表的记录时索引文件会自动更新,索引起作用后,增删或修改表的记录时索引文件会自动更新, 故而索引的应用远比排序为广。故而索引的应用远比排序为广。 9 (2 2)索引的种类)索引的种类 a a、按扩展名来分类:、按扩展名来分类: VFPVFP支持复合索引和单索引两类索引文件。前者扩展名支持复合索引和单索引两类索引文件。前者扩展名 为为CDXCDX,后者

9、扩展名为,后者扩展名为IDXIDX。复合索引文件允许包含多个索引,。复合索引文件允许包含多个索引, 每个索引都有一个索引标识,代表一种记录逻辑顺序。这种每个索引都有一个索引标识,代表一种记录逻辑顺序。这种 索引文件总以压缩方式存储,以便少占存储空间。索引文件总以压缩方式存储,以便少占存储空间。 复合索引文件又有结构的和非结构的两种。复合索引文件又有结构的和非结构的两种。若定义复合若定义复合 索引文件时用户为它取了名字,则其为非结构的,否则为结索引文件时用户为它取了名字,则其为非结构的,否则为结 构的。构的。 打开非结构复合索引文件需使用打开非结构复合索引文件需使用SET INDEXSET IN

10、DEX命令或命令或USEUSE命命 令中的令中的INDEXINDEX子句。结构复合索引文件的主名与表的主名相子句。结构复合索引文件的主名与表的主名相 同,它随表的打开而打开,在添加、更改或删除记录时还会同,它随表的打开而打开,在添加、更改或删除记录时还会 自动维护,在各类索引文件中,选用它最为省事。自动维护,在各类索引文件中,选用它最为省事。 10 b b、按功能分类:、按功能分类: 索引除具有建立记录逻辑顺序的作用外,还按控制是否索引除具有建立记录逻辑顺序的作用外,还按控制是否 允许相同的索引关键字值在不同记录中重复出现,或允许在允许相同的索引关键字值在不同记录中重复出现,或允许在 永久关系

11、中建立参照完整性,按照功能其有四种类型的索引,永久关系中建立参照完整性,按照功能其有四种类型的索引, 表表3.13.1列出了列出了4 4种索引功能类型。种索引功能类型。 11 2 2、建立索引命令格式:、建立索引命令格式: 命令格式:命令格式: INDEX ON INDEX ON TAG TAG FOR FOR COMPACTCOMPACT ASCENDING | DESCENDINGASCENDING | DESCENDING CANDIDATECANDIDATE ( ) 12 说明:说明: 关键字可用表达式表示。关键字可用表达式表示。 (1 1)该命令默认建立普通索引型索引文件:)该命令默

12、认建立普通索引型索引文件:UNIQUEUNIQUE表表 示建立唯一索引型索引文件;示建立唯一索引型索引文件;CANDIDATECANDIDATE表示索引文件是候表示索引文件是候 选索引型,但需与选索引型,但需与TAGTAG子句同时使用。子句同时使用。 (2 2)COMPACTCOMPACT选项用来指定单索引文件为压缩的。选项用来指定单索引文件为压缩的。 (3 3)OFOF选项的选项的 用于指定非结构复合用于指定非结构复合 索引文件的名字,缺省该选项表示建立结构复合索引文件。索引文件的名字,缺省该选项表示建立结构复合索引文件。 (4 4)记录逻辑顺序默认为升序,也可用)记录逻辑顺序默认为升序,也

13、可用ASCENDINGASCENDING选项选项 表示升序。表示升序。DESCENDINGDESCENDING选项表示降序。选项表示降序。 13 示例:示例: INDEX ON INDEX ON 名称名称 TAG mc DESC FROM; SHB,dx,bmdm WHERE (dx. SHB,dx,bmdm WHERE (dx.编号编号=shb.=shb.编号编号) .AND. ;) .AND. ; (bmdm. (bmdm.代码代码=shb.=shb.部门部门) ) b b、查询编号前、查询编号前3 3位小于位小于038038的设备名称及大修费用合计,按的设备名称及大修费用合计,按 照大修

14、合计的费用降序排列照大修合计的费用降序排列 SELECT shb.SELECT shb.名称名称, SUM(dx., SUM(dx.费用费用) FROM shb,dx;) FROM shb,dx; WHERE (shb. WHERE (shb.编号编号=dx.=dx.编号编号) .AND. LEFT(shb.) .AND. LEFT(shb.编编 号号,3)038 GROUP BY dx.,3)038 GROUP BY dx.编号编号 ORDER BY 2ORDER BY 2 DESC DESC 注意:此处由于排序的条件注意:此处由于排序的条件SUMSUM(价格)不能直接使用,此(价格)不能直

15、接使用,此 处的处的2 2是指排序以查询结果中的第二列作为依据。否则会提示是指排序以查询结果中的第二列作为依据。否则会提示 “SQLSQL:找不到列:找不到列” 62 3 3、联接方式(、联接方式(T3.5T3.5) 联接可以实现两个表的联接,即在一个查询涉及两个以上表联接可以实现两个表的联接,即在一个查询涉及两个以上表 时,将其按照一定条件联系在一起进行操作。时,将其按照一定条件联系在一起进行操作。VFPVFP的的SQLSQL可以使用可以使用 多种类型的联接形式,示例多种类型的联接形式,示例 63 SELECT a1.d1,a2.d2 FROM a1 INNER JOIN a2 ON a1.

16、d1=a2.d2SELECT a1.d1,a2.d2 FROM a1 INNER JOIN a2 ON a1.d1=a2.d2 SELECT a1.d1,a2.d2 FROM a1 LEFT JOIN a2 ON a1.d1=a2.d2SELECT a1.d1,a2.d2 FROM a1 LEFT JOIN a2 ON a1.d1=a2.d2 SELECT a1.d1,a2.d2 FROM a1 RIGHT JOIN a2 ON a1.d1=a2.d2SELECT a1.d1,a2.d2 FROM a1 RIGHT JOIN a2 ON a1.d1=a2.d2 SELECT a1.d1,a2.

17、d2 FROM a1 FULL JOIN a2 ON a1.d1=a2.d2SELECT a1.d1,a2.d2 FROM a1 FULL JOIN a2 ON a1.d1=a2.d2 64 二、查询设计器 用户可通过用户可通过VFPVFP提供的查询设计器来进行数据查询。查询设计提供的查询设计器来进行数据查询。查询设计 器产生的查询结果除可当场浏览外,还有多种输出方式。查询设器产生的查询结果除可当场浏览外,还有多种输出方式。查询设 置也可以保存在文件中,供以后打开查询设计据使用或修改。置也可以保存在文件中,供以后打开查询设计据使用或修改。 1 1、查询设计器的操作步骤、查询设计器的操作步骤 “

18、打开查询设计器打开查询设计器”- -“进行查询设置进行查询设置”(即设置被查询的表、(即设置被查询的表、 联接条件、字段等输出要求和查询结果的去向)联接条件、字段等输出要求和查询结果的去向)- -执行查询执行查询- -保存保存 查询设置。查询设置。 2 2、查询设计器的组成、查询设计器的组成 上部窗格上部窗格 下部窗格下部窗格 查询菜单查询菜单 65 三、查询结果的图形化处理 在在VFPVFP中允许将查询结果以图形化的方式输出,使用图中允许将查询结果以图形化的方式输出,使用图 形化输出方式应注意以下问题:形化输出方式应注意以下问题: (1 1)_gengraph_gengraph:_gengr

19、aph_gengraph为一系统变量,用于给定为一系统变量,用于给定 图形向导所在位置。图形向导所在位置。 (2 2)要输出图形必须选定两个以上字段,其中至少有)要输出图形必须选定两个以上字段,其中至少有 一个为数值字段。一个为数值字段。 (3 3)输出结果保存到表单文件中,以后可以调用。)输出结果保存到表单文件中,以后可以调用。 66 3.6 数据库与视图 一、数据库 1 1、数据库的基本概念、数据库的基本概念 当数据结构较为简单时,如为个人保存一个亲友通当数据结构较为简单时,如为个人保存一个亲友通 信录,建一个自由表就可以了。它通常单独使用,与其信录,建一个自由表就可以了。它通常单独使用,

20、与其 它表的数据没有多少联系。它表的数据没有多少联系。 但数据结构比较复杂,如果为工厂开发一个人事管但数据结构比较复杂,如果为工厂开发一个人事管 理系统,一个表很可能不够了,需要建立多个表。以前理系统,一个表很可能不够了,需要建立多个表。以前 的例子中多次提到过的的例子中多次提到过的SHB.DBFSHB.DBF,BMDM.DBFBMDM.DBF,ZZ.DBFZZ.DBF等等 表就是例子,各表中包含的数据相互具有这样那样的联表就是例子,各表中包含的数据相互具有这样那样的联 系。系。 67 68 若把它们集中到一个数据库中,并且在各表之间建若把它们集中到一个数据库中,并且在各表之间建 立若于固定的

21、关系(关联),管理与使用就更加方便了。立若于固定的关系(关联),管理与使用就更加方便了。 这类从属某一数据库的表统称为数据库表(简称库表)。这类从属某一数据库的表统称为数据库表(简称库表)。 一个较大的应用项目可以创建若干个数据库,每个一个较大的应用项目可以创建若干个数据库,每个 数据库可定义一组数据库表,然后用一定的关系将它们数据库可定义一组数据库表,然后用一定的关系将它们 相互联接。相互联接。 69 2 2、用数据库设计、用数据库设计 器设计数据库器设计数据库 (1 1)数据库设计)数据库设计 器器 数据库设计器是数据库设计器是 VFPVFP提供的一种辅助设提供的一种辅助设 计窗口,它能显

22、示当前计窗口,它能显示当前 数据库全部的表、视图数据库全部的表、视图 相关系,并让用户操作相关系,并让用户操作 这些对象。这些对象。 当数据库设计器窗当数据库设计器窗 口激活时,格伴随出现口激活时,格伴随出现 “数据库数据库”菜单和菜单和 数据库设计器数据库设计器 工具栏。工具栏。 若用命令来打开数若用命令来打开数 据库表据库表. .则不需打开数则不需打开数 据库设计器,也不需了据库设计器,也不需了 解数据库是否打开。解数据库是否打开。 70 (2 2)数据库的创建)数据库的创建 数据库创建可以通过菜单命令或数据库创建可以通过菜单命令或 CREATE DATABSE CREATE DATABS

23、E 来进行。来进行。 ()() (3 3)数据库的关闭与删除)数据库的关闭与删除 CLOSE DATABASE ALLCLOSE DATABASE ALL:关闭所有的数据库。:关闭所有的数据库。 DELETE DATABASE DELETE DATABASE DELETETABLESDELETETABLES:当:当 包含包含DELETETABLESDELETETABLES子句时删除子句时删除 表示的数据库表示的数据库 及其中的表,否则仅删除数据库,并将它的表变为自由及其中的表,否则仅删除数据库,并将它的表变为自由 表。应该注意,若要删除数据库必须先关闭它。表。应该注意,若要删除数据库必须先关闭

24、它。 REMOVE TABLESREMOVE TABLES;从数据库中移去表,被移去的表变;从数据库中移去表,被移去的表变 为自由表。为自由表。 71 (4 4)数据库文件)数据库文件 数据库创建后将保存在扩展名为数据库创建后将保存在扩展名为.DBC.DBC数据库文件中。数据库文件中。 该文件本身也是一个表,其中记载了它的所有表的该文件本身也是一个表,其中记载了它的所有表的 参数,及索引、关联等有关参数。可以使用参数,及索引、关联等有关参数。可以使用USEUSE命令将命令将 其打开。如:其打开。如:use use 数据数据1.dbc1.dbc就可以打开名字为数据就可以打开名字为数据1 1的的

25、数据库文件数据库文件 72 二、数据字典 数据词典用于保存对数据库中各种数据的定义或设置信息,数据词典用于保存对数据库中各种数据的定义或设置信息, 包括表的属性、字段属性、记录规则、表间关系,以及参照完包括表的属性、字段属性、记录规则、表间关系,以及参照完 整性(整性(Referential IntegrityReferential Integrity,简称,简称RIRI)等。)等。 这些属性或信息均可通过数据库设计器来设置、显示或修这些属性或信息均可通过数据库设计器来设置、显示或修 改,并且由系统保存在数据词典中。直到相关的表从数据库中改,并且由系统保存在数据词典中。直到相关的表从数据库中

26、移去为止。移去为止。 需要指出。当设计自由表时,表设计器也用来设置字段、需要指出。当设计自由表时,表设计器也用来设置字段、 索引和表的各种属性。但若所设计的是数据库表,其设置起来索引和表的各种属性。但若所设计的是数据库表,其设置起来 的内容比起自由表来将丰富得多。的内容比起自由表来将丰富得多。 73 74 1 1、长名(表名、长名(表名/ /字段名)与注释字段名)与注释 为了方便书写,表和字段通常使用较短的名称(为了方便书写,表和字段通常使用较短的名称(VFPVFP规定字段规定字段 名最长不超过名最长不超过1010个字符)。同时,个字符)。同时,VFPVFP允在数据字典中为表允在数据字典中为表

27、/ /字段字段 设置不超过设置不超过128128个字符的长名,以及对表个字符的长名,以及对表/ /字段增加适当的注释。字段增加适当的注释。 长表名长表名/ /长宇段名一般能在浏览窗口或各种设计器(例如数据长宇段名一般能在浏览窗口或各种设计器(例如数据 库设计器、查询设计器和即将介绍的视图设计器)的标题栏内显库设计器、查询设计器和即将介绍的视图设计器)的标题栏内显 示,而注释则通常出现在项目管理器中。例如当用户打开项目管示,而注释则通常出现在项目管理器中。例如当用户打开项目管 理器,从中选定一个表或从表的字段列表框中选定了一个字段后,理器,从中选定一个表或从表的字段列表框中选定了一个字段后, 在

28、项目管理器的底部就会出现事先巳在数据词典中设置的注释,在项目管理器的底部就会出现事先巳在数据词典中设置的注释, 使用户参阅。使用户参阅。 注意,注意,数据库表仅在创建时可采用长表名数据库表仅在创建时可采用长表名。 75 2 2、设置字段属性、设置字段属性 (1 1)格式)格式 指定表达式,使得在指定表达式,使得在“浏览浏览”窗口、表单或报表中,确定字段显窗口、表单或报表中,确定字段显 示时的大小写、字体大小和样式。示时的大小写、字体大小和样式。 (2 2)输入掩码)输入掩码 显示区的输入掩码文本框用于键入输入掩码,借以指定字段的输显示区的输入掩码文本框用于键入输入掩码,借以指定字段的输 入格式

29、,限制输入数据的范围,控制输入的正确性。入格式,限制输入数据的范围,控制输入的正确性。 输入掩码可以是以下字符:输入掩码可以是以下字符: X X 允许输入字符允许输入字符 9 9 允许输入数字允许输入数字 # # 允许的入数字允许的入数字. .空格空格. .十,一十,一 $ $ 显示显示SET CURRENCYSET CURRENCY命令指出的货币号命令指出的货币号 * * 在指定宽度中,值左显示星号在指定宽度中,值左显示星号 . . 指出小数点位置指出小数点位置 , 用逗号分隔小数点左的数字用逗号分隔小数点左的数字 与格式文本框不同,输入掩码必须按位来指定格式。与格式文本框不同,输入掩码必须

30、按位来指定格式。 76 (3 3)标题)标题 显示区的标题文本框用于为浏览窗口、表单或报表中的字段标签显示区的标题文本框用于为浏览窗口、表单或报表中的字段标签 键入表达式。例如在图键入表达式。例如在图3.323.32所示的标题文本框键入了设备编号字佯,所示的标题文本框键入了设备编号字佯, 所以在浏览窗口中,编号字段的列标题也将显示为设备编号。所以在浏览窗口中,编号字段的列标题也将显示为设备编号。 (4 4)字段验证)字段验证 字段验证区包含字段验证区包含3 3个文本框,各文本框均可直接键入数据钮显示出个文本框,各文本框均可直接键入数据钮显示出 表达式生成器对话框,在其中进行设置。也可通过其右边

31、的对话按规表达式生成器对话框,在其中进行设置。也可通过其右边的对话按规 则则文本框用于输入对字段数据有效性进行检查的规则、它实际上是则则文本框用于输入对字段数据有效性进行检查的规则、它实际上是 一个条件。一个条件。 信息文本框用于指定出错提示信息,当该字段辅人的数据违反条信息文本框用于指定出错提示信息,当该字段辅人的数据违反条 件时,出错信息将照此显示。件时,出错信息将照此显示。 默认值文本框用于指定字段的默认值。当增加记录时,字段默认默认值文本框用于指定字段的默认值。当增加记录时,字段默认 值会在新记录中显示出来,从而提高输入速度。值会在新记录中显示出来,从而提高输入速度。 77 3 3、设

32、置记录规则、设置记录规则 (1 1)记录验证)记录验证 记录级有效性检查规则用来检查同一记录中不同字段记录级有效性检查规则用来检查同一记录中不同字段 之间的逻辑关系。之间的逻辑关系。 规则文本框:用于指定记录级有效性检查规则,光标规则文本框:用于指定记录级有效性检查规则,光标 离开当前记录时进行校验。离开当前记录时进行校验。 信息文本框:用于指定出错提示信息。在校验记录级信息文本框:用于指定出错提示信息。在校验记录级 有效性规则时,发现输入与规则不符时该信息将会显示出有效性规则时,发现输入与规则不符时该信息将会显示出 来。来。 78 (2 2)触发器)触发器 表选项卡中的表选项卡中的3 3个触

33、发器,分别用于指定记录插入、个触发器,分别用于指定记录插入、 更新、删除的规则。更新、删除的规则。 插入触发器:用于指定一个规则,每次向表中插入插入触发器:用于指定一个规则,每次向表中插入 或追加记录时该规则被触发检查插入的记录是否满足规或追加记录时该规则被触发检查插入的记录是否满足规 则。则。 更新触发器:用于指定一个规则,每次更新记录时更新触发器:用于指定一个规则,每次更新记录时 触发该规则。触发该规则。 删除触发器:用于指定一个规则,每次向表中删除删除触发器:用于指定一个规则,每次向表中删除 记录(打上删除标记)时触发该规则。记录(打上删除标记)时触发该规则。 79 4 4、主索引和永久

34、关系、主索引和永久关系 (1 1)主索引)主索引 在建立索引时,若打开的是数据库表,组合框中将列出包括主索引在建立索引时,若打开的是数据库表,组合框中将列出包括主索引 在内的在内的4 4种索引类型。主索引的作用有两个:种索引类型。主索引的作用有两个:一是主索引不允许出现重一是主索引不允许出现重 复值复值. .发现重复值会禁止存盘,故可用作主关键字。二是主索引可用于发现重复值会禁止存盘,故可用作主关键字。二是主索引可用于 建立永久关系,从而建立参照完整性。建立永久关系,从而建立参照完整性。 建立主索引的方法参见索引部分。建立主索引的方法参见索引部分。 (2 2)永久关系与临时关系)永久关系与临时

35、关系 永久关系是数据库表之间的关系,在数据库设计器中表现为表索引永久关系是数据库表之间的关系,在数据库设计器中表现为表索引 之间的连线。连线的一端为一根,另一端为三根,分别代表一多关系的之间的连线。连线的一端为一根,另一端为三根,分别代表一多关系的 一端与多端。永久关系建立后存储在数据库文件(一端与多端。永久关系建立后存储在数据库文件(DBCDBC)中,只要不作)中,只要不作 删除或变更就一直保留。删除或变更就一直保留。永久关系在查询和视图中能自动成为联接条件;永久关系在查询和视图中能自动成为联接条件; 能作为表单和报表的默认关系,并显示在数据环境设计器中,允许建立能作为表单和报表的默认关系,

36、并显示在数据环境设计器中,允许建立 参照完整性。参照完整性。 80 与永久关系相区别,以与永久关系相区别,以 前建立的关系可称为临时关前建立的关系可称为临时关 系。临时关系仅用于关联,系。临时关系仅用于关联, 即控制关联表的记录指针有即控制关联表的记录指针有 序移动,永久关系在查询和序移动,永久关系在查询和 视图中则起联接作用。视图中则起联接作用。 利用数据库设计器来建利用数据库设计器来建 立永久关系立永久关系. .只要在数据库只要在数据库 表间进行连线,而删除永久表间进行连线,而删除永久 关系也只需去掉连线。连线关系也只需去掉连线。连线 规则为:在数据库设计器中,规则为:在数据库设计器中,

37、从从一个表的主索引或候选索一个表的主索引或候选索 引引拖到另一表的任一索引拖到另一表的任一索引 (即出现表间连线)。(即出现表间连线)。 81 5 5、参照完整性、参照完整性 上文已介绍过数据库表的字段级和记录级验证规则,参照完上文已介绍过数据库表的字段级和记录级验证规则,参照完 整性则属子表间规则,整性则属子表间规则, 对于永久关系的相关表,在更新、插入或删除记录时如果只对于永久关系的相关表,在更新、插入或删除记录时如果只 改其一不改其二,就会影响数据的完整性:例如修改父表中关键改其一不改其二,就会影响数据的完整性:例如修改父表中关键 字值后,子表关键字值未作相应改变;删除父去的某记录后,子

38、字值后,子表关键字值未作相应改变;删除父去的某记录后,子 表的相应记录未删除,致使这些记录成为孤立记录;对于子表插表的相应记录未删除,致使这些记录成为孤立记录;对于子表插 入的记录、父表中没有相应关键字值的记录,等等。入的记录、父表中没有相应关键字值的记录,等等。 对这些涉及表间数据的完整性,统称为参照完整性(对这些涉及表间数据的完整性,统称为参照完整性(R1R1)。)。 为保持参照完整性,可用手工调整,或执行一段自编的程序为保持参照完整性,可用手工调整,或执行一段自编的程序 来调整。来调整。VFPVFP提供了参照完整性规则,用户可以利用参照完整性生提供了参照完整性规则,用户可以利用参照完整性

39、生 成器来选择要否保持参照完整性,并可控制在相关表中更新、插成器来选择要否保持参照完整性,并可控制在相关表中更新、插 入或删除记录。入或删除记录。 82 (1 1)RIRI生成器窗口的打开生成器窗口的打开 从数据库设计器快捷菜单选择编辑参照完整性命令。从数据库设计器快捷菜单选择编辑参照完整性命令。 选择数据库菜单中的编辑参照完整性命令。选择数据库菜单中的编辑参照完整性命令。 任数据库设计器中双击两个表之间的连线任数据库设计器中双击两个表之间的连线. .并在编辑关系并在编辑关系 对话框中选定参照完整性按钮。对话框中选定参照完整性按钮。 83 (2 2)RIRI生成器窗口的组件生成器窗口的组件 R

40、IRI生成器窗口具有更新规则、删除规则和插入规则生成器窗口具有更新规则、删除规则和插入规则3 3个选项卡个选项卡 选项按钮和一个表格。选项按钮和一个表格。 更新规则选项卡用于指定修改父表中关健字值时所用的规则。更新规则选项卡用于指定修改父表中关健字值时所用的规则。 删除规则选项卡用于指定删除父表中的记录时所用的规则。删除规则选项卡用于指定删除父表中的记录时所用的规则。 插入规则选项卡用于制定在子表中插入新记录和更新已存在插入规则选项卡用于制定在子表中插入新记录和更新已存在 的记录时所用的规则。的记录时所用的规则。 84 各项按钮的具体功能解释如表各项按钮的具体功能解释如表3.73.7所示。所示

41、。 RIRI生成器窗口的表格表达了表的联接情况及是否要保持参照生成器窗口的表格表达了表的联接情况及是否要保持参照 完整性的规则。完整性的规则。 其中:其中: 父表列、子表列分别显示联接表的父表名、子表名;父表列、子表列分别显示联接表的父表名、子表名; 父记号列显示父表的索引关键字名,关键字可以是主索引父记号列显示父表的索引关键字名,关键字可以是主索引 字段或候选索引字段;字段或候选索引字段; 子记号列显示子表的索引标识名,更新列、删除列和插入子记号列显示子表的索引标识名,更新列、删除列和插入 规则显示所选定选项按钮的名称,若单击这些列的单元格,规则显示所选定选项按钮的名称,若单击这些列的单元格

42、, 会出现一个组合框,供用户选择级联、限制和忽略等功能。会出现一个组合框,供用户选择级联、限制和忽略等功能。 (3 3)参照完整性设置步骤)参照完整性设置步骤 选定某一规则选项卡选定某一规则选项卡选定某一选项按钮选定某一选项按钮在表格中选在表格中选 定某行并设置两表的联接定某行并设置两表的联接浏览有关表的内容,检验设置的正浏览有关表的内容,检验设置的正 确性确性 85 示例:示例: 如将如将BMDMBMDM与与SHBSHB的更新关系设置为限制,当修改表中记录时会的更新关系设置为限制,当修改表中记录时会 出现如下情况:出现如下情况: 86 三、视图 视图是从已有的数据库表或其它视图中抽配得来的一

43、个虚拟表视图是从已有的数据库表或其它视图中抽配得来的一个虚拟表。 这些数据在数据库中并不实际存储,仅在其数据词典中存储视图的定这些数据在数据库中并不实际存储,仅在其数据词典中存储视图的定 义。但视图一经定义,就成为数据库的组成部分,可以像数据库表一义。但视图一经定义,就成为数据库的组成部分,可以像数据库表一 样接受用户的查询。如果在视图中会有取自远程数据源(例如网络服样接受用户的查询。如果在视图中会有取自远程数据源(例如网络服 务器)的数据,则该视图为远程视图;否则为本地视图。务器)的数据,则该视图为远程视图;否则为本地视图。 87 1 1、视图的创建、视图的创建 (1 1)用)用CREATE

44、 SQL VIEWCREATE SQL VIEW命令来创建命令来创建 命令格式:命令格式: CREATE VIEW CREATE VIEW REMOTEREMOTE CONNECTION CONNECTION SHARE| SHARE|AS SQL SELECT AS SQL SELECT 命令命令 功能:按照功能:按照ASAS句中的句中的SELECT SQLSELECT SQL命令提出的查询要求,命令提出的查询要求, 创建一个本地或远程的创建一个本地或远程的SQLSQL视图。视图的名称由命令中的视图。视图的名称由命令中的 指定。指定。 88 2 2、视图设计器、视图设计器 视图设计器是设计视

45、图的工具,它类似于查询设计器,只是视图设计器是设计视图的工具,它类似于查询设计器,只是 在前一个窗口的下半部分比后一窗口多了一个在前一个窗口的下半部分比后一窗口多了一个“更新条件更新条件”选项选项 卡,以便使用户为视图设置更新条件。也就是说,视图设计器比卡,以便使用户为视图设置更新条件。也就是说,视图设计器比 查询设计器多了一个更新数据的功能查询设计器多了一个更新数据的功能. .除了这一功能外,视图与除了这一功能外,视图与 SELECT-SQL SELECT-SQL 的查询的功能一致。若想从本地或远程表中提取一组的查询的功能一致。若想从本地或远程表中提取一组 可以更新的数据,就需要使用视图。可

46、以更新的数据,就需要使用视图。 3 3、视图的更新、视图的更新 查询的结果只能阅读,不能修改。而视图则不仅具有查询的查询的结果只能阅读,不能修改。而视图则不仅具有查询的 功能,还可修改记录数据并使源表随之更新。与查询设计器相比,功能,还可修改记录数据并使源表随之更新。与查询设计器相比, 在视图设计器中多了一个更新条件选项卡,该选项卡具有使修改在视图设计器中多了一个更新条件选项卡,该选项卡具有使修改 过的记录更新源表的功能。过的记录更新源表的功能。 89 4 4、视图的优点、视图的优点 (1 1)视图提高了数据库应用的灵活性)视图提高了数据库应用的灵活性 一个数据库可能拥有许多用户,不同的用户需

47、要不同的常一个数据库可能拥有许多用户,不同的用户需要不同的常 用数据。视图的出现。可使用户将注意力集中在各自所关心的用数据。视图的出现。可使用户将注意力集中在各自所关心的 数据上,按个人的需要来定义视图。这样,同一个数据库在不数据上,按个人的需要来定义视图。这样,同一个数据库在不 同用户的眼中就呈现为不同的视图,从而简化了用户的操作,同用户的眼中就呈现为不同的视图,从而简化了用户的操作, 提高了数据应用的灵活性。提高了数据应用的灵活性。 (2 2)视图减少了用户对数据库物理结构的依赖)视图减少了用户对数据库物理结构的依赖 在关系数据库中,数据库表的结构难免会有这样那样的变在关系数据库中,数据库

48、表的结构难免会有这样那样的变 化(例如大表分小,或小表井大)。一旦表结构出现变动,用化(例如大表分小,或小表井大)。一旦表结构出现变动,用 户程序也要跟着修改,不胜麻烦。引入视图后,当数据库物理户程序也要跟着修改,不胜麻烦。引入视图后,当数据库物理 结构变化时,便可用改变视图来代替改变应用程序,从而减小结构变化时,便可用改变视图来代替改变应用程序,从而减小 了用户对数据库物理结构的依赖性。这也是为什么要求视图能了用户对数据库物理结构的依赖性。这也是为什么要求视图能 支持数据更新,并支持把对视图数据的更新最终能转换为源表支持数据更新,并支持把对视图数据的更新最终能转换为源表 数据更新的原因。数据更新的原因。 90 (3 3)视图可支持网络应用)视图可支持网络应用 创建远程视图后,用户可直接使用网上远端数据库创建远程视图后,用户可直接使用网上远端数据库 中的数据。中的数据。VFPVFP创建的远程视图,就支持在同一视图中创建的远程视图,就支持在同一视图中 合并使用本地数据与远程数据,从而扩大了用户的数据合并使用本地数据与远程数据,从而扩大了用户的数据 查询范围。查询范围。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(数据库原理- V F P教学课件:第03章 查询与统计.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|