当前位置: 代码迷 >> Sql Server >> 【初学者】primary key 与 unique key的区别
  详细解决方案

【初学者】primary key 与 unique key的区别

热度:251   发布时间:2016-04-25 00:41:46.0
【菜鸟】primary key 与 unique key的区别
麻烦高手说一下primary key 与 unique key的区别。
另外,不同数据库之间(ms-sql server/mysql/oracle),它们的区别是否相同呢?
------最佳解决方案--------------------
引用:
引用:
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据。
唯一键:保证列里面没有重复数据。
这个说得比较通俗易懂。但是,既然unique k……
唯一,只保证这一列唯一,下面是联机丛书的解释:

可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。

可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束。

而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMARY KEY 约束不同。不过,当与参与 UNIQUE 约束的任何值一起使用时,每列只允许一个空值。

FOREIGN KEY 约束可以引用 UNIQUE 约束。


------其他解决方案--------------------
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据。
唯一键:保证列里面没有重复数据。
------其他解决方案--------------------
主键一定是 unique key,但是 unique key不一定是主键。主键不允许空。
------其他解决方案--------------------
引用:
主键一定是 unique key,但是 unique key不一定是主键。主键不允许空。

也即是primary key 一定是 unique key?
------其他解决方案--------------------
引用:
引用:
主键一定是 unique key,但是 unique key不一定是主键。主键不允许空。
也即是primary key 一定是 unique key?
对。
------其他解决方案--------------------
引用:
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据。
唯一键:保证列里面没有重复数据。

这个说得比较通俗易懂。但是,既然unique key 是不重复的,为什么不能保证唯一标识?因为它有可能为空?
------其他解决方案--------------------
引用:
引用:
引用:
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据。
唯一键:保证列里面没有重复数据。
这个说得……

------其他解决方案--------------------
引用:
引用:
引用:
引用:
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据……

答得够细心,难怪最近有在论坛标兵里看到你,呵呵
------其他解决方案--------------------
引用:
引用:
引用:
其他数据库我不清楚。主键一定是 unique key,但是 unique key不一定是主键,因为不保证能唯一标识一行数据。另外在SQLServer里面主键默认是聚集索引。但是 unique key就没这个规定。

通俗来说:
主键:为了唯一标识一行数据。
唯一键:保证列里面没有重复数据。
这个说得……

高手,我发了另一个帖,麻烦帮看一下能不能通俗的回答http://bbs.csdn.net/topics/390280644
  相关解决方案