基本概念: rowid 表明了该行在oracle数据库中的物理具体位置
(一)索引按存储结构分为B树索引,和位图索引
(二)索引按功能和索引对象分还有以下类型。
(1)唯一索引意味着不会有两行记录相同的索引键值。唯一索引表中的记录没有RowID,不能再对其建立其他索引。在oracle10g中,要建立唯一索引,必须在表中设置主关键字,建立了唯一索引的表只按照该唯一索引结构排序。
(2)非唯一索引不对索引列的值进行唯一性限制。
(3)分区索引是指索引可以分散地存在于多个不同的表空间中,其优点是可以提高数据查询的效率。
(4)未排序索引也称为正向索引。Oracle10g数据库中的行是按升序排序的,创建索引时不必指定对其排序而使用默认的顺序。
(5)逆序索引也称反向索引。该索引同样保持列按顺序排列,但是颠倒已索引的每列的字节。(缺点:对于范围检索,例如:between,>,<时,反向索引无法引用,进而导致全表扫面的产生,降低系统性能)
(6)基于函数的索引是指索引中的一列或者多列是一个函数或者表达式,索引根据函数或表达式计算索引列的值。可以将基于函数的索引建立创建成位图索引。
另外,按照索引所包含的列数可以把索引分为单列索引和复合索引。索引列只有一列的索引为单列索引,对多列同时索引称为复合索引。
1、创建单一索引
create index 索引名称 on 表名(列名);
2、创建复合索引
create index 索引名称 on 表名(列名1,列名2);
3、删除索引
drop index 索引名称;
4、查询表的索引
select * from all_indexes where table_name = '表名称';
5、查询表的索引列
select* from all_ind_columns where table_name = '表名称';