iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle系列:(22)视图
  • 886
分享到

Oracle系列:(22)视图

2024-04-02 19:04:59 886人浏览 泡泡鱼
摘要

什么是视图【View】 (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为



什么是视图【View】 

(1)视图是一种虚表 

(2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表

(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELECT 语句

(4)视图向用户提供基表数据的另一种表现形式

(5)视图没有存储真正的数据,真正的数据还是存储在基表中

(6)程序员虽然操作的是视图,但最终视图还会转成操作基表

(7)一个基表可以有0个或多个视图 


什么情况下会用到视图

(1)如果你不想让用户看到所有数据(字段,记录),只想让用户看到某些的数据时,此时可以使用视图

(2)当你需要减化sql查询语句的编写时,可以使用视图,但不提高查询效率


视图应用领域

(1)银行,电信,金属,证券军事等不便让用户知道所有数据的项目


视图的作用

(1)限制数据访问

(2)简化复杂查询

(3)提供数据的相互独立

(4)同样的数据,可以有不同的显示方式


基于emp表所有列,创建视图emp_view_1,

create view 视图名 as select对一张或多张基表的查询
create view emp_view_1
as
select * from emp;

Oracle系列:(22)视图


默认情况下,普通用户无权创建视图,得让sysdba为你分配creare view的权限 


以sysdba身份,授权scott用户create view权限

grant create view to scott;


以sysdba身份,撤销scott用户create view权限

revoke create view from scott;


基于emp表指定列,创建视图emp_view_2,该视图包含编号/姓名/工资/年薪/年收入(查询中使用列别名)

create view emp_view_2
as
select empno "编号",ename "姓名",sal "工资",sal*12 "年薪",sal*12+NVL(comm,0) "年收入"
from emp;


基于emp表指定列,创建视图emp_view_3(a,b,c,d,e),包含编号/姓名/工资/年薪/年收入(视图中使用列名)

create view emp_view_3(a,b,c,d,e)
as
select empno "编号",ename "姓名",sal "工资",sal*12 "年薪",sal*12+NVL(comm,0) "年收入"
from emp;

Oracle系列:(22)视图


查询emp_view_3创建视图的结构

desc emp_view_3;

Oracle系列:(22)视图


修改emp_view_3(id,name,salary,annual,income)视图,

create or replace view 视图名 as 子查询
create or replace view emp_view_3(id,name,salary,annual,income)
as
select empno "编号",ename "姓名",sal "工资",sal*12 "年薪",sal*12+NVL(comm,0) "年收入"
from emp;

Oracle系列:(22)视图


查询emp表,求出各部门的最低工资,最高工资,平均工资

select min(sal),max(sal),round(avg(sal),0),deptno
from emp
group by deptno;


创建视图emp_view_4,视图中包含各部门的最低工资,最高工资,平均工资

create or replace view emp_view_4
as
select deptno "部门号",min(sal) "最低工资",max(sal) "最高工资",round(avg(sal),0) "平均工资"
from emp
group by deptno;

Oracle系列:(22)视图


创建视图emp_view_5,视图中包含员工编号,姓名,工资,部门名,工资等级

create or replace view emp_view_5
as
select e.empno "编号",e.ename "姓名",e.sal "工资",d.dname "部门名",s.grade "工资等级"
from emp e,dept d,salgrade s
where (e.deptno=d.deptno) and (e.sal between s.losal and s.hisal);



删除视图emp_view_1中的7788号员工的记录,使用delete操作,会影响基表吗

delete from emp_view_1 where empno=7788;

写法正确,会影响基表


修改emp_view_1为只读视图【with read only】,再执行上述delete操作,还行吗?

create or replace view emp_view_1
as
select * from emp
with read only;

不能进行delete操作了

Oracle系列:(22)视图


将【整个】视图删除,会影响表吗?

不会影响基表


删除视图,会进入回收站吗?

不会进入回收站

Oracle系列:(22)视图


删除基表会影响视图吗?

会影响视图


闪回基表后,视图有影响吗?

视图又可以正常工作了








您可能感兴趣的文档:

--结束END--

本文标题: Oracle系列:(22)视图

本文链接: https://www.lsjlt.com/news/43729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL系列(七)索引和视图
    (1)索引的创建于管理 ① 为student表的phone列上建立一个降序普通索引phone_idx,并输出student表中的记录,注意观察phone字段上的顺序; create index phone_idx on student(p...
    99+
    2023-12-22
    mysql 数据库 java
  • 【ARM Coresight 系列文章 22 -- linux frace 与 trace-cmd】
    文章目录 ftrace 介绍trace-cmd 介绍trace-cmd 常用跟踪事件ftrace 与 trace-cmd 关系ftrace 编译依赖 ftrace 介绍 ftrace 是 Linux 内核中的一个跟踪工具,主...
    99+
    2023-08-30
    ftrace trace-cmd
  • Linux命令:MySQL系列之六--VIEW视图/mysql -e
    视图VIEW命令简介:     VIEW视图就是存储下来的SELECT语句数据1.创建视图命令格式:   CREATE    [...
    99+
    2024-04-02
  • Oracle视图详解
    Oracle视图是一种虚拟的表,它是由一个或多个表或视图的查询结果组成的。视图并不实际存储数据,而是根据查询定义的规则,从基表或其他...
    99+
    2024-04-09
    oracle
  • Hacking python系列视频
    python以简洁和易上手著称,在多平台下的通用性好,是动态语言的典型代表。《unix编程艺术》的作者曾说“精明的perl***们都投向了python,而且再也不回头” 本教程由hornet兄弟录制,视频中大量的实例,如brute...
    99+
    2023-01-31
    系列 视频 Hacking
  • 【Android从零单排系列十八】《Android视图控件——VideoView》
    目录 前言 一 VideoView基本介绍 二 VideoView使用方法 三 VideoView常见属性及方法 四 VideoView简单Demo 五 总结 前言 小伙伴们,在上文中我们介绍了Android视图组件WebView,本文我...
    99+
    2023-09-08
    android Android播放视频 Android视频播放 videoview android视频
  • Oracle中V$视图和DBA_视图有什么区别
    在Oracle数据库中,V$视图和DBA_视图都是用来访问数据库的动态性能和配置信息的视图,但两者有一些区别: V$视图(动态性...
    99+
    2024-04-19
    Oracle
  • 如何获取 MySQL 视图列表?
    要获取 MySQL 视图列表,我们可以使用带有 LIKE 运算符的 SELECT 命令。让我们先看看语法。 mysql> SELECT TABLE_SCHEMA, TABLE_NAME -> FROM informat...
    99+
    2023-10-22
  • oracle中的视图详解
    视图是Oracle数据库中的一种虚拟表,它是由一个或多个表的列组成的查询结果集。视图可以用来简化复杂的查询、隐藏表的细节、保护数据以...
    99+
    2023-08-14
    oracle
  • oracle中视图的作用
    oracle 中的视图是一种虚拟表,提供对数据的不同视角。其主要作用包括:数据抽象、数据安全、数据转换、数据整合和性能优化。优点包括:不占用存储空间、保持数据一致性、提高性能、增强安全性...
    99+
    2024-05-09
    oracle 数据访问 敏感数据
  • oracle如何创建视图
    要创建一个视图,可以使用 CREATE VIEW 语句。以下是一个创建视图的示例:```CREATE VIEW view_name ...
    99+
    2023-08-08
    oracle
  • oracle怎么创建视图
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • 【Android从零单排系列二十二】《Android视图控件——GridView》
    目录 前言 一 GridView基本介绍 二 GridView使用方法 三 GridView常见属性及方法 四 总结 前言 小伙伴们,在上文中我们介绍了Android视图组件ExpandableListView,本文我们继续盘点,介绍一下...
    99+
    2023-09-01
    GridView AndroidGridview android 网格布局 Android excel android 矩阵
  • oracle常用的动态视图
    1)v$lock 给出了锁的信息,如type字段, user type locks有3种:TM,TX,UL,system type locks有多种,常见的有:MR,RT,XR,TS等。我们只关心TM,TX...
    99+
    2024-04-02
  • Oracle中的视图是什么
    在Oracle数据库中,视图是一种虚拟表,它是由一个或多个表的列组成的查询结果集。视图可以像表一样被查询,但实际上并不存储数据,而是...
    99+
    2024-04-09
    Oracle
  • oracle视图表如何修改
    要修改Oracle中的视图表,可以使用ALTER VIEW语句来修改视图的定义。下面是修改视图的步骤:1. 使用ALTER VIEW...
    99+
    2023-08-08
    oracle
  • Oracle普通视图和物化视图的区别有哪些
    本篇内容主要讲解“Oracle普通视图和物化视图的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle普通视图和物化视图的区别有哪些”吧!物化视...
    99+
    2024-04-02
  • Python3画图系列——Network
    NetworkX 概述 NetworkX 主要用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能。用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。安装networkx看以参见官网 。 NetworkX学习 关于...
    99+
    2023-01-30
    画图 系列 Network
  • Oracle物化视图怎么用
    这篇文章主要介绍了Oracle物化视图怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Oracle物化视图的用法与总结 物...
    99+
    2024-04-02
  • Oracle中视图有什么用
    这篇文章主要为大家展示了“Oracle中视图有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle中视图有什么用”这篇文章吧。1.什么是视图?&nb...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作