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;