oracle索引基础,Oracle 基础——索引

本文详细介绍了数据库中的索引概念及其作用,包括普通索引、聚簇索引和反向索引等不同类型的索引,并提供了具体的创建和使用方法。

1.索引是做什么的?

回答: 索引是数据库中用来提高查询效率。

补充: 过多的建立索引会大大降低DML语句的效率,建立索引的原则是在经常作为查询条件的字段上建立

索引,在存在大量重复信息的字段上不适合建立索引。

注意:(以下情况索引失效)

1)使用<>比较时,索引无效,建议使用< or >

2)使用前置模糊匹配%时无效,用instr代替

3)使用函数时 (例:(create index ind… on 表名(to_char(birth,’’))建立这样的索引使用函

数时失效,但要注意查询语句的大小写)

4)使用不匹的数据类型

5)字段含有NULL索引会失效,建立索引的字段应该是NOT NULL

语法:

-- 建立索引:

CREATE INDEX  INDEX_ENAME ON EMP (ENAME)

-- 如果在建立索引的过程中还可以对表进行DML操作,就在命令行上加online

CREATE INDEX INDEX_SNAME ON DB_STUDENT(SNAME) [ONLINE]

-- 经常做为联合查询的字段可以建立联合索引:

CREATE INDEX INDEX_EMP_SAL_JOB ON EMP(SAL,JOB)

-- 删除索引:

DROP INDEX INDEX_HIREDATE

2.聚簇索引:

聚簇是把关系列放在同一个地方,聚簇索引一般建立在关联表上的,用来提高根据关联字段查询的效率

步骤:

1)先建立聚簇

2)在建立表的同时将关联字段交给聚簇管理

3)在该聚簇上建立索引

语法:

-- 创建聚簇

create cluster cluster_deptno(deptno number(3));

-- 建立表的时候将指定字段放在聚簇里

create table dept

(

deptno number(3) ,

dname  varchar2(32)

)

cluster cluster_deptno(deptno);

alter table dept add constraint pk_dept_deptno primary key (deptno);

create table emp

(

empno number(5) primary key,

ename varchar2(32),

age   number(3),

sal number(5),

deptno number(3) references dept(deptno)

)

-- 外键必须建在聚簇之前

cluster cluster_deptno(deptno)

-- 将索引建立在聚簇上(即建立聚簇索引)

create index cindex_deptno on cluster cluster_deptno;

-- 删除聚簇

drop cluster cluster_deptno

3.反向索引:通常建立在由序列生成字段信息的字段上

create index INDEX_STU_SNO on DB_STUDENT (sno)  reverse;

未完待续~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值