Oracle同义词和序列

 1  1 同义词:是表、索引、视图的模式对象的一个别名,通过模式对象创建同意词,可以隐藏对象的实际名称和 所有者信息,为对象提供一定的安全性,开发应用程序时;应该尽量避免直接使用表,视图 或其他对象,改用对象的同义词。
 2 
 3 2 避免当管理员对数据库对象做出修改和变动后,必须重新编译应用程序,只需要在数据库中对同义词进行修改,不必对应用程序做任何改动;
 4 
 5 3同义词分为 两种类型:公有同义词和私有同义词,公有同义词被一个特殊的用户组PUBLIC所拥有
 6 所有用户都可以使用,而私有词只能被创建它的用户使用
 7 同义词只是一个模式对象的别名,不占用任何的存储空间
 8 
 9 --创建部门表的同义词   
10 create public synonym public_dept for scott.dept1;
11 select * from public_dept;
12 --赋予simon 查询任何表的权限
13 grant select any table  to simon;
14 --创建私有同义词  ,私有词只有当前用户可以直接引用,其他用户引用必须带模式名 :sys.private_dept
15 create synonym private_dept for scott.dept;
16 select * from sys.private_dept;
17 drop synonym private_dept;
18 drop public synonym public_dept;
19 
20 --***序列对象
21 --序列是Oracle提供的用于生成一系列唯一数字的数据库对象,生成自动递增的序列号;提供唯一主键值
22 create sequence empno_seq
23 maxvalue 99999  
24 start with 9000
25 increment by 100
26 cache 50;  --序列允许将序列提前生成 cache x个先存入内存,在发生大量申请序列语句时,可直接到运行最快的内存中去得到序列。
27 insert into  emp(empno,ename,deptno)
28 values(empno_seq.nextval,'中国',20);
29 select * from emp;
30 --触发器
31 create or  replace trigger tr_emp
32 before insert on emp
33 for each row 
34 begin 
35 select empno_seq.nextval   into :new.empno from dual;   
36 end;
37 insert into  emp(ename,deptno)
38 values('南昌',20);
39 --查询当期的序列号  -插入测试数据,激活当前回话
40 select empno_seq.nextval from dual;
41 select empno_seq.currval from dual;
42 --修改序列
43 alter sequence empno_seq
44 maxvalue 100000
45 increment by 2
46 cache 100
47 --删除序列
48 drop sequence empno_seq;
原文地址:https://www.cnblogs.com/Remedy/p/8652234.html