Oracle同义词与序列基本使用
2009-07-22 21:39
323 查看
一、同义词
同义词:同义词是一个对象的替代名称
作用:利用同义词可以很方便地操纵不同用户模式下的对象。
通过select user from dual查看当前使用的用户。
访问其它用户模式下的表:select * from scott.dept; 表示查看scott用户模式下的dept表数据。
同义词分为private 和 public,private仅创建的用户可以使用。public则所有用户都可以使用。
语法:
CREATE SYNONYN DEPT FOR SCOTT.DEPT;
表示将scoot用户下的dept表,创建为当前用户的同义词。默认为private
通过drop synonym dept删除。
create public synonym dept for scott.dept;表示创建一个公共的,在其它用户模式下也同样的进行查询。
相关问题及解决方法
举例说明:
问题描述:
有两个oralce数据库
SID分别为 A B
A中a用户下含有表T_USERS
B中含有b用户
要求在B中用b用户登录后执行
select * from T_USERS( T_USERS为同义词的名称)
能显示出A中a.T_USERS的全部内容
问题解答:
用b用户登录到B中,执行:
create public synonym T_USERS for a.T_USERS@A à在B上建立的对A的数据库链接
此时执行select * from T_USERS 就能显示出a.T_USERS的全部内容(当然这里的T_USERS可以改为其他的名称)
需要注意的一点:
B中不能含有名称为b.T_USERS的表,否则语句可以执行,但是执行select操作时显示的仍然为b.T_USERS 的内容,需要先把b.T_USERS删除掉,重新建立synonym即可。
二、序列作用:独立的事务,按一定的增量自动增加或减少,一组整型值。
语法:
create sequence myseq
start with 1 --从1开始
increment by 1 --每次增加1
order --从小到大排序
nocycle;--为了避免取到重复值,不进行序列循环,此项为影响性能,使数据库被迫访问磁盘。
使用方法: select myseq.nextval from dual;
通过nextval取得下一个值。
通过select myseq.currval from dual; 查看当前序列的值。
如果数据库重启,不能马上通过currval来查看序列的当前值,
要通过nextval取完值后,再通过currval查看当前序列的值。
desc dba_sequences 查看dba下sequence的情况。同样包括all_sequences,user_sequences.
修改序列递增是: ALTER SEQUENCE MYSEQ
INCREMENT BY 3;
通过修改的方式修改序列的递增量。但不能修改序列的当前值。
同义词:同义词是一个对象的替代名称
作用:利用同义词可以很方便地操纵不同用户模式下的对象。
通过select user from dual查看当前使用的用户。
访问其它用户模式下的表:select * from scott.dept; 表示查看scott用户模式下的dept表数据。
同义词分为private 和 public,private仅创建的用户可以使用。public则所有用户都可以使用。
语法:
CREATE SYNONYN DEPT FOR SCOTT.DEPT;
表示将scoot用户下的dept表,创建为当前用户的同义词。默认为private
通过drop synonym dept删除。
create public synonym dept for scott.dept;表示创建一个公共的,在其它用户模式下也同样的进行查询。
相关问题及解决方法
举例说明:
问题描述:
有两个oralce数据库
SID分别为 A B
A中a用户下含有表T_USERS
B中含有b用户
要求在B中用b用户登录后执行
select * from T_USERS( T_USERS为同义词的名称)
能显示出A中a.T_USERS的全部内容
问题解答:
用b用户登录到B中,执行:
create public synonym T_USERS for a.T_USERS@A à在B上建立的对A的数据库链接
此时执行select * from T_USERS 就能显示出a.T_USERS的全部内容(当然这里的T_USERS可以改为其他的名称)
需要注意的一点:
B中不能含有名称为b.T_USERS的表,否则语句可以执行,但是执行select操作时显示的仍然为b.T_USERS 的内容,需要先把b.T_USERS删除掉,重新建立synonym即可。
二、序列作用:独立的事务,按一定的增量自动增加或减少,一组整型值。
语法:
create sequence myseq
start with 1 --从1开始
increment by 1 --每次增加1
order --从小到大排序
nocycle;--为了避免取到重复值,不进行序列循环,此项为影响性能,使数据库被迫访问磁盘。
使用方法: select myseq.nextval from dual;
通过nextval取得下一个值。
通过select myseq.currval from dual; 查看当前序列的值。
如果数据库重启,不能马上通过currval来查看序列的当前值,
要通过nextval取完值后,再通过currval查看当前序列的值。
desc dba_sequences 查看dba下sequence的情况。同样包括all_sequences,user_sequences.
修改序列递增是: ALTER SEQUENCE MYSEQ
INCREMENT BY 3;
通过修改的方式修改序列的递增量。但不能修改序列的当前值。
相关文章推荐
- 转:Oracle同义词与序列基本使用
- ’;oracle表,视图,索引,序列,同义词等基本操作总结(作者:西西)
- Oracle基本操作七:序列,同义词,索引,视图
- oracle里面的序列在java里面的实现和使用
- 【数据库】[oracle]表,视图,索引,序列,同义词等操作集合
- oracle中使用序列和触发器实现单个字段值自增长
- oracle 序列与同义词
- oracle 使用基本问题
- Oracle: 一、Oracle简介,安装,基本使用,建表增删改查,数据类型及常用命令
- Oracle Scheduler(一)——Jobs(基本使用)!
- db_oracle_linux下基本使用
- oracle创建和管理表、完整性约束、创建视图、序列、索引、同义词
- MyBatis Generator(MBG)Oracle使用说明 公共同义词 LONG数据类型
- oracle 序列的使用
- Oracle序列使用:建立、删除
- 【Oracle】序列Sequence对象的使用
- 探索ORACLE之RMAN_02基本使用
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle--序列和触发器的使用
- Oracle job基本使用方法----简单实例演示