总结如下:
(1)主键约束和唯一键约束均会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效时,隐式创建的唯一索引会被删除;
--建表
create table student(
stu_name varchar2(30) not null,
age varchar2(4),
gender varchar2(2),
stuno varchar2(10),
class varchar2(5),
grade varchar2(5),
tno varchar2(10)
);
--在创建主键约束、唯一约束的时候,Oracle会隐式的创建一个和该主键约束名字相同的唯一索引
--主键
alter table student add constraint PK_STUNO primary key (stuno);
--删除主键约束
alter table student drop constraint PK_STUNO;
--唯一约束
alter table student add constraint UK_STUNO unique (stuno);
--删除
alter table student drop constraint UK_STUNO;
--如果先在列上创建唯一索引,然后再创建唯一约束,这时Oracle发现此列已经存在唯一索引,就不再自己创建
create unique index IX_STUNO on student(stuno);
alter table student add constraint PK_STUNO primary key (stuno);
--查询索引
select index_name, index_type, uniqueness, tablespace_name
from user_indexes
where table_owner='SCOTT' and table_name = 'STUDENT';
结果:
(2)主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空;
(3)相同字段序列不允许重复创建索引;
一般,我们看到术语“索引”和“键”交换使用,但实际上这两个是不同的。索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念。键代表创建来实施业务规则的完整性约束。索引和键的混淆通常是由于数据库使用索引来实施完整性约束。
来源:CSDN
作者:就是个名字
链接:https://blog.csdn.net/zk052300/article/details/103478983