Oracle 基础——索引
来源:互联网 发布:java软件高级编程 编辑:程序博客网 时间:2024/05/13 00:00
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 基础——索引
- Oracle索引基础
- ORACLE基础:索引学习
- Oracle索引——位图索引
- Oracle索引——B树索引
- Oracle索引——索引类型
- oracle之索引基础总结
- Css基础学习—索引
- Oracle——03索引
- oracle笔记——索引
- oracle点知识7——本地索引+全局索引
- Oracle索引——位图索引(详细解析)
- B*树索引——Oracle的默认索引结构
- Oracle基础(三):索引管理
- Oracle之索引(Index)实例讲解 - 基础
- Oracle基础(八):约束、索引、序列
- Oracle数据库基础(五)--索引,触发器
- 《Oracle SQL优化基础》之索引
- spring从零开始(1)
- 算法: 约瑟夫问题(Joseph Problem)的分析
- AES加密
- POJ 1338 Ugly Numbers (质因数分解)
- 开机广播接收不到问题
- Oracle 基础——索引
- shell十三问之9:$@与$*差在哪?
- 图像配准的步骤
- sys下gpio操作
- 辛星浅谈Linux中的环境变量
- 新浪微博CacheService架构浅析
- android activity和service的交互介绍
- Dao与Dto区别
- Android TextView文字底部或者中间 加横线