oracle 索引、同义词、序列

本文详细介绍了Oracle数据库中的索引、序列和同义词。索引是提高查询速度的数据库对象,可以手动或自动创建,但会占用额外的存储空间。序列用于生成一系列唯一数字,常作为主键值。同义词则是数据库对象的别名,方便访问。文章提供了创建、修改和删除这些对象的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、索引
1、概念:
是一个单独的、物理的数据库对象
用于存放表中每一条记录的位置的对象。
在创建索引时,先要对索引字段进行排序。
索引由Oracle自动维护
优点:提高查询速度
缺点:创建和维护索引需要时间;索引需要物理空间,随着数据量的增大而增大;

2、创建方式:
自动创建:通过约束,系统创建
手工创建
create [unique] [bitmap] index index_name on table_name(column_name)
[reverse] [tablespace tablespace_name]

例如:
创建基于函数的索引
create index ename_lower_index
on emp(lower(ename));
select * from emp
where lower(ename)=‘smith’;

创建复合索引
create index emp_idx on emp(job,ename);

3、删除索引
删除索引与索引创建时采用的方式有关
手动创建的索引,通过命令删除
drop index index_name;
自动创建的索引
通过禁用约束或删除约束的方式来删除对应的索引。
删除表,则会完全删除所有索引

4、修改索引
alter index index_name rename to new index_name
alter index dept_deptno_pk rename to pk_deptno_dept;

二、序列
概念:
1)是数据库对象。
2)用于产生一系列唯一的数字值
3)序列号的生成独立于表
4)同一序列生成器可用于一个或多个表
5)经常用来产生主键值

1、创建
使用CREATE SEQUENCE语句创建序列

例如:
创建一个名称为 dept_seq 的序列,可以给DEPT表的主键提供值
create sequence dept_seq
increment by 10
start with 50
maxvalue 100
cycle
nocache;

2、查看序列
使用视图 USER_SEQUENCES 可以查到序列信息
desc USER_SEQUENCES
亦可以查看序列的部分信息:
select equence_name,
min_value,max_value,cache_size
from user_sequences;

3、使用序列
伪列的引入
NEXTVAL 返回下一个有效的序列值.每执行一次会返回一个新的数值。(类似于指针的用法)
CURRVAL返回当前的序列值.

例如:创建一个学生表,并通过伪列来给学生表的某记录的字段赋值

–创建学生表
create table students(
sno number(9),
sname varchar2(10),
sex char(4),
age number(2)
);
–使用伪列插入记录
insert into students values(stu_seq.nextval,‘xiaobai’,‘男’,20);
insert into students values(stu_seq.nextval,‘ruyan’,‘女’,19);

select * from students;

注意:在使用伪列时,首先要创建一个序列,具体创建该序列的oracle命令省略

4、修改序列
可以修改增量值,最大值,最小值,循环选项,缓存选项,
不可以修改初始值

ALTER SEQUENCE dept_deptno
INCREMENT BY 1
MAXVALUE 999999
NOCACHE
NOCYCLE;

5、删除序列
使用 DROP SEQUENCE 语句删除序列.

三、同义词
同义词是数据库对象的别名。通过同义词可以简化对象的访问。
创建:
CREATE [PUBLIC] SYNONYM 同义词名
FOR 对象名;
public 选项表示所有用户均可使用.

删除同义词:
使用drop synonym

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值