什么是索引?
<1>一种用于提升查询效率的数据库对象
<2>通过快速定位数据的方法,减少磁盘I/o操作;
<3>索引信息与表独立存放;
<4>oracle数据库自动使用和维护索引
索引分类
<1>唯一性索引
<2>非唯一性索引
创建索引的两种方式
<1>自动创建--在定义主键或唯一键约束时系统会自动在相应字段上创建唯一性索引
<2>手动创建--用户可以在其它列创建非唯一性索引
可使用create index 语句手动创建索引
create index [schema.]index on table (column,column);
create index myindex on emp(ename)
删除索引
<1>使用 drop index 删除索引
<2>操作者必须是索引的所有者,或者拥有drop该index的权限
<3>删除表时相关的索引(和约束)将被自动删除,但视图和序列将被保留。
drop index myindex;
序列
什么是序列?
<1>系统自动生成的、不重复的整数值
<2>序列是一种数据库对象,可以被多个用户共享。
<3>典型用途是作为主键值,它对于每一行必须是唯一的
<4>序列可以代替应用程序编号
<5>可以对序列值进行缓冲存储,以提高访问效率。
使用序列
extval/currval 伪列
<1>nextval 伪列用于从指定的序列数值中取出下一个值
<2>currval伪列引用的是指定序列的“当前值”
select mysequencel.currval from dual ;
select mysequencel.nextval from dual;
insert into test1 values (mysequence.nextval,'Tom');
创建别名
create public synonym xxx for scott.emp; 给表令起名