百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 数据库表与表之间怎么创立联络
分享文章到:

数据库表与表之间怎么创立联络

发布时间:01/01 来源:未知 浏览: 关键词:

数据库表与表之间通过主外键来创立联络。假如为表指定了主键束缚, 数据库引擎将通过为主键列主动创立独一索引来强迫数据的独一性;而外键是用于在两个表中的数据之间创立和增强链接的一列或多列的组合,可操纵可在外键表中储备的数据。

本教程操纵环境:windows7系统、mysql5.8版、Dell G3电脑。

数据库表与表之间通过主外键来创立联络。

(引荐教程:mysql视频教程)

主键束缚

表平常具有包括独一标识表中每一行的值的一列或一组列。 这样的一列或多列称为表的主键 (PK),用于强迫表的实体完全性。 由于主键束缚可包管数据的独一性,因此经常对标识列定义这种束缚。

假如为表指定了主键束缚, 数据库引擎 将通过为主键列主动创立独一索引来强迫数据的独一性。 当在查询中使用主键时,此索引还同意对数据停止快速拜访。 假如对多列定义了主键束缚,则一列中的值大概会反复,但来自主键束缚定义中所有列的值的任何组合必需独一。

如下图所示, Purchasing.ProductVendor 表中的 ProductID 和 VendorID 列构成了针对此表的复合主键束缚。 这确保了 ProductVendor 表中的每个行都具有 ProductID 和 VendorID 的一个独一组合。 这样可以防止插入反复的行。

1.gif

  • 一个表只能包括一个主键束缚。

  • 主键不克不及超越 16 列且总密钥长度不克不及超越 900 个字节。

  • 由主键束缚生成的索引不会使表中的索引数超越 999 个非汇集索引和 1 个汇集索引。

  • 假如没有为主键束缚指定汇集或非汇集索引,并且表中没有汇集索引,则使用汇集索引。

  • 在主键束缚中定义的所有列都必需定义为不为 Null。 假如没有指定为 Null 性,则参与主键束缚的所有列的为 Null 性都将设定为不为 Null。

  • 假如在 CLR 会员定义类型的列中定义主键,则该类型的实现必需支撑二进制排序。

外键束缚

外键 (FK) 是用于在两个表中的数据之间创立和增强链接的一列或多列的组合,可操纵可在外键表中储备的数据。 在外键援用中,当包括一个表的主键值的一个或多个列被另一个表中的一个或多个列援用时,就在这两个表之间创立了链接。 这个列就成为第二个表的外键。

例如,由于零售订单和零售人员之间存在一种逻辑关系,所以 Sales.SalesOrderHeader 表含有一个指向 Sales.SalesPerson 表的外键链接。 SalesOrderHeader 表中的 SalesPersonID 列与 SalesPerson 表中的主键列相对应。 SalesOrderHeader 表中的 SalesPersonID 列是指向 SalesPerson 表的外键。 通过创立此外键关系,假如 SalesPerson 表的主键中不存在 SalesPersonID 的值,则 SalesPersonID 的值将没法插入到 SalesOrderHeader 表。

表最多可以将 253 个其他表和列作为外键援用(传出援用)。 SQL Server 2016 (13.x) 将可在独自的表中援用的其他表和列(传入援用)的数目限制从 253 提高至 10,000。 (兼容性级别至少必需为 130。)数目限制的提高带来了以下束缚:

  • 只要 DELETE DML 操纵才支撑超越 253 个外键援用。 不支撑 UPDATE 和 MERGE 操纵。

  • 对本身停止外键援用的表仍只能停止 253 个外键援用。

  • 列储备索引、内存优化表、Stretch Database 或已分区外键表暂不支撑停止超越 253 个外键援用。

外键束缚的索引

与主键束缚不一样,创立外键束缚不会主动创立对应的索引。 但是由于以下缘由,对外键手动创立索引平常是有用的:

  • 当在查询中组合相关表中的数据时,经常在联接前提中使用外键列,办法是将一个表的外键束缚中的一列或多列与另一个表中的主键列或独一键列匹配。 索引使 数据库引擎 可以在外键表中快速查寻相关数据。 但是,创立此索引并不是必需的。 即便没有对两个相关表定义主键或外键束缚,也可以对来自这两个表中的数据停止组合,但两个表间的外键关系说明已用其键作为前提对其停止了优化,以便组合到查询中。

  • 对主键束缚的更换可由相关表中的外键束缚检查。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板