我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库表与表之间如何建立联系

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库表与表之间如何建立联系

这篇文章主要介绍了数据库表与表之间如何建立联系,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

数据库表与表之间通过主外键来建立联系。如果为表指定了主键约束, 数据库引擎将通过为主键列自动创建唯一索引来强制数据的唯一性;而外键是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。

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

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

主键约束

表通常具有包含唯一标识表中每一行的值的一列或一组列。 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束。

如果为表指定了主键约束, 数据库引擎 将通过为主键列自动创建唯一索引来强制数据的唯一性。 当在查询中使用主键时,此索引还允许对数据进行快速访问。 如果对多列定义了主键约束,则一列中的值可能会重复,但来自主键约束定义中所有列的值的任何组合必须唯一。

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

数据库表与表之间如何建立联系

  • 一个表只能包含一个主键约束。

  • 主键不能超过 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 个外键引用。

外键约束的索引

与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的:

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

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

感谢你能够认真阅读完这篇文章,希望小编分享的“数据库表与表之间如何建立联系”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库表与表之间如何建立联系

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql表与表之间怎么建立关联

在 SQL 中,表与表之间可以通过外键建立关联。外键是一个表中的字段,它包含了另一个表的主键,从而建立了两个表之间的关联。要建立表与表之间的关联,首先需要在一个表中创建一个外键字段,该字段将引用另一个表的主键。然后,将外键字段与主键字段进
sql表与表之间怎么建立关联
2024-04-09

mysql如何建立数据库表格

要在MySQL中创建数据库表格,可以按照以下步骤进行:连接到MySQL数据库服务器。可以使用命令行工具或图形化工具(如MySQL Workbench)连接到MySQL数据库服务器。创建一个新的数据库。可以使用以下命令创建一个名为"mydat
mysql如何建立数据库表格
2024-04-09

mfc窗口之间如何建立联系

在MFC中,可以使用以下方法建立窗口之间的联系:1. 使用消息机制:在一个窗口中发送消息给另一个窗口,通过消息的参数传递数据或者通知另一个窗口进行相应的操作。可以使用`SendMessage`或者`PostMessage`函数发送自定义消息
2023-09-20

redis如何建立数据表

Redis 是一个键值对存储数据库,它不支持传统关系型数据库中的数据表的概念。在 Redis 中,你可以直接存储键值对数据,键和值都可以是字符串、列表、哈希表等类型。举例来说,你可以使用以下命令向 Redis 中存储一个键值对:```SET
2023-09-06

1-3 SQL与建立关系型数据表

1-3  SQL与建立关系型数据表u 了解关系型数据库的完整性基本理论u 掌握通过SQL语句创建基本表u 掌握通过SQL语句修改基本表的模式结构u 掌握通过SQL删除基本表1-3-1 关系型数据库的完整性理论SQL(Structured Q
2023-01-31

MySQL总结(八)数据库表与表之间的关系-详解

表与表之间的关系1.表关系的概念在现实生活中,实体与实体之间肯定是有关系的。比如:员工和部门,老师和学生等。那么我们在设计表的时候,就应该体现出表与表之间的这种关系。表关系描述一对一相对使用比较少。如:员工表,简历表,护照表。一对多最常用的表关系。如:部门和员
MySQL总结(八)数据库表与表之间的关系-详解
2014-11-01

oracle两个数据库之间如何迁移表

在Oracle数据库中,迁移表可以通过以下几种方式实现:1. 使用Oracle Data Pump工具:Data Pump是Oracle提供的一个强大的导入导出工具,可以用于将表从一个数据库导出到另一个数据库。你可以使用expdp命令将表导
2023-09-17

mysql数据库如何创建表

要在MySQL数据库中创建表,可以使用CREATE TABLE语句。以下是一个示例:CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT
mysql数据库如何创建表
2024-04-09

sql数据库如何创建表

要创建表,你需要使用CREATE TABLE语句。以下是创建表的基本语法:CREATE TABLE table_name (column1 datatype constraint,column2 datatype constraint,co
2023-10-08

oracle数据库如何创建表

oracle数据库创建表的步骤如下:打开数据库会话。使用create table语句定义表的名称、列名称和数据类型。执行语句并使用commit命令提交。使用desc命令验证表的创建。Oracle数据库中创建表的步骤在Oracle数据库中创
oracle数据库如何创建表
2024-04-19

编程热搜

目录