数据库主键,索引,标识的区别

来源:互联网 发布:省份数据库 编辑:程序博客网 时间:2024/04/28 21:53
 

标识列:identity(int,1,1)这样的
标识列可做为主键

主键可以为字符型,只要不重复就行.
主键不可做为标识列

=====================================

指定列的索引就相当于对指定的列进行排序,为什么要排序呢?因为排序有利于对该列的查询,可以大大增加查询效率。(那么可能有人认为应该对所有的列排序,这样就可以增加整个数据库的查询效率?这样的想法是错误的,原因是建立索引也是要消耗系统资源的,给每个表里的每个列都建立索引那么将对系统造成极大的负担,那就更别提效率了!)---------简单的说建立一个列的索引,就相当与建立一个列的排序。

主键其实就是一个索引,但是这个索引跟一般的索引有所不同,不同在于主键所在的列里的每一个的记录都是唯一的,也可以说不能在主键里出现相同的记录,在同一个表里只能有一个主键。(主键等于索引,索引不一定等于主键)----------简单的说主键就是所在列不能出现相同记录的特殊索引,而且这个索引只能在表里出现一次。

=======================================

标识是一种列数据的填充方式,其值只能是整数或小数,而主键却可用其它类型数据
主键是关联中的主体,对本身来说是区别行数据的标识(非上面的标识)它也非空,但建立了索引(一个表只能有一个)

标识对一列而言,主键除一列外还可由多列组合而成,
因为他们在设计时都只能有一个,也可以都没有,往往我们把主键设在标识字段上,所以容易混淆.
原创粉丝点击