ORCL同义词,序列,视图总结

<同义词>
实际类似于取别名
同义词就是一种映射关系

好处:
节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。

定义同义词:
create synonym e for emp;
效果类似给emp表取了个别名e
比较适用的情况
如create public synonym table_name for user.table_name;
其中第一个user_table和第二个user_table的数据不一样

定义公有同义词:
create or replace public synonym e for emp;

删除同义词
drop synonym e;

查看所有同义词:
select * from dba_synonyms;




<序列>
序列就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。

--创建序列
create sequence seq_num
start with 1
increment by 2
maxvalue 20
minvalue 1
NOCYCLE
CACHE 2

注:如果缓存设置不为0,则删除后的序列还是会认为是已经存在的数,一般情况下,都设置为0

--查询当前用户的序列
select * from user_sequences;



<视图>
视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.

视图的存储:
与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。由于视图基于数据库中的其他对象,因此一个视图只需要占用数据字典中保存其定义的空间,而无需额外的存储空间。

视图的作用:
用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。
视图常见的用途如下:
通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制
隐藏数据复杂性
视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实。
简化用户的SQL 语句
用户使用视图就可从多个表中查询信息,而无需了解这些表是如何连接的。
视图的列名可以被任意改变,而不会影响此视图的基表
保存复杂查询
一个查询可能会对表数据进行复杂的计算。用户将这个查询保存为视图之后,每次进行类似计算只需查询此视图即可。

--创建视图
create or replace view v_emp as select empno,ename,job from emp;

猜你喜欢

转载自275627311.iteye.com/blog/2142733
今日推荐