(五)Oracle学习笔记—— 视图
1. 视图简介
视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑。主要就是为了方便和数据安全。
2. 视图作用
- 简化数据操作:视图可以简化用户处理数据的方式。
- 着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。
- 视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。
- 提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。
- 自定义数据:视图允许用户以不同方式查看数据。
- 导出和导入数据:可使用视图将数据导出到其他应用程序。
3. 创建视图
在创建视图之前需要确认当前用户是否有创建视图权限
select * from user_role_privs; 查看用户的角色
SELECT * FROM DBA_SYS WHERE GRANTEE='DBA'; 查看角色对应的权限
grant dba to scott; 授予用户DBA权限
grant create view to scott; 授予用户创建视图权限
接下来创建视图
--创建简单视图
create view temp
as
select * from dept;
--测试
select * from temp where rownum=1;
一般为保证数据安全,常常将视图设为只读视图
--创建简单视图:只读
create or replace view temp1
as
select empno,ename,job,mgr from emp
with read only;
--测试(不能插入)
insert into temp1(empno,ename,job,mgr) values(1,'David','coder',9300);
创建视图语句详解
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY] 解释:
OR REPLACE :若所创建的试图已经存在,ORACLE自动重建该视图;
FORCE :不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE :只有基表都存在ORACLE才会创建该视图:
alias :为视图产生的列定义的别名;
subquery :一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :该视图上不能进行任何DML操作。
4. 使用视图
语法和操作表的语法相同,这里不加详述
查询:select * from temp1;
select * from temp1 where ename like '%M%';
修改:update temp1 set job='销售' where ename='sb';
添加:insert into temp2 values('','Daming','技术');
删除:delete from temp2 where empno=2222
5. 删除视图
drop view temp;
- 删除视图的定义不影响基表中的数据。
- 只有视图所有者和具备DROP VIEW权限的用户可以删除视图。
- 视图被删除后,基于被删除视图的其他视图或应用将无效。
6. 视图分类
视图分为简单视图和复杂视图。
- 简单视图只从单表里获取数据;复杂视图从多表里获取数据。
- 简单视图不包含函数和数据组;复杂视图包含函数和数据组。
- 简单视图可以实现DML操作;复杂视图不可以。
(五)Oracle学习笔记—— 视图的更多相关文章
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- 《Linux内核设计与实现》第五章学习笔记
<Linux内核设计与实现>第五章学习笔记 姓名:王玮怡 学号:20135116 一.与内核通信 在Linux中,系统调用是用户空间访问内核的唯一手段:除异常和陷入外,它们是内核 ...
- 《Linux内核分析》第五周学习笔记
<Linux内核分析>第五周学习笔记 扒开系统调用的三层皮(下) 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.c ...
- 20165326 java第五周学习笔记
第五周学习笔记 ch7 内部类(&外嵌类) 内部类的类体不可以声明类变量和方法 内部类如同类的变量或方法 内部类和外嵌类在编译时生成两个class文件 匿名类 某个类的一个子类没有明显的用类声 ...
- linux内核分析第五周学习笔记
linux内核分析第五周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
随机推荐
- MySql 分页关键字(limit)
mysql分页关键字: limit m,n --m:表示从哪一行开始查,n:查询多少条 oracle分页关键字:: rownum SqlServer:top(2005以下版本) row_number ...
- Mysql错误:Every derived table must have its own alias
Mysql报错:Every derived table must have its own alias <缺少一个别名> 在子查询中经常会犯的错误 .这个别名其实没啥用途.... ...
- HDU 2568 前进(模拟,水)
轻松通过墓碑,进入古墓后,才发现里面别有洞天.突然,Yifenfei发现自己周围是黑压压的一群蝙蝠,个个扇动翅膀正准备一起向他发起进攻!形势十分危急!好在此时的yifenfei已经不是以前那个经常 ...
- Java Retry implement
There are many cases in which you may wish to retry an operation a certain number of times. Examples ...
- [BZOJ2823][BZOJ1336][BZOJ1337]最小圆覆盖(随机增量法)
算法介绍网上有很多,不解释了. 给出三点坐标求圆心方法:https://blog.csdn.net/liyuanbhu/article/details/52891868 记得先random_shuff ...
- 【费用流】bzoj1520 [POI2006]Szk-Schools
注意:建图的时候,一定要把旧标号相同的分开. #include<cstdio> #include<algorithm> #include<cstring> #inc ...
- [CSAcademy]Connected Tree Subgraphs
题目大意: 给你一棵n个结点的树,求有多少种染色方案,使得染色过程中染过色的结点始终连成一块. 思路: 树形DP. 设f[x]表示先放x时,x的子树中的染色方案数,y为x的子结点. 则f[x]=pro ...
- 《深入理解Spark-核心思想与源码分析》(一)总体规划和第一章环境准备
<深入理解Spark 核心思想与源码分析> 耿嘉安著 本书共计486页,计划每天读书20页,计划25天完成. 2018-12-20 1-20页 凡事豫则立,不豫则废:言前定,则不跲:事 ...
- Swift中计算String的长度
extension String { var length: Int { return countElements(self) } // Swift 1.1 } extension ...
- log4j.properties配置详解与实例-全部测试通过
最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛没有一点格式,看着累.这里把网上收集到的整理了一下,并且全部都在机器上测试成功了.这么好的文档估计没有了吧? # ...