返回顶部
首页 > 资讯 > 数据库 >MySQL中关于超键和主键及候选键的区别
  • 836
分享到

MySQL中关于超键和主键及候选键的区别

MySQL中超键MySQL中主键MySQL中候选键 2022-11-13 13:11:57 836人浏览 薄情痞子
摘要

目录关于超键和主键及候选键的区别超键候选键主键理解超键、候选键、主键概念及关系基本概念关系举个栗子还不明白?关于超键和主键及候选键的区别 最近在看MySQL的书时遇到了一个问题: 既

关于超键和主键及候选键的区别

最近在看MySQL的书时遇到了一个问题:

既然已经有了主键这个概念,主键已经能够满足需求了,那为什么还要有候选键这种东西?候选键的作用是什么呢?给了它一个候选键的定义但是它真的并没有什么乱用。

抱着刨根问底拦不住的心态我去网上搜了搜,看了看大神们的解释,看得我还是有些懵懂,于是想在这里梳理一下,帮助自己理解的更通透,也希望如果有理解错的地方能有人指点一下 下面就是我的一些理解:

其实主键和超键还好一些,比如有这么一个表:

在这里插入图片描述

表写的有些糙,凑合看吧。

超键

在关系中能唯一标识元组的属性集称为关系模式的超键。 注定义中的“属性集”,超键可以是一个很大的集合,只要他能确定是哪一行就行,因此’id’,‘user’,‘pwd’,‘section’,'name’都可以是超键的集。

候选键

不含有多余属性的超键,比如在上面的超键中,'id’自己就可以独自确定是哪一行,所以他自己可以是一个候选键,除去它以外的另外四个也可以是候选键,但是这五个放在一起因为有了多余的列,他们就不是候选键。(另外四个可以是候选键的原因是每一列都有可能有重复的内容)

主键

在所有的候选键里面找一个作为主键供使用,也就是说可以是id,也可以是另外四个的合体,也有可能是其他的选择,只要能保证选择的集合能唯一确定即可。

总结来说,候选键是超键的子集,主键是候选键的子集。

其实整理了这么多以后我还是不明白候选键的作用到底是什么,其实他可能就是作为一个候车厅一样,车上只剩下一个座位,有几个主键在候车厅里坐着,告诉你:“我们几个人都买票了,都有资格上车,你选谁上,我们谁就跟你去上车”,应该就是这样。

理解超键、候选键、主键概念及关系

基本概念

  • 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键/码。
  • 候选键(candidate key):不含有多余属性的超键称为候选键,即其真子集不再是超键。
  • 主键(primary key):用户选作元组标识的一个候选键称为主键,是候选键之一。

关系

候选键是超键的子集,主键是候选键中的一个。

举个栗子

考虑属性集(身份证号,姓名 ,性别 ,年龄),假设无重名

a.其中超键有:

  • 身份证号、姓名、(姓名,性别)、(姓名,性别,年龄)等
  • --这里可以看出,超键是能唯一确定一个人的属性组

b.超键中的候选键

  • 身份证号、姓名唯一,而且没有多余属性,所以是一个候选键
  • --这里可以看出,候选键是没有多余属性的超键

c.选择主键

  • 用户可根据自己喜好考虑选择姓名或者身份证号作为主键
  • --主键是选中的一个候选键

还不明白?

实例:

SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为( ) (选择一项)

学号 姓名 性别 年龄 系别 专业
20020612 李辉 男 20 计算机 软件开发
20060613 张明 男 18 计算机 软件开发
20060614 王小玉 女 19 物理 力学
20060615 李淑华 女 17 生物 动物学
20060616 赵静 男 21 化学 食品化学
20060617 赵静 女 20 生物 植物学

a){学号}
b){学号、姓名}
c){年龄、系别}
d){姓名、性别}
e){姓名、专业}

如果大家还不知道如何来选择,再看看基本概念吧!

嗯,不会的就选C吧,哈哈哈哈哈哈

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中关于超键和主键及候选键的区别

