/*
序列 sequence :
序列号,在每次取的时候自动增加(第一次使用是初始值)
start with number : 从多少开始增长
increment by number : 每次增长多大
nomaxvalue : 没有最大值,不限制最在值
nocycle : 不循环
cache number : 预先在内存里存放一些sequence , 这样存取速度快.
nocache: 数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失。 所以可以在create sequence的时候用nocache防止这种情况
使用序场所:
1. insert语句 values
2. update语句 set
*/
--创建序列
/*需要有 create sequence 或 create any sequence权限*/
create sequence seq_up1 start with 1 increment by 1 nomaxvalue nocycle cache 10;
create sequence seq_up2 start with 10 increment by 2 maxvalue 100 cycle nocache;
--使用序列
select seq_up1.nextval from dual ; --让序列增长,并返回下一个值
select seq_up1.currval from dual ; --返回序列当前值
select seq_up2.nextval from dual ;
select seq_up2.currval from dual ;
insert into t10(id,name,address) values(seq_up2.nextval,'张二','不详');
--修改序列
alter sequence seq_up2 increment by 1 maxvalue 1000 ;
--删除序列
drop sequence seq_up2 ;
/*
同义词 synonyms
优点:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;
扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;
同义词可以创建在不同一个数据库服务器上,通过网络实现连接。
*/
--创建同义词
conn sys/change_on_install ; --以sys/change_on_install身份登录进去
select * from emp ; --查看emp提示无此表或视图
select * from scott.emp ; --可以查询,可知emp表是属于scott的
create synonym emp for scott.emp ; --创建同义词emp,它的作用是scott.emp的别名
select * from emp ; --利用创建的同义词(表的别名)来查询,ok
--查看所有同义词
select * from user_synonyms ;
--删除同义词
drop synonym emp ;
--创建公共同义词
create public synonym dept for scott.dept;
--删除公共同义词
drop public synonym dept ;