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;
未完待续~
相关推荐
Oracle SOA 套件——Oracle BPEL 流程管理器Oracle SOA 套件——Oracle BPEL 流程管理器
Oracle工作总结——日志文件切换频率的调整 Oracle工作总结——日志文件切换频率的调整
Oracle学习笔记——day01 学习的好东西Oracle学习笔记——day01
Oracle 8基础——对服务器编程 对服务器编程对服务器编程对服务器编程对服务器编程对服务器编程
Oracle学习笔记——day02 学习的好东西 Oracle学习笔记——day02
Oracle 数据库系统——基础与工具.pdf
Oracle学习笔记——day04 学习的好东西 Oracle学习笔记——day04
Oracle学习笔记——day05 学习的好东西 Oracle学习笔记——day05
Oracle学习笔记——day03 学习的好东西 Oracle学习笔记——day03
Oracle数据库教程——nbu恢复oracle数据库案例
Oracle应用项目——使用OracleEM创建表空间.pdf 学习资料 复习资料 教学资源
Oracle数据库技术——动态SQL。详细资料~
Oracle应用项目——事务实例.pdf 学习资料 复习资料 教学资源
Oracle应用项目—— 触发器实例.pdf 学习资料 复习资料 教学资源
Oracle缓存连接——Timesten体系结构 .docx 内存数据库技术
Oracle10g——for AIX 安装指南.pdf
oracle 数据库系统——管理与应用
Oracle数据库教程——oracle常见的等待事件说明[参照].pdf
Oracle应用项目——备份数据库实例.pdf 学习资料 复习资料 教学资源