本文链接: https://lsjlt.com/news/171291.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中关于超键和主键及候选键的区别
    目录关于超键和主键及候选键的区别超键候选键主键理解超键、候选键、主键概念及关系基本概念关系举个栗子还不明白?关于超键和主键及候选键的区别 最近在看MySQL的书时遇到了一个问题: 既...
    99+
    2022-11-13
    MySQL中超键 MySQL中主键 MySQL中候选键
  • MySQL中超键、主键及候选键的区别是什么
    本篇内容主要讲解“MySQL中超键、主键及候选键的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中超键、主键及候选键的区别是什么”吧!关于超...
    99+
    2024-04-02
  • mysql中外键和主键的区别有哪些
    这篇文章主要介绍“mysql中外键和主键的区别有哪些”,在日常操作中,相信很多人在mysql中外键和主键的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中...
    99+
    2024-04-02
  • Mysql主键UUID和自增主键的区别及优劣分析
    引言 之前有段时间用postgresql 数据库,在上云之后,从自增主键变为uuid,感觉uuid全球唯一,很方便。 最近用mysql,发现mysql主键都是选择自增主键,仔细比较一下,为什么mysql选择自增主键,...
    99+
    2022-06-01
    Mysql 主键UUID 自增主键
  • Mysql主键和唯一键的区别点总结
    什么是主键? 主键是表中唯一标识该表中每个元组(行)的列。主键对表实施完整性约束。表中只允许使用一个主键。主键不接受任何重复值和空值。表中的主键值很少更改,因此在选择主键是需要小心,要选择很少发生更改的地方...
    99+
    2024-04-02
  • Mysql复合主键和联合主键的区别解析
    复合主键: create table index_test ( a int not null, b int not null, c int not null, d int null, ...
    99+
    2023-04-26
    mysql复合主键和联合主键 mysql复合主键和联合主键区别 mysql复合主键
  • 主键和外键的区别是什么
    主键和外键的区别是:主键是唯一标识一条记录,不能有重复的,而外键是另一表的主键,可以重复。主键不允许为空,而外键可以。主键是用来保证数据完整性,而外键是用来和其他表建立联系的。主键只有一个,外键可以有多个。...
    99+
    2024-04-02
  • ES6 关键字 let 和 ES5 及关键字 var 的区别解析
    目录var 关键字let 关键字补充var 关键字 在 ES5 及以前,通过var在块级作用域中声明的变量,外边也可以访问。块级作用域就是一对{}的作用域;块级作用域可以是控制语句的...
    99+
    2024-04-02
  • MySQL数据库中主键和唯一键有什么区别
    小编给大家分享一下MySQL数据库中主键和唯一键有什么区别,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!什么是主键?主键是表中唯一标识该表中每个元组(行)的列。主键对表实施完整性约束。表中只允...
    99+
    2024-04-02
  • 详解JS中continue关键字和break关键字的区别
    目录1.框架2.简单介绍3.代码演示4.演示break1.框架 <!DOCTYPE html> <html> <head> ...
    99+
    2022-11-13
    JS continue break区别 JS continue break
  • DBMS中主键和外键之间的区别是什么
    这篇文章主要介绍了DBMS中主键和外键之间的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。DBMS中的主键主键可以唯一地定义关系中的元...
    99+
    2024-04-02
  • mysql中主键的关键字是什么
    在 mysql 中,使用 primary key 关键字指定主键,主键是唯一标识每行记录的字段或字段组合,具有唯一性(每行主键值不同)和非空(主键值不为 null)特性。此外,使用以下语...
    99+
    2024-04-26
    mysql
  • mysql主键和唯一的区别有哪些
    这篇文章主要为大家展示了“mysql主键和唯一的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql主键和唯一的区别有哪些”这篇文章吧。区别一个表至多有一个主键,但可以有多个唯一。...
    99+
    2023-06-20
  • mysql主键和索引有哪些区别
    这篇文章主要为大家展示了“mysql主键和索引有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql主键和索引有哪些区别”这篇文章吧。 ...
    99+
    2024-04-02
  • 关键字const和readonly的区别
    关键字const和readonly都用于声明只读变量或只读属性,但它们的用法和作用有所不同。1. const关键字:- 可以用于变量...
    99+
    2023-09-01
    区别
  • mysql中主键约束和唯一约束的区别
    mysql 中主键约束和唯一约束的区别在于:主键最多包含多个列,不允许空或重复值,标识每条记录,可作为外键;唯一约束可包含任意列数,允许空值但不允许重复值,防止特定列组合重复。 MyS...
    99+
    2024-04-26
    mysql
  • Java中static和volatile关键字的区别
    1. 作用范围不同 static关键字:用于创建类级别的变量或方法,所有类的实例共享同一个static变量的副本。 volatile关键字:用于确保一个变量在多线程环境中的可见性,使所有线程都能看到最新的变量值。 2....
    99+
    2023-10-29
    关键字 区别 Java
  • mysql关于主键索引的分析
    本篇内容介绍了“mysql关于主键索引的分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!到底InnoDB...
    99+
    2024-04-02
  • java final 和instanceof 关键字的区别
    final 可以适用的范围:修饰类:使用这种修饰符的类无法被继承 修饰函数:被修饰的不能被重写 修饰属性:1.final修饰的成员变量是常量,值不能被修改  &n...
    99+
    2022-11-15
    java final instanceof
  • mysql中主键与索引的区别是什么
    这期内容当中小编将会给大家带来有关mysql中主键与索引的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  下面是主键和索引的一些区别与联系。  1. 主键一定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作