sql server如何建立表间关系

sql server如何建立表间关系,第1张

1在数据库库关系图里新建数据库关系图,如果d出要创建的提示框点击是可以了

2完成创建之后就在关系图域里右键,点击添加表,把需要建立关系的表添加进去

3添加完表之后连接关系,把教师表里的教师ID拖动到学生表里的教师ID,

4检查主外键表正确了没有,如果你想根据学生表查询教师信息那学生表就是主键表,反过来教师就是

5完成以上步骤之后就完成连接了,保存为关系图命名就完成了

使用外键,最好不要用姓名,因为可能重复

将表a的编号设置为主键,将表B的姓名字段干掉,改为编号

两个表的编号的数据类型必须一致

然后在ACCESS里点右键,选"关系",添加这两个表,之后再将B表的编号字段拖到a表的编号字段那里,选上级联更新,

级联删除等

还有些选项,可以自己摸索一下。

搞不清楚可以给我发消息

对了,不用在B表冗余,需要写使用设备的时候再向B表插数据

唯一需要注意的是,外键字段的数据类型必须和主键的数据类型相同。但是有些系统可以允许这条规则有一个例外,它允许在数字和自动编号(autonumbering)字段(例如在SQL服务器系统中访问Identity和AutoNumber)之间建立关系。此外,外键的值可以是空(Null),尽管强烈建议在没有特别原因的情况下,不要让外键为空。你有可能永远都不会有机会来使用需要这项功能的数据库。 现在回到我们的示例关系表,并开始输入合适的外键。(请继续在纸上打草稿——在你的数据库系统中创建真正的数据表还为时过早。要知道在纸上纠正错误要容易得多。)要记住,你正在把主键的值添加到关系表里。只要调用实体之间的关系就行了,而其他的就简单了: 书籍和分类是有关系的。 书籍和出版社是有关系的。 书籍和作者是有关系的。 作者和邮政编码(ZIP)是有关系的。 邮政编码和城市是有关系的。 城市和州是有关系的。 这一步并不是一成不变的,你可能会发现在规范化的过程中加入外键会更容易一些。在把字段移动到一个新的数据表时,你可能要把这个新数据表的主键添加到原来的数据表里,将其作为外键。但是,在你继续规范化剩余数据的时候,外键常常会发生改变。你会发现在所有这些数据表被全部规范化之后,一次添加所有的外键,这样效率会更高。 *** 作数据表 现在让我们一次 *** 作一个数据表,就从Books数据表开始,它在这个时候只有三个字段。很明显,Authors、Categories和Publishers数据表的主键会被添加到Books里。当你完成的时候,Books数据表就有了七个字段: Books Title (PK) ISBN (PK) Price FirstNameFK (FK) AuthorsFirstName many-to-many LastNameFK (FK) AuthorsLastName many-to-many CategoryFK (FK) CategoriesCategory many-to-many PublisherFK (FK) PublishersPublisher one-to-many 要记住,Authors数据表里的主键是一个基于姓和名两个字段的复合关键字。所以你必须要把这个两个字段都添加到Books数据表里。要注意,外键字段名的结尾包含有FK这个后缀。加入这个后缀有助于提高可读性和自我归档。通过名称这种方式来区别外键会使得追踪它们更简单。如果主键和外键的名称不同,这没有关系。 这里出现了三种关系:Books和Authors、Books和Categories,以及Books和Publishers。这三种关系中所存在的两种问题可能没有那么明显: Books和Authors之间的关系:一本书可以有多个作者。 Books和Categories之间的关系:一本书可以被归入多个类。 这两者的关系是多对多的关系。先前我告诉过你,数据表不能直接实现这样的关系,而需要第三个联系表来实现。(Books和Publishers的关系是一对多的关系,就像现在所说的,这样是没有问题的。) 这两个新发现的多对多关系将需要一个联系表来包含来自每个数据表的主键,并将其作为外键。新的联系表是:BooksAuthorsmmlink TitleFK (FK) BooksTitle one-to-many ISBNFK (FK) BooksISBN one-to-many FirstNameFK (FK) AuthorsFirstName one-to-many LastNameFK (FK) AuthorsLastName one-to-many BooksCategoriesmmlink TitleFK (FK) BooksTitle one-to-many ISBNFK (FK) BooksISBN one-to-many CategoryFK (FK) CategoriesCategory one-to-many 没有必要更改Categories、Authors或者Publishers数据表。但是,你必须把FirstNameFK、LastNameFK和CategoryFK这三个外键从Books里移走: Books Title (PK) ISBN (PK) Price PublisherFK (FK) PublishersPublisher one-to-many 现在,让我们转到Authors数据表上来,它现在有两个字段。每个作者都和ZIPCodes数据表中的邮政编码的值相关。但是,每个邮政编码会和多个作者相关。要实现这种一对多的关系,就要把ZIPCodes数据表中的主键添加进Authors数据表作为外键: Authors FirstName (PK) LastName (PK) ZIPCodeFK (FK) ZIPCodesZIPCode one-to-many 至此,你已经准备好了处理剩下的地址部分了。看到它们被分在不同的数据表里是很让人奇怪的,但是这是遵照BCNF正确规范化数据的结果。每个邮政编码的值只会有一个对应的城市值和州值。每个城市和州的值只会被输入进其对应的数据表里一次。ZIPCodes和Cities数据表需要外键字段来实现这些关系: ZIPCodes ZIPCode (PK) CityFK (FK) CitiesCity one-to-many Cities City (PK) StateFK (FK) StatesState one-to-many States State (PK) 从一个到九个 最后,你有了九个数据表:Books、Authors、Categories、Publishers、ZIPCodes、Cities、States、BooksAuthorsmmlink和BooksCategoriesmmlink。图A是这个示例数据表的数据库最终的图形形式。很难想像一个简单的数据表会被分成九个数据表。 图A 最初的一个数据表现在需要九个数据表了 由于这个示例数据库很简单,你可能会问这些关系有什么作用。看起来仍在保存冗余的数据,只不过形式不同罢了——通过外键来实现。这是因为我们的数据表现在只有很少几个字段。试想一下有十几个字段的数据表,会是什么样的一个情形。需要承认的是,你仍然需要把数据表的主键作为外键保存进关系表里,但是至多可能最多增加一到两个字段。比较一下为这个数据表里的每一条记录都添加十几个条目的情形吧。

关于反映这三张表中数据之间的联系,提供三方面信息以供参考:

1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。

2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。

3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。

正确 *** 作是:

c关闭所有打开的表

因为建立表间关系属于数据结构定义 *** 作,这时如果所关联的表已经被打开的话,那么已经打开的表会被系统锁定,因而是无法被修改的,相关 *** 作将以失败告终,系统并会d出报错信息。

其实是不需要关闭所有已经打开的表的,只要将需要建立表间关系的那些表关闭就行了,只是关闭所有的表才建立表间关系更加省事而已(无须费神查找究竟那些相关的表已经打开)

以上就是关于sql server如何建立表间关系全部的内容,包括:sql server如何建立表间关系、access数据库中各表间的连接关系是如何建立的、如何定义数据库表之间的关系等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10183349.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存