Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92644835
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 16:17:05

 

同义词是数据库对象的一个别名,这些对象可以是表、视图、序列、过程、函数、程序包,甚至其它同义词.通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀.
同义词用途如下:
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

阅读(457) | 评论(0) | 转发(0) |
0

上一篇:视图

下一篇:表分区

给主人留下些什么吧!~~