• 技术文章 >数据库 >mysql教程

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

    长期闲置长期闲置2022-08-01 15:08:32转载85
    本篇文章给大家带来了关于mysql的相关知识,主要介绍了MySQL中关于超键和主键及候选键的区别说明,具有很好的参考价值,希望对大家有所帮助。

    推荐学习:mysql视频教程

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

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

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

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

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

    在这里插入图片描述

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

    超键

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

    候选键

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

    主键

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

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

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

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

    基本概念

    关系

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

    举个栗子

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

    a.其中超键有:

    b.超键中的候选键

    c.选择主键

    还不明白?

    实例:

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

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

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

    推荐学习:mysql视频教程

    以上就是MySQL中关于超键和主键及候选键的区别分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:mysql
    上一篇:Mysql体系化解析之JOIN运算 下一篇:mysql函数的作用是什么
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• MySQL读写分离基本原理详解• MySQL的几种碎片整理方案• MySQL事务的ACID特性及并发问题知识点总结• 怎样解决mysql深分页问题• MySQL流程控制之while、repeat、loop循环
    1/1

    PHP中文网