一,序列
1:定义:
仅向前的数字变量(和SQL中的自动编号有点像 identity(1,2) )
2:如何定义一个序列
格式:
create sequence <序列名称>
start with <起始数>
increment by <增长量>
[maxvalue 值]
[minvalue 值]
[cycle 当到达最大值的时候,将继续从头开始]
INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0.序列为升序。忽略该子句时,缺省值为1.
START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。也可以不进行设置
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1.
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1.为降序指定最小值为-1026.
NOCYCLE:一直累加,不循环
3:怎么去取序列数据:
currval--->curenValue
nextVal-->NextVlaue
example:
select mySeq.nextVal from dual
注意一点:currval只有当nextVal执行一次以后才可以用.
在创建表的时候,可以使用序列.
具体例子:
create table 学生基本信息表
(
StuID int,
StuName varchar2(20)
)
insert into 学生基本信息表 values(mySeq.nextVal,'AA')
4:如何修改序列:
alter sequence mySeq maxValue 500
注意:不能改start with,其他随便改(设置minValue值的时候不能大于当前值)
5:如何查看某个表空间所有序列:
select * from user_sequences
6:如何删除:
drop sequence 序列名称
二,同义词
同义词是现有对象的一个别名。
·简化SQL语句
·隐藏对象的名称和所有者
·提供对对象的公共访问
一,创建私有同义词
create [or replace ] synonym 名称 for 表名 ;
如: SQL> create or replace synonym sm_emp for scott.emp ;
二,创建公共同义词
create or replace public synonym 名称 for 表名
三,删除同义词
drop synonym 名称