Oracle 中的视图、序列、同义词
1、 视图
视图是从一个表或多个表中导出的虚表,它与常规表不同之处在于它并不存储数据—它只是在一个存储的查询中定义.视图同真实表一样,也包含一系列带有名称的列和数据。
视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。
向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.
视图向用户提供基表数据的另一种表现形式
视图分为简单视图还有复杂视图
所谓简单的视图是只引用一个表,并且它只从基础表中检索数据,不允许修改其中的数据;
复杂的视图是引用多个表,视图越复杂、视图内再查询的表达式就越多越复杂.
创建视图的语法:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];
注意:在创建视图时应先赋予创建视图的权限,create view或create any view权限
//切换到管理员然后赋予权限
SQL> grant create any view to redarmy;
SQL> grant create view to redarmy;
为什么使用视图?
控制数据访问:提供了一种安全机制,通过视图显示数据时,屏蔽用户不应该知道的数据.
简化查询:select语句构造了一个复杂的查询语句,每次使用必须都得调用它,根据复杂查询的语句创建一个试图,来简化查询。
创建视图时在子查询中给列定义别名
SQL> create view usersview as select username name,password pass from users;
//查询视图
SQL> select * from usersview;
//检索视图的定义
SQL> select * from user_views;
复杂视图:
是通过多个表的连接查询获得的,又称为连接视图
SQL> create view empdept as (select e.*,d.dname,d.loc from emp e inner join dept d on e.deptno=d.deptno);
使用CREATE OR REPLACE VIEW 子句修改视图
SQL> create or replace view usersview as(select * from users);
//创建带有函数,groupby子句的视图
SQL> create or replace view gde as ( select deptno,count(*) cou from emp group by deptno);
//创建连接视图 带有函数 group by子句 order by 子句
SQL> create view gdeo as select e.deptno,count(*) cou from emp e inner join dept d on e.deptno=d.deptno group by e.deptno order by e.deptno;
//在上面的基础上带有having子句
SQL> create view gdeoh as select e.deptno,count(*) cou from emp e inner join dept d on e.deptno=d.deptno group by e.deptno having count(*)>3 order by e.deptno;
删除视图的操作
Drop view 视图名;
2、 序列
序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。
l 自动提供唯一的数值
l 共享对象
l 主要用于提供主键值
l 将序列值装入内存可以提高访问效率
创建序列:
1、 要有创建序列的权限 create sequence 或 create any sequence
2、 创建序列的语法
CREATE SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中
NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
//修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存
alter SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中
修改序列的注意事项:
l 必须是序列的拥有者或对序列有 ALTER 权限
l 只有将来的序列值会被改变
l 改变序列的初始值只能通过删除序列之后重建序列的方法实现
删除序列
l 使用DROP SEQUENCE 语句删除序列
l 删除之后,序列不能再次被引用
3,同义词
同义词是表,索引,视图等模式对象的一个别名。同义词只有是数据库对象的一个替代名词,在使用同义词是,Oracle 会将其翻译为对应的对象名称。同义词只在oracle数据库的数据词典中保存器定义的描述,因此同义词并不占用任何实际的存储空间。
Oracle 中的同义词分为两种:公有同义词和 私有同义词;公有同义词在数据库中所有的用户都可以使用;私有的同义词由创建它的用户所拥有,用户名可以控制其他用户是否有权使用属于自己的同义词。
创建同义词的语法如下
CREATE [PUBLIC] SYNONYM synonym_name
FOR schema_object
案例:
SQL>select * from emp;
为了简化对该表的访问,可以对该表简历一个相对简单的公有同义词
SQL>create public synonym merch_info for emp;
简化之后在进行查询
SQL>Select *from merch_info
删除同义词:
删除同义词需要用到drop synonym语句,如果删除公有的同义词要指定的public 关键字。
案例:
//删除一个公有的同义词I
SQL>drop public synonym merh_info
提示:
在创建同义词时,所使用的模式对象不必存在。
//查询同义词信息
Sql>desc dba_sysnonyms
相关推荐
oracle视图、同义词和序列
Oracle实验报告
视图、索引、同义词和序列
oracle第13讲使用视图、索引、序列和同义词[定义].pdf
Oracle实验3:视图、序列、同义词和索引.docx
Oracle,大型数据库技术课件
小白必看!
既然是只读,当然不能进行增删改操作视图操作的就是基表的数据,删除视图中的数据是会影响基表的,但是删除整个视图不影响基表=================同义词=
视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...
一、同义词的概念同义词(synonym)就是数据库对象的别名,这里的数据库对象包括表、视图、序列、存储过程、包等 二、创建同义词1、创建同义词的权限用dba权限
【完整Oracle SQL开发教程课件如下】 ...数据库开发 Oracle数据库 SQL开发教程 第16章 序列、索引、同义词(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第17章 用户、权限和角色(共28页).pdf
expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,...SQLServer和Oracle常用函数对比.doc,关系型数据库及其设计方法.doc,视图、同义词和序列.doc,索引与约束.doc,详细讲述Oracle中的to_date参数含义.doc
Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间 Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/...
关于oracle对象管理的ppt资料,涵盖表,索引 视图 同义词和序列以及相关的练习
Oracle中的对象,主要是对视图、索引、同义词、以及序列,还包含一部分关于Oracle数据库的分页介绍,适合初学者理解。
【完整Oracle SQL开发教程课件如下】 ...数据库开发 Oracle数据库 SQL开发教程 第16章 序列、索引、同义词(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第17章 用户、权限和角色(共28页).pdf
Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间 Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/...
Oracle10数据库电子教案 第1章 Oracle Database 10g数据库基础 第2章 Oracle Database 10g的安装及...第9章 序列、同义词、程序包 第10章 Oracle数据库安全管理 第11章 数据库的备份与恢复 第12章 数据库应用系统开发
教程名称:Oracle 11g最佳培训教程PPT(31部分)课程目录:【】第0部分本视频课程简介【】第10部分oracle11g的表分区【】第11部分同义词【】第12部分序列【】第13部分oracle11g的视图【】第14部分索引【】第15部分...