oracle唯一索引与普通索引的区别和联系以及using index用法

oracle唯一索引与普通索引的区别和联系

区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束。添加唯一索引的数据列可以为空,但是只要尊在数据值,就必须是唯一的。

联系:1)unique index就是额外添加唯一性的约束。该约束严格的保证索引列的取值是唯一的,这在一些数据列上的业务约束是很重要的功能。比如一个数据列,不能作为主键,而且允许为空,但是业务上要求唯一特性,这个时候用唯一性索引就是最好的旋转。2)性能上两者并无很大区别。

 

using index用法:

create primary key …. Using index :创建主键的时候同时将其设为索引,名称与主键名称相同。

在9i之后,在创建一个PK的时候,会自动创建一个与之对应的唯一索引。(因为某个字段如果被设置为Unique便会自动被设为索引)。如果不特别指定,这个索引的表空间和表的表空间是一样的,但是不建议将两者放在一起。

一般语句格式:

1
2
3
Create  table  test( name  varchar (10));
 
Alter  table  test  add  primary  key ( name ) tablespace tablespace1;

以上的处理方式有两个不好的地方,第一是无法指定索引的名称,第二无法指定索引存放的表空间。为了避免这种错误,最后按照以下方式来定义表格与表空间。

1
2
3
4
5
Create  table  test_uid( name  varchar (10),
 
Constraint  test_uid_pk  primary  key ( name ) using  index  (
 
create  unique  index  uid_test_uid  on  test_uid( name ) tablespace tablespace2);

当然也可以部分处理。

1
2
3
Create  table  testone ( name  varchar (10  char )) tablespace1;
 
Alter  table  testone  add  constraint  pk_testine1  primary  key ( name ) using  index  tablespace tablespace2;

作为一个好习惯,不要把索引和表格的数据放在同一个表空间。

一般索引单独建一个表空间。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值