同义词是数据库对象的一个别名,这些对象可以是表、视图、序列、过程、函数、程序包,甚至其它同义词.通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀. 同义词用途如下: 1.简化SQL语句. 2.隐藏对象的名称和所有者. 3.为分布式数据库的远程对象提供了位置透明性. 4.提供对对象的公共访问. 同义词分为私有同义词与公有同义词两种类型.注意在使用同义词之前要确保用户已得到访问对象的权限. 私有同义词只能被当前模式的用户访问.要在自身模式创建私有同义词,用户必须拥有create synonym系统权限. 创建私有同义,假定有两个用户模式:scott,hj,scotte用户拥有表emp,hj用户需要频繁访问emp表,为了简化sql语句,需要hj用户创建一个同义词.首先应该给hj用户授予访问emp表权限,以scott用户身份登录数据库,执行以下命令. sql>grant all on emp to hj; 再以hj用户身份登录数据库,执行下列命令: sql>create synonym emp fro scott.emp; 现在hj用户可以使用下面的语句访问scott用户的emp表了. sql>select *from emp;
公有同义词.如果用户拥有足够权限,就可创建公有同义词. sql>create public synonym emp_syn for scott.emp;
序列:序列是用来生成唯一,连续的整数的数据库对象.序列通常用来自动生成主键或唯一健的值.序列可以按升序排列,也可以按降序排列. 举个实例: sql>create sequence toy_seq start with 10 --起始值为10 increment by 2 --增长多少 minvalue 1--最小值为1 maxvalue 200--最大值为200 cycle|nocycle--可循环或不循环 cache 30;--缓存数量 创建了序列之后,可以通过currvalue和nextvalue伪列来访问该序列的值,可以从伪列中选择值,但是不能它们的值. 下面把序列做为标识自动增长列来使用.如下: insert into 表名 values(toy_seq.nextvalue,...,...,...) 序列创建后还可以对其进行修改与删除. 修改:(起始值不能被修改) alter sequence toy_seq ......... ..... 删除: drop sequence toy_seq; OK,大概就这多.
原文:http://hujing1229.blog.ccidnet.com/blog-htm-do-showone-uid-60604-type-blog-itemid-183963.html
|