• Primary Key & Index


    主键,Primarykey。索引,Index。主键一般跟唯一键,对应。Primary Key跟Unique 对应,本质上没有什么意义,只是一种约束。
    但是在建立Primary key 跟Unique key时候都会建立对应的Index索引,才是有存在实质意义的。
     在某种程度上,主键=Unique+not null。主键对应主键索引,类似唯一键对应唯一索引。而主键跟唯一索引存在本质的不同。主键是一种约束,而唯一索引是一种索引。另外较重要的区别,主键能够被其他表的当做外键关联起来。而索引则不行。
      主键索引跟唯一索引。主键索引其值唯一标识表中的每一行 。唯一索引,其索引的值不能存在相同值。主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。 
      相比之下,联合主键就跟联合唯一索引对应。类比于主键跟索引的区别。联合主键,由多column组成一个义主键将自动创建主键索引,
     主键,可以更加的避免数据的重复性,从而更加保障能够对应数据的唯一性,成为数据的唯一识别的标示。联合唯一索引,对应于唯一索引。
      建立索引的目的就是为了加快查找数据的速度。但是会占用物理空间。同时减慢数据库的增删改的效率。
    适合建立索引的情况:
    1 经常需要搜索的列上,可以加快搜索的速度。2在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度 
    Duplicate entry是一种Key的冲突,这个Key可以使主键,也可以是唯一键。因为主键跟唯一键都不能重复,一旦重复就会报这个冲突错误。 只有这两种情况下,有主键或者唯一键-即联合主键或联合唯一索引,一旦数据重复,就会提示Duplicate entry这个错误。




        唯一索引
    唯一索引不允许两行具有相同的索引值。
    如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏(lname) 列上创建了唯一索引,则所有职员不能同姓。


    主键索引
    主键索引是唯一索引的特殊类型。
    数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。
    在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。


    它们的一些比较:
    (1)对于主健/unique constraint , oracle/sql server/mysql等都会自动建立唯一索引;
    (2)主键不一定只包含一个字段,所以如果你在主键的其中一个字段建唯一索引还是必要的;
    (3)主健可作外健,唯一索引不可;
    (4)主健不可为空,唯一索引可;
    (5)主健也可是多个字段的组合;
    (6)主键与唯一索引不同的是:
    a.有not null属性;
    b.每个表只能有一个。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    hdu 4117 GRE Words (ac自动机 线段树 dp)
    IT段子,娱乐一下
    makefile 必知必会
    实现跳转到“微信公众账号”并打开添加某个固定微信用户为好友的页面(接口被封了,已经不可用)
    zxing 二维码扫描 配置和使用
    iOS $299刀企业证书申请的过程以及细节补充
    iOS设备的越狱方法
    iOS开发中 workspace 与 static lib 工程的联合使用
    ios如何在当前工程中添加编辑新建的FramesWork
    软件项目版本号的命名规则及格式
  • 原文地址:https://www.cnblogs.com/tangpanpan23/p/4737453.html
Copyright © 2020-2023  润新知