定义了 UNIQUE 约束的字段中不能包含重复值,可以为一个或多个字段定义 UNIQUE 约束。因此,UNIQUE 即可以在字段级也可以在表级定义, 在 UNIQUED 约束的字段上可以包含空值。ORACLE自动会为具有 PRIMARY KEY 约束的字段(主码字段)建立一个唯一索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引;

UNIQUED 可空,可以在一个表里的一个或多个字段定义;PRIMARY KEY 不可空不可重复,在一个表里可以定义联合主键;

简单的说,primary key = unique +  not null

unique 就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用。比如说,如果你有一个person 表,并且表中有个身份证的column,那么你就可以指定该字段为unique。 从技术的角度来看,Primary Key和Unique Key有很多相似之处。但还是有以下区别:

一、作为Primary Key的域/域组不能为null,而Unique Key可以。

二、在一个表中只能有一个Primary Key,而多个Unique Key可以同时存在。

更大的区别在逻辑设计上。Primary Key一般在逻辑设计中用作记录标识,这也是设置Primary Key的本来用意,而Unique Key只是为了保证域/域组的唯一性。

oracle的constraint中有两种约束,都是对列的唯一性限制――unique与primary key,但其中是有区别的:

1、unique key要求列唯一,但不包括null字段,也就是约束的列可以为空且仅要求列中的值除null之外不重复即可;

2、primary key也要求列唯一,同时又限制字段的值不能为null,相当于Primary Key=unique + not null。

创建一个primary key和unique key都会相应的创建一个unique index。

0primary key的语法:alter table table name add constraint key name primary key( columns);

unique key的语法:alter table table name add constraint key name unique( columns);

一个表只能有一个主键,但是可以有好多个UNIQUE,而且UNIQUE可以为NULL值,如员工的电话号码一般就用UNIQUE,因为电话号码肯定是唯一的,但是有的员工可能没有电话。

主键肯定是唯一的,但唯一的不一定是主键;

不要总把UNIQUE索引和UNIQUE约束混为一谈

1、primary key = unique + not null

2、唯一约束和主键一样都是约束的范畴,而且都可以作为外键的参考,不同的是,一张表只能有一个主键

3、主键和唯一约束的创建需要依靠索引,如果在创建主键或唯一约束的时候没有已经建好的索引可以使用的话,Oracle会自动建立一个唯一的索引。

primary key与unique的区别相关推荐

  1. 数据库primary key和unique的区别与联系

    简单的说,primary key = unique +  not null unique 就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用.比如说,如果你有一个student 表,并 ...

  2. key mysql_mysql中key 、primary key 、unique key 与index区别

    mysql中索引是非常重要的知识点,相比其他的知识点,索引更难掌握,并且mysql中的索引种类也有很多,比如primary key .unique key 与index等等,本文章向大家介绍mysql ...

  3. mysql unique和key_MYSQL的primary key和unique key的区别

    [网络转载]http://blog.csdn.net/yaoxy/archive/2009/07/16/4353115.aspx Primary key 与Unique Key都是唯一性约束.但二者有 ...

  4. key 、primary key 、unique key 与index区别

    一.key与primary key区别  CREATE TABLE wh_logrecord (  logrecord_id int(11) NOT NULL auto_increment,  use ...

  5. MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别

    文章目录 一.背景知识 二.MySQL 中 KEY 与 INDEX 区别 三.key的总结和分类 四.INDEX索引介绍 五.PRIMARY KEY 和 UNIQUE KEY 的区别 六.操作索引 一 ...

  6. Mysql中key 、primary key 、unique key 与index区别

    https://www.cnblogs.com/zjfjava/p/6922494.html 索引被用来快速找出在一个列上用一特定值的行.没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表 ...

  7. primary key 和 unique区别

    primary key 和 unique区别 主要区别: pri:复合主键的时候,和唯一即可 nn+un:每一个元素都要唯一 unique 可空,可以在一个表里的一个或多个字段定义:primary k ...

  8. PRIMARY KEY 与 UNIQUE

    定义了 UNIQUE 约束的字段中不能包含重复值,可以为一个或多个字段定义 UNIQUE 约束.因此,UNIQUE 即可以在字段级也可以在表级定义, 在UNIQUED 约束的字段上可以包含空值.ORA ...

  9. mysql数据库中key 、primary key 、unique key 与index区别

    所有的MySQL索引(PRIMARY.UNIQUE和INDEX)在B树中存储.字符串是自动地压缩前缀和结尾空间. 下面是建表的语句: CREATE TABLE `phpcolor_ad` ( `id` ...

最新文章

  1. 自定义View:测量measure,布局layout,绘制draw
  2. Leetcode 292. Nim 游戏 解题思路及C++实现
  3. 2021暑假每日一题 【week8 完结】
  4. Spring【AOP模块】就是这么简单
  5. 启明云端分享| SSD201 / SSD202D 在IP广播的应用
  6. boost::hana::take_while用法的测试程序
  7. 黑盒攻击的分类_「图像分类」图像分类中的对抗攻击是怎么回事?
  8. Oracle中通过:触发器,存储过程,Function调用实现解析Clob字段类型中存储的xml字符串...
  9. form提交后台注解拿不到数据_浏览器是如何将用户数据发送到服务器的?
  10. C#学习之向量运算符重载
  11. 明了 | 看了这篇文章,多年不能理解的分布式事物,终于看懂了!
  12. Div 在页面中居中
  13. 数据结构与算法笔记-------选择排序
  14. 2021年下软考高项信息系统项目管理师真题试卷答案解析
  15. MISRA C编程规范标准
  16. Word自动生成的目录超出页边距
  17. vs code查找内容(当前文件查找/全局查找)
  18. CSS知识全面汇总——速查手册
  19. (纪中)2223. 母鸡下蛋(hen)
  20. 用html和css制作九宫格,我就是要用CSS实现九宫格图

热门文章

  1. 百公里时速不掉线 芯讯通为商用车驾驶安全保驾护航
  2. Python一键生成纯色图片
  3. 色温(Temperature)转RGB (JavaScript)
  4. React 全局状态管理的 3 种底层机制
  5. 题解 2360: [信息学奥赛一本通-T1449]魔板
  6. JavaWeb期末考试复习资料
  7. Caffe(to be continued)
  8. 抽象语法树AST的全面解析(一)
  9. loadrunner入门教程(9) --开始录制
  10. 墨者学院-密码学加解密实训(摩斯密码第2题)