Oracle 学习(二)---索引

文章引用参考          

http://www.cnblogs.com/djcsch2001/articles/1823459.html


索引的创建


create (unique) index index_name on table (column)

[ASC|DESC] [TABLESPACE tablespace] 
index_name为索引的名称
ASC|DESC 为升序降序排列
TABLESPACE 表空间

创建索引的标准语法:

CREATE INDEX 索引名 ON 表名 (列名) 

     TABLESPACE 表空间名; 

创建唯一索引:

CREATE unique INDEX 索引名 ON 表名 (列名) 

     TABLESPACE 表空间名; 

创建组合索引:

CREATE INDEX 索引名 ON 表名 (列名1,列名2) 

     TABLESPACE 表空间名; 

创建反向键索引:

CREATE INDEX 索引名 ON 表名 (列名) reverse

     TABLESPACE 表空间名; 


先来说一下unique的使用和差别

添加unique后表示为唯一索引

区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束。添加唯一索引的数据列可以为空,但是只要尊在数据值,就必须是唯一的。

联系:1)unique index就是额外添加唯一性的约束。该约束严格的保证索引列的取值是唯一的,这在一些数据列上的业务约束是很重要的功能。比如一个数据列,不能作为主键,而且允许为空,但是业务上要求唯一特性,这个时候用唯一性索引就是最好的旋转。2)性能上两者并无很大区别。

using index用法:

create primary key …. Using index :创建主键的时候同时将其设为索引,名称与主键名称相同。

在创建一个PK的时候,会自动创建一个与之对应的唯一索引。(因为某个字段如果被设置为Unique便会自动被设为索引)。如果不特别指定,这个索引的表空间和表的表空间是一样的,但是不建议将两者放在一起。

create table test_table(name varchar(20));//不声明tablespace 默认分配一个表空间
alter table test_table add (id primary key) using index tablespace tablespace1;//没有声明名称默认为primary key相同的名称

2.建立索引的目的

建立索引的目的是:
l 提高对表的查询速度;
l 对表有关列的取值进行检查。

但是,对表进行insert,update,delete处理时,由于要表的存放位置记录到索引项中而会降低一些速度。
注意:一个基表不能建太多的索引;
      空值不能被索引
      只有唯一索引才真正提高速度,一般的索引只能提高30%左右。

 
索引的修改


ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n] 
REBUILD 
[STORAGE n]

其中:
REBUILD 是根据原来的索引结构重新建立索引,实际是删除原来的索引后再重新建立。

ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n] 
REBUILD 
[STORAGE n]

提示:DBA经常用 REBUILD 来重建索引可以减少硬盘碎片和提高应用系统的性能。

例:
alter index pk_detno rebuild storage(initial 1m next 512k);

ALTER INDEX emp_ix REBUILD REVERSE;//Reverse 为反转函数

Oracle8i 的新功能可以对索引的无用空间进行合并,它由下面命令完成:

ALTER INDEX . . . COALESCE;

索引的删除

DROP INDEX [schema.]indexname

 

例如:

sql> drop index test_index;

注:当表结构被删除时,有其相关的所有索引也随之被删除。

PS:

//将test_table name 字段转化为大写函数 (虽然我还不知道他的具体应用价值在哪里 = =)

Create index upper_index on test_table(upper(name));

 select * from test_table where upper(name) like 'JOH%';









 




ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n] 
REBUILD 
[STORAGE n]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 是一种关系型数据库管理系统,常被用于企业级应用的开发和数据管理。学习Oracle需要掌握数据库的基本概念和SQL语言,同时需要了解Oracle的特有功能和特点。 首先,对于初学者来说,可以通过查阅Oracle官方文档和教程来了解基本的数据库理论以及Oracle的安装和配置。官方文档提供了详细的说明和指导,包括数据库的架构、对象、数据类型和索引等内容。 其次,学习SQL语言是掌握Oracle的关键。SQL是结构化查询语言,用于对数据库进行增删改查操作。可以通过在线教程、书籍或者学习网站来学习SQL的基本语法和常用命令,例如SELECT、INSERT、UPDATE和DELETE等。 除了SQL,还需要学习PL/SQL(Oracle的过程式语言)。PL/SQL是Oracle数据库的编程语言,可以用于编写存储过程、触发器和函数等。学习PL/SQL可以通过官方文档和相关教程来深入理解。 另外,参加Oracle的培训课程也是一个不错的选择。Oracle官方和一些培训机构提供了各种级别的培训课程,从入门到专业水平。培训课程可以帮助学习者系统地了解Oracle的各个方面,并提供实际操作的机会。 最后,通过实践来巩固所学的知识。可以使用Oracle提供的演示数据库,或者自己搭建测试环境来练习SQL语句的编写和数据库管理的操作。 总之,学习Oracle需要系统地学习数据库理论、SQL语言和PL/SQL编程,可以通过官方文档、教程、培训课程和实践来提高自己的水平。不断的学习和实践将帮助您掌握Oracle的技术,并在企业级应用开发和数据管理中获得更好的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值