文章内容来源于oracle索引
普通索引
普通索引的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column = )或排序条件创建索引。普通索引允许被索引的数据列包含重复的值。
唯一索引
唯一索引除了可以提高查询速度,还能做到列属性唯一,可以用作幂等性保证,唯一性约束等。
这里补充下主键:
创建主键SQL:
SQL > alter table 表名 add constraint 主键名 primary key (主键字段);
主键是一种约束,和索引本质上是不同的,但是oracle中创建主键后会自动生成一个
唯一索引。删除主键时也会把同名的索引删除。
但是唯一索引不一定是主键。
主键和唯一索引的区别:主键列一定不允许空值,但是唯一索引列可以。
区别
如果是普通索引,查询到指定结果后肯定要继续查,知道查找到第一个不满足条件的才会停止。
如果是唯一索引,查到第一个满足的就不会继续查的。
创建语句
oracle :
创建唯一索引:
create unique index 索引名称 on 表名(列字段);
普通索引:
单索引
create index 索引名称 on table(列字段);
删除索引
drop index 索引名称;
复合索引
create index 索引名称 ON 表名(字段1,字段2);
查询某张表中所有索引
select * from ALL_INDEXS where table_name = 表名;
查询某张表加了索引的列
select * from ALL_IND_COLUMN where table_name = 表名;
索引优缺点:
优点 : 加快查询速度
缺点 : 更新,要把索引也进行更新