zoukankan      html  css  js  c++  java
  • 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.每一个表仅仅能有一个。

  • 相关阅读:
    查找——图文翔解HashTree(哈希树)
    比較JS合并数组的各种方法及其优劣
    PTA 是否同一棵二叉搜索树(25 分)
    PTA 最大子列和问题(10 分)
    PTA PAT排名汇总(25 分)
    PTA PAT排名汇总(25 分)
    PTA 说反话-加强版(20 分)(字符串处理)
    PTA 说反话-加强版(20 分)(字符串处理)
    Tarjan模版(链式向前星表示方法)
    Tarjan模版(链式向前星表示方法)
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7065789.html
Copyright © 2011-2022 走看看