Mysql主键和唯一键的区别点总结
什么是主键?
主键是表中唯一标识该表中每个元组(行)的列。主键对表实施完整性约束。表中只允许使用一个主键。主键不接受任何重复值和空值。表中的主键值很少更改,因此在选择主键是需要小心,要选择很少发生更改的地方。一个表的主键可以被另一个表的外键引用。
为了更好地理解主键,我们创建一个名为student的表,它具有roll_number、name、batch、phone_number、citizen_id等属性。
在上面的示例中,roll_number属性永远不能具有相同的null值,因为在每个大学中注册的学生都拥有唯一的roll_number,因此两个学生不能拥有相同的roll_number,并且表中的每一行都可以用学生的roll_number属性作为唯一标识。因此,在这种情况下,我们可以将roll_number属性作为主键。
什么是唯一键?
唯一键约束可以唯一地标识关系或表中的单个元组。与主键不同,一个表可以有多个唯一键。唯一键约束只能接受列的一个空值;唯一约束也由另一个表的外键引用。当有人想对非主键的列和列组实施唯一约束时,可以使用它。
为了更好地理解唯一键,我们使用带有roll_number,name,batch,phone_number和citizen_id属性的student表;其中roll_number属性已经给主键。
在这个示例中,可以为citizen_id分配唯一约束,其中citizen_id列中的每个条目都应该是唯一的,而不是重复的,因为一个国家/地区的每个公民都必须拥有其唯一标识号。但是,如果学生从其他国家迁移,在这种情况下,他或她将不具有citizen_id,并且该条目可能具有null值,因为在唯一约束中允许一个null。
主键和唯一键之间的主要区别:
1、当一个属性声明为主键时,它将不接受null值。另一方面,当声明为unique的属性时,它可以接受一个null值。
2、表中只能有一个主键,但可以有多个唯一键。
3、定义主键时自动创建聚簇索引。相反,unique键生成非聚集索引。
以上就是关于mysql主键和唯一键的区别的全部内容,感谢大家对的支持。
上一篇: Mysql数据表中的蠕虫复制使用方法
下一篇: Nginx服务器中的GZip配置参数详解