主键、外键和索引的区别?

 我来答
longrenyingdc8ecb1
2020-10-20 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2380万
展开全部
你说主键和索引有什么区别,个人认为没区别,因为主键是索引的一种,而且是最严格的一种索引,所以个人认为主键和索引没什么区别。
唯一让人感觉有区别的就是主键有约束性(也就是非空和唯一),一般的索引没有约束性。但是也有唯一索引,这些索引也有约束性,所以个人感觉如果非要说主键和索引的区别那么可能就是非空了,不过因为数据库的不同,有些数据库产品在唯一索引上也不允许为空,所以这样二者就没什么区别了。
当然,如果非要说主键和一般索引的区别,那么个人认为就在于主键的约束性上。
外键,外键是依存于主键存在的,没有主键也就没有外键。外键是两张表建立的一种约束与联系,是“强制约束”,类似于“A表有B表才能有,A表没有B表不能有”。外键更多的偏向于约束,并不是索引(个人理解)
至于索引的概念那就多了,有约束(比如非空就是一种约束,但是在某些数据库上将这类约束也作为一个索引单独保存),有一般索引(也就是查询索引),也有索引+约束(比如主键),还有位图索引(oracle有,其他数据库不知道),分区(其实oracle的分区也是一种索引),还有合并索引(这个名字忘记了,类似两张表何用一个字段的那种,好像叫这个)以及反索引等等,这些都叫做索引。
综上个人认为,主键和索引的区别一般来说是体现在约束上,当然索引不能被引用为外键,主键可以,这个是在应用上的一个区别。而外键则不是索引,仅仅是依存于主键的一种便捷检查(约束)方式。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
重庆新华电脑学校
2020-10-21 · 学动漫、设计、电竞、电商、短视频、软件等
重庆新华电脑学校
重庆新华电脑学校隶属于新华教育集团,经重庆市人力资源和社会保障局审批成立的重庆地区大规模IT人才教育基地。是国家信息化教育全国示范基地,中国IT教育十大影响力品牌学校。
向TA提问
展开全部
一、定义

主键:唯一标识一条记录,不能有重复的,不允许为空
外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值
索引:该字段没有重复值,但可以有一个空值
二、作用
主键:用来保证数据完整性
外键:用来和其他表建立联系用的
索引:是提高查询排序的速度
三、个数
主键:主键只能有一个
外键:一个表可以有多个外键
索引:一个表可以有多个唯一索引
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
解叡5a
2020-10-19 · TA获得超过6.9万个赞
知道大有可为答主
回答量:2826
采纳率:97%
帮助的人:78.3万
展开全部
设置主键是为每条数据进行一次单一的编排,在表中设置主键说明在这表中的每条数据都是唯一性的,即使有些内容会相同,但是主键这一列是唯一的,具有唯一性。外键是在主表列中的数据和外表列中的数据相关联,主表中的数据存在时,外表中列的数据与主表相对应,数据不能与主表列中其他数据不同的,具有约束性。索引就是一种按某种数据的查询规律,具有书的目录一样的检索功能。索引按存储顺序分为:簇索引和非簇索引,按属性分为:唯一索引,主关键字索引和普通索引,主键是簇索引,也是唯一索引。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式