主键约束 primary key
主键约束时唯一的表示表中的每一条记录
主键列上不存在重复的值
主键可做外键
唯一性约束 unique
一个表上可以放置多个唯一性约束
表中任意的两行 指定列 都不允许有相同的值 允许空(null)
相同点
他们都属于实体完整性约束
不同点
唯一性约束所在的列 允许空值 但是主键约束所在的列不允许空值
可以把唯一性约束放在一个或者多个列上 这些列或者列的组合必须是唯一性的 唯一性约束所在的列并不是表的主键列
唯一性约束强制在指定的列上创建一个唯一性索引 在默认情况下 创建唯一性的非聚簇索引 但是 也可以指定所创建的索引是聚簇索引
其中的聚簇索引 不是一种索引类型 而是一种数据存储方式
其中InnoDB主键适用聚簇索引
被索引的列必须是主键列 只有主键才能适用 一张表只有一个聚簇索引
非主键适用 辅助索引 二次索引
MyISAM存储引擎 主键 非主键 非聚簇索引
其中不是直接保存数据 而是数据的地址(指针) 唯一的区别就是主索引要求key是唯一的 而辅助索引的key可以重复
数据库的完整性
- 正确性
- 相容性
- 维护完整性
实体完整性
参照完整性
用户自定义完整性