主键(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录,在两个表的关系中,主键用来在一个表中引用来自于另一个表中的特定记录,,主键时一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主键不能包含空值。oracle中创建主键后会自动生成一个唯一索引,并且该唯一索引可以在user_indexes视图中查到。

创建两张表结构相同的表,test_1指定c1为主键,test_2给c1添加NOT NULL 和UNIQUE约束,不指定主键。
oracle 唯一索引,唯一约束,主键之间的联系

查看test_1,test_2的索引
oracle 唯一索引,唯一约束,主键之间的联系

查看test_1,test_2的约束
oracle 唯一索引,唯一约束,主键之间的联系

唯一索引,不允许具有索引值相同的行,从而禁止重复的索引或键值。系统在创建该索引时检查是否有重复的键值,并在每次使用 INSERT 或 UPDATE 语句添加数据时进行检查。

创建test_5表,为c1添加唯一索引。
oracle 唯一索引,唯一约束,主键之间的联系

查看test_5上的索引。
oracle 唯一索引,唯一约束,主键之间的联系

查看test_5上的约束。
oracle 唯一索引,唯一约束,主键之间的联系

唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。在oracle中创建了唯一约束,会相应生成一个唯一索引。

创建表test_6,给c1列添加唯一约束。
oracle 唯一索引,唯一约束,主键之间的联系

查看test_6上的约束。
oracle 唯一索引,唯一约束,主键之间的联系

查看test_6上的索引。
oracle 唯一索引,唯一约束,主键之间的联系