
2
系统会d出提示,进行表的添加,选中要建立关系的表,点击添加。提示不会自动关闭,你需要再点击“关闭”按钮来关掉它。
3
如图是要建立关系的三个表。
4
我们通过用鼠标拖动就可以完成关系的建立,比如我拖动“学生信息”表中的学号,到“课程成绩”表里学号的位置。
5
d出“编辑关系”对话框,点击“创建”按钮,这样就建立了两表间的关系。
表与表之间一般存在三种关系,即一对一,一对多,多对多关系。
例如:一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆。
分析:这种情况其实也可以采用 一张表,但因为一个人可以拥有多辆汽车,如果采用一张表,会造成冗余信息过多。好的设计方式是,人和车辆分别单独建表,那么如何将两个表关联呢?有个巧妙的方法,在车辆的表中加个外键字段(人的编号)即可。
例如:学生选课,一个学生可以选修多门课程,每门课程可供多个学生选择。
分析:这种方式可以按照类似一对多方式建表,但冗余信息太多,好的方式是实体和关系分离并单独建表,实体表为学生表和课程表,关系表为选修表,其中关系表采用联合主键的方式(由学生表主键和课程表主键组成)建表。
什么是视图?
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
第一点:
使用视图,可以定制用户数据,聚焦特定的数据。
解释:
在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,
采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没
有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视
图,以后他在查询数据时,只需select from view_caigou 就可以啦。
第二点:使用视图,可以简化数据 *** 作。
解释:我们在使用查询时,在很多时候我们要使用聚合函数,同时还要
显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能
会很长,如果这个动作频繁发生的话,我们可以创建视图,这以后,我
们只需要select from view1就可以啦~,是不是很方便呀~
第三点:使用视图,基表中的数据就有了一定的安全性
因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以
将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集
合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改
和删除,可以保证数据的安全性。
第四点:可以合并分离的数据,创建分区视图
随着社会的发展,公司的业务量的不断的扩大,一个大公司,下属都设有很
多的分公司,为了管理方便,我们需要统一表的结构,定期查看各公司业务
情况,而分别看各个公司的数据很不方便,没有很好的可比性,如果将这些
数据合并为一个表格里,就方便多啦,这时我们就可以使用union关键字,
将各分公司的数据合并为一个视图。
以上,就是我认为视图的作用,实际上很多公司都使用视图来查询数据的。
内连接: 只连接匹配的行
SELECT from gradeclass gc inner join grade g on gcgrade_id=gId,
左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行
select from grade g rigth OUTER JOIN gradeclass g on ggrade_id=gcId(这里的outer可以省略)
右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行
select from grade g rigth OUTER JOIN gradeclass g on ggrade_id=gcId(这里的outer可以省略)
全外连接: 包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。
交叉连接: 生成笛卡尔积-它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配
可以在数据库关系图中的表间创建关系以显示某个表中的列如何链接到另一表中的列。
在关系数据库中,关系能防止冗余的数据。例如,如果正在设计一个数据库来跟踪有关书的信息,而每本书的信息(如书名、出版日期和出版商)都保存在一个名为 titles 的表中。同时还有一些想保存的有关出版商的信息,例如出版商的电话号码、地址和邮政编码。如果将所有这些信息都保存在 titles 表中,则对于某个出版商出版的每本书,出版商的电话号码将是重复的。
一个更好的解决方案是,单独在一个名为 publishers 的表中只保存一次出版商信息。然后在 titles 表中设置指针,以引用 publishers 表中的项。
若要确保数据同步,可以在 titles 表和 publishers 表之间强制引用完整性。引用完整性关系能确保某个表中的信息与另一个表中的信息相匹配。例如,titles 表中的每个书名必须和 publishers 表的特定出版商相关联。不能在数据库中添加数据库中不存在的出版商的书名。
为更好地理解表关系,请参见:
表关系类型
引用完整性概述
表关系类型
关系是通过匹配键列中的数据而工作的,而键列通常是两个表中具有相同名称的列。在大多数情况下,关系将一个表中为每个行提供唯一标识符的主键与另一个表中外键内的项相匹配。例如,通过在 titles 表的 title_id 列(主键)和 sales 表的 title_id 列(外键)之间创建一个关系,可以使销售额与特定的销售书名相关联。
表与表之间存在三种类型的关系。所创建的关系类型取决于相关联的列是如何定义的。
一对多关系
多对多关系
一对一关系
一对多关系
一对多关系是最常见的关系类型。在这种关系类型中,表 A 中的行可以在表 B 中有许多匹配行,但是表 B 中的行只能在表 A 中有一个匹配行。例如,publishers 表和 titles 表是一对多的关系:每一个出版商可出版许多书,但每一本书只能有一个出版商。
如果在相关列中只有一列是主键或具有唯一约束,则创建的是一对多关系。
一对多关系中的主键方由一个键 符号表示。关系中的外键方由一个无穷大 符号表示。
多对多关系
在多对多关系中,表 A 中的一行可与表 B 中的多行相匹配,反之亦然。通过定义称为连接表的第三方表创建这样的关系,该连接表的主键包括表 A 和表 B 中的外键。例如,authors 表和 titles 表是多对多关系,该关系通过从这些表中的每个表与 titleauthors 表的一对多关系定义。titleauthors 表的主键由 au_id 列(authors 表的主键)和 title_id 列(titles 表的主键)组成。
一对一关系
在一对一关系中,表 A 中的一行最多只能与表 B 中的一行相匹配,反之亦然。如果两个相关列都是主键或具有唯一约束,则创建的是一对一关系。
这种关系不常见,因为这种方式的大部分相关信息都在一个表中。使用一对一关系可以是为了:
分割一个含有许多列的表。
出于安全考虑而隔离表的某一部分。
存储可以很容易删除的临时数据,只需删除表即可删除这些数据。
存储只应用于主表子集的信息。
一对一关系的主键方由键 符号表示。外键方也由键 符号表示。
引用完整性概述
引用完整性是一种规则系统,这些规则可确保相关表中各行间关系的有效性,并确保不会意外删除或更改相关的数据。
在强制引用完整性时必须遵循以下规则:
如果在相关表的主键中不存在某个值,则不能在相关表的外键列中输入该值。但是,可以在外键列中输入空值。例如,在 employee 表中没有包括某职员,则不能指明分配给该职员的工作,但是可在 employee 表的 job_id 列输入空值来指明没有给该职员分配工作。
如果在相关表中存在与某行匹配的行,则不能从主表中删除该行。例如,如果在 employee 表中给多个职员分配了由 jobs 表中某行所代表的工作时,则不能删除该行。
当主表的某行有相关行时,则不能更改主键值。例如,如果将 jobs 表中的一项工作分配给某职员,则不能从 employee 表中删除该职员。
当满足下述所有条件时,可以设置引用完整性:
主表中相匹配的列是主键或具有唯一约束 。
相关列具有相同的数据类型和长度。
两个表属于同一个数据库。
数据库关系图中的已强制关系和未强制关系
在数据库关系图中创建关系线将在相关表上创建外键约束,从而自动强制引用完整性。在数据库关系图中,已强制关系用实线表示。例如:
在关系图中,未强制关系用虚线表示,这种关系的外键约束被禁用。例如:
根据数据库的功能,对于某些情况(例如在 INSERT 和 UPDATE 事务处理过程中)可设置选项以禁用外键约束。
以上就是关于access表和表怎么建立关系什么作用全部的内容,包括:access表和表怎么建立关系什么作用、数据库表与表之间的关系、ACCESS中表间建立"关系"有什么好处等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)