Mysql主键和唯一键的区别点总结

 更新时间:2019年02月04日 09:57:23   投稿:laozhang  
在本篇文章中小编给大家分享了关于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主键和唯一键的区别的全部内容,感谢大家对脚本之家的支持。

相关文章

  • Win7下mysql5.5安装图文教程

    Win7下mysql5.5安装图文教程

    这篇文章主要为大家详细介绍了Win7下mysql5.5安装的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • gorm操作MySql数据库的方法

    gorm操作MySql数据库的方法

    这篇文章主要介绍了gorm操作MySql数据库的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • mysql索引覆盖实例分析

    mysql索引覆盖实例分析

    这篇文章主要介绍了mysql索引覆盖,简单说明了索引覆盖的概念,并结合实例形式分析了mysql索引覆盖的相关应用与操作注意事项,需要的朋友可以参考下
    2019-07-07
  • mysql Out of memory (Needed 16777224 bytes)的错误解决

    mysql Out of memory (Needed 16777224 bytes)的错误解决

    至于我改的这几个值是不是正确的解决方法,目前还不知道。先贴出来
    2012-07-07
  • Mysql中JDBC的三种查询(普通、流式、游标)详解

    Mysql中JDBC的三种查询(普通、流式、游标)详解

    这篇文章主要介绍了Mysql中JDBC的三种查询(普通、流式、游标)详解,JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的,需要的朋友可以参考下
    2023-08-08
  • Mysql数据库实现多字段过滤的方法

    Mysql数据库实现多字段过滤的方法

    这篇文章主要介绍了Mysql数据库实现多字段过滤的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 利用rpm安装mysql 5.6版本详解

    利用rpm安装mysql 5.6版本详解

    众所周知MySQL在很多领域都被广泛的使用,尤其是很多互联网企业,诸如腾讯,阿里等等。那么本文将主要介绍如何通过rpm方式来安装Mysql,这是比较简单的一种安装方式,文中介绍的很详细,相信对于大家安装mysql具有一定的参考借鉴价值,下面来一起看看吧。
    2016-11-11
  • MySQL的UPPER函数最佳实践

    MySQL的UPPER函数最佳实践

    本文详细介绍了MySQL的UPPER函数,包括其语法、应用场景、性能优化和注意事项,UPPER函数用于将字符串中的小写字母转换为大写,适用于数据一致性、查询优化和数据标准化等场景,在使用时,应注意索引策略和性能优化,以确保高效处理,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • MySQL中的触发器trigger用法解析

    MySQL中的触发器trigger用法解析

    这篇文章主要介绍了MySQL中的触发器trigger用法解析,触发器是由 事件来触发 某个操作,这些事件包括 INSERT、UPDATE、DELETE事件,事件就是指用户的动作或者触发某项行为,需要的朋友可以参考下
    2023-08-08
  • 详解MySQL多版本并发控制机制(MVCC)源码

    详解MySQL多版本并发控制机制(MVCC)源码

    MVCC,即多版本并发控制(Multi-Version Concurrency Control)指的是,通过版本链维护一个数据的多个版本,使得读写操作没有冲突,可保证不同事务读写、写读操作并发执行,提高系统性能
    2021-06-06

最新评论