SQL数据库中怎么建立两个表之间的关系?

说实话,当我第一次开始使用关系数据库时,我对一对多和多对多的概念感到困惑。
后来老师给我举了一个非常生动的例子,我渐渐开始明白了。

让我们谈谈您与父母的关系,就像一对多一样。
亲生母亲应该只有一位吧?但作为唯一的亲生母亲,你可能要抚养多个孩子。
在您的数据表中,“Children”表中的主键是您的唯一记录,而“Parents”表中可能有多个与您的记录对应的条目。
毕竟,你的母亲不仅仅是你的孩子。
我实习的时候和医院系统打交道,我就是这样关联“医生”表和“手术”表的。
一名医生可以进行多次手术,但每次手术只涉及一名外科医生。

多对多的方法更有趣。
例如,如果您与兄弟姐妹有关系,那么您显然有不止一个兄弟姐妹,而且他们对您来说也不止一个。
如果无法直接从表中完成此操作,则需要添加一个中间表。
我记得在俱乐部管理系统上工作过。
由于学生和俱乐部之间存在多对多关系,因此我们构建了一个“学生俱乐部参与”联系表,用于存储学生 ID 和俱乐部 ID。
两个外键组合在一起以确保唯一性。
这个方法特别有效,但是在写SQL连接的时候确实困扰了我一段时间。

对于外键,我在使用 Access 做项目时遇到了一个陷阱。
一个表的主键定义为数字类型,链接其他表时使用文本类型,但结果连接不上。
后来我改变了这一点,发现数据类型需要保持一致。
不过,我使用过SQL Server,发现它可以自动转换数字和自动编号类型。
当时我就一头雾水,后来查了资料,发现是个特例。
老实说,我几乎从未使用过外键可以为空的想法,但我记得有一个客户请求一个可选的与提供者相关的表。
那时你确实必须添加 Null 值。
后来想想,真是太浪费了。
必须有一个默认的或更好的逻辑决定。

最后,理解关系数据库的关键是多读书、多实践。
我看到有人在论坛上询问为什么他们不能重复外键。
他说,门牌号码似乎不能重复。
然而,我发现有些系统允许地址被写入两次。
当时我很困惑。
幸运的是,这只是理论上的讨论,并没有发生真正的改变。

在Access数据库中怎样为两个表建立联系

让我告诉你我在 Access 中使用表关联的那次经历。
那一年,公司刚刚承接一个项目,数据一片混乱。
在使用之前必须连接两个表。
我的电脑是2 01 0年的ThinkPad,Access是2 007 年的版本。
我记得很清楚。

第一步是打开数据库。
您只需双击桌面图标即可。
当时,该图标是 Windows 尾部徽标,旁边写着“Customer Management System.accdb”。
点击它,哟,会立即出现一个黄色条,上面写着“启用内容”和一个红十字。
我点击了“启用内容”按钮,心想,为什么这还能通过安全检查?
第二步是转到“数据库工具”选项卡。
在 Access 顶部的一排小图标中,我找到了一个蓝底白字写着“数据库工具”的图标,然后单击了它。
这一步没什么,找个地方就行了。

第三步,点击“关系”。
在“数据库工具”的正下方,有一个类似柱子的小图标,上面有两个交叉表,上面写着“关系”两个字。
我点击了这个。
糟糕,出现了一个新窗口,周围什么也没有。
中间有两张表,一张叫“客户信息”,一张叫“订单登记”。

第四步,输入时钟。
窗口左下角有一个小的“显示表”按钮。
我点击它,在出现的列表中找到“客户信息”和“订单记录”,一次点击一项,然后点击“添加”。
添加完毕后,关系窗口中就会出现两张表,就像两张扑克牌摊在桌子上一样。

第五步,看表的结构。
两个表都会出现,字段名称位于左侧,相应的数据位于右侧。
例如,“客户信息”表有“客户ID”、“姓名”等,“订单记录”表有“订单号”、“客户ID”等。
我只是看着两个钟,想知道哪个是老大,哪个是小辈。

第六步是画线连接桌子。
我在“客户信息”表中找到“客户 ID”,这是主键。
我单击并按住鼠标,将其拖动到“订单记录”表中相应的“客户 ID”字段,然后松开。
一条灰色的线立即连接起来,就像一根电线一样。

第七步,设置参数。
弹出一个框询问我关系是什么,“一对一”还是“一对多”?我看了一下,客户信息里一个客户可以下多个订单,所以我选择了一对多。
下面是“强制引用完整性”,我检查了它。
我想以后如果删除了Customer Info中的数据,就不能删除Order Records中的相关数据了,不然就乱了。
忽略另一项并单击“创建”。

第8 步,保存。
现在关系窗口中多了一个带箭头的行,从客户信息指向订单记录,箭头代表一对多。
我单击窗口顶部的“保存”按钮,然后弹出一个小框,要求我为该关系命名。
我输入“客户订单关系”,然后单击“确定”。

就这样,链接已准备就绪。
请记住,主键和外键是相同的。
当时,“客户端ID”是文本格式的。
如果是数字和文字混合的话肯定不行连接。
另外,不要忘记保存步骤。
我的手在颤抖,我在逃走之前关上了窗户。
天哪,我刚刚建立的所有关系都消失了。
我太担心了,差点把键盘弄坏了。

后来系统用起来非常顺手,查资料也快了很多。
然而,Access 已经过时了。
如今,Excel用于添加插件或直接连接SQL Server。
这件古董古董只使用过一次。

在数据库ACCESS中怎样建立表之间的关系

这是一个洞。
直接使用相同的字段名创建关系会导致数据混乱。
您必须确保主键和外键定义正确。