同义词的目的是为了访问不同用户的对象。
同义词分为:私有同义词和公共同义词。
默认的创建为私有的同义词。创建方式为:create synonym synname for someuser's object
例如:create synonym dept for scott.department;
以上为私有同义词,只能创建人使用。
删除同义词的方法为:drop synonym synname
创建公共同义词,它简化了迁移。
create public synonym synname for someuser's object.
如果在不同的意识形态下,不同的抽象逻辑对应一个实体,那么同义词是一个不错的选择。
查看同义词表:
select synonym_name,table_name,table_owner from user_synonyms;
以上的操作只需要记住同义词的表明即可。
使用同义词解决的问题。在企业信息系统中,员工表,职员表;库存表,商品表;这些表对于不同的业务只是叫法上的不同,本质上他们是相同的,所以只须为他们分别取不同的名字来完成业务上的概念。
序列:有序对象,它为一个独立的事务,它占用的空间很小,多用于产生唯一值。
create sequence myseq
start with int_value
increment by int_value
--为之排序
order
--防止循环
nocycle
在使用NEXTVAL后方可使用CURRVAL ,这样符合有序原则,如果不遵循的话,序列的值可能会增加,造成一定的困惑。
select myseq.NEXTVAL from auto;
select myseq.CURRVAL from auto
可以按照如下的方式直接使用,这样自增序列就绑定了表的某个字段。
insert into auto values(myseq.NEXTVAL,'edwin')
我们可以更改序列的递增量但是却不能更改当前的值,方式如下:
alter sequence myseq
increament by intvalue