您的位置:首页 > 数据库 > Oracle

七.ORACLE数据库中的序列,同义词,索引等对象

2013-07-03 13:30 316 查看
创建序列

CREATE SEQUENCE <sequencen_name>

INCREMENT BY n

START WITH n

[MAXVALUE n][MINVALUE n]

[CYCLE|NOCYCLE]

[CACHE n|NOCACHE];

INCREMENT BY n --表示序列每次增长的幅度;默认值为1.

START WITH n --表示序列开始时的序列号。默认值为1.

MAXVALUE n --表示序列可以生成的最大值(升序).

MINVALUE n --表示序列可以生成的最小值(降序).

CYCLE --表示序列到达最大值后,在重新开始生成序列.默认值为 NOCYCLE。

CACHE --允许更快的生成序列.

示例:

create sequence se_1

increment by 1

start with 100

maxvalue 999999

cycle;

修改序列

ALTER SEQUENCE <sequencen_name>

INCREMENT BY n

START WITH n

[MAXVALUE n][MINVALUE n]

[CYCLE|NOCYCLE]

[CACHE n|NOCACHE];

删除序列

DROP SEQUENCE <sequence_name>



使用序列


1.CURRVAL

返回序列的当前值.

注意在刚建立序列后,序列的CURRVAL值为NULL,所以不能直接使用。

可以先初始化序列:

方法:select <sequence_name>.nextval from dual;

示例:select se_1.nextval from dual;

之后就可以使用CURRVAL属性了

2.NEXTVAL

返回序列下一个值;

示例:

begin

for i in 1..5

loop

insert into emp(empno) values(se_1.nextval);

end loop;

end;

查看序列的当前值

select <sequence_name>.currval from dual;

示例:select se_1.currval from dual;

创建索引



CREATE [UNIQUE] INDEX <index_name> ON <table_name>(字段 [ASC|DESC]);

UNIQUE --确保所有的索引列中的值都是可以区分的。

[ASC|DESC] --在列上按指定排序创建索引。

(创建索引的准则:

1.如果表里有几百行记录则可以对其创建索引(表里的记录行数越多索引的效果就越明显)。

2.不要试图对表创建两个或三个以上的索引。

3.为频繁使用的行创建索引。

)

示例

create index i_1 on emp(empno asc);

创建同义词

CREATE SYNONYM <synonym_name> for <tablename/viewname>

同义词即是给表或视图取一个别名。

示例:

create synonym mm for emp;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: