本文摘自PHP中文网,作者青灯夜游,侵删。
数据库表与表之间通过主外键来建立联系。如果为表指定了主键约束, 数据库引擎将通过为主键列自动创建唯一索引来强制数据的唯一性;而外键是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。
本教程操作环境:windows7系统、mysql5.8版、Dell G3电脑。
数据库表与表之间通过主外键来建立联系。
(推荐教程:mysql视频教程)
主键约束
表通常具有包含唯一标识表中每一行的值的一列或一组列。 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束。
如果为表指定了主键约束, 数据库引擎 将通过为主键列自动创建唯一索引来强制数据的唯一性。 当在查询中使用主键时,此索引还允许对数据进行快速访问。 如果对多列定义了主键约束,则一列中的值可能会重复,但来自主键约束定义中所有列的值的任何组合必须唯一。
如下图所示, Purchasing.ProductVendor 表中的 ProductID 和 VendorID 列构成了针对此表的复合主键约束。 这确保了 ProductVendor 表中的每个行都具有 ProductID 和 VendorID 的一个唯一组合。 这样可以防止插入重复的行。
一个表只能包含一个主键约束。
主键不能超过 16 列且总密钥长度不能超过 900 个字节。
由主键约束生成的索引不会使表中的索引数超过 999 个非聚集索引和 1 个聚集索引。
如果没有为主键约束指定聚集或非聚集索引,并且表中没有聚集索引,则使用聚集索引。
在主键约束中定义的所有列都必须定义为不为 Null。 如果没有指定为 Null 性,则参与主键约束的所有列的为 Null 性都将设置为不为 Null。
如果在 CLR 用户定义类型的列中定义主键,则该类型的实现必须支持二进制排序。
外键约束
相关阅读 >>
mysql数据表字体大小如何利用navicat for mysql改变?
更多相关阅读请进入《数据库》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